webconsul

the best webconsul(ting)

Einführung PHP

Sie sind hier: Startseite » Archiv für php

Zum Tag der deutschen Einheit gibt es für euch eine kurze Einführung zu PHP-Entwicklung:

Unter PHP bezeichnet man eine serverbasierte Scriptsprache, welche aus einer statischen HTML-Datei eine interaktive, dynamische und flexible Webseite macht. So ist es mithilfe von PHP möglich Webseiten zu erzeugen, welche von den individuellen Vorgaben des Nutzers abhängig sind. Man kann beispielsweise Formular-Eingaben bearbeiten, in einer SQL-Datenbank etwas speichern und es später wieder auslesen und anzeigen. Heutzutage wird PHP auf etwa 75 % aller Webseiten genutzt und gehört damit zu den am häufigsten verwendeten Sprachen zur Erstellung von Webseiten.

Wie funktioniert PHP genau?

Bei einer traditionellen Website befindet sich der HTML-Code direkt auf der Festplatte des Webservers, wird diese Website angefordert, so schickt der Webserver eine Kopie dieses Codes an den Webbrowser des Nutzers, welcher diesen Code analysiert und ihn dann anzeigt. Bei einer PHP basierten Website ist dies jedoch anders, denn die eigentliche Website besteht aus keinem statischen HTML-Dokument, sondern sie wird erst erzeugt, wenn ein Nutzer sie anfordert. So befindet sich auf dem Webserver sozusagen die Rohfassung der Website, welche aus einem Mix aus HTML und PHP Code besteht. Fordert nun der Nutzer diese Seite an, so generiert der Webserver aus den PHP Anweisungen die eigentliche Website, dies geschieht im Hintergrund binnen Millisekunden, sodass der Nutzer davon nichts mitbekommt.

Durch PHP ist es möglich, eine Website immer wieder anders aussehen zu lassen, denn die PHP Anweisungen bleiben immer gleich, allerdings können sich beispielsweise Daten in der Datenbank ändern, welche dank PHP individuell angezeigt werden können. So kümmert sich PHP darum, dass man zum Beispiel bei einem sozialen Netzwerk nicht auf die Hauptseite, sondern auf die eigene Seite kommt, da PHP die eigenen Daten aus der Datenbank liest und dann anzeigt.

Wo kommt PHP zum Einsatz?

PHP ist aus dem World Wide Web nicht mehr wegzudenken, es wurde stetig verbessert und angepasst, so arbeiten fast alle Webseiten mittlerweile mit PHP. In Kombination aus HTML, MySql und PHP ist es möglich, eine Webseite zu entwickeln, dabei gibt HTML die Form der Webseite vor. MySql ist für die Datenbank verantwortlich und PHP kümmert sich um die Vernetzung von beidem. Neben gewöhnlichen Webseiten werden auch Webshops, soziale Netzwerke, Foren oder Agentursoftware mittels PHP erstellt, dabei tauchen immer wieder neue Möglichkeiten der Nutzung auf, sodass damit zu rechnen ist, dass PHP noch lange eingesetzt werden wird, eine wichtige Neuerung des PHP 4.0 war die Möglichkeit der objektorientierter Programmierung. Sie hat dafür gesorgt, dass PHP konkurrenzfähig blieb und sich in der Welt des World Wide Web so stark etablieren konnte.

Website-Leistung: Datenbankoptimierung zum Geschwindigkeitsboost

Sie sind hier: Startseite » Archiv für php

Google arbeitet ja nach wie vor an diversen Ranking-Faktoren und bewertet dazu eben auch seit einiger Zeit die Website-Leistung.

Da auf meinem Webserver relativ viele parallele Verbindungen bestehen und jede eine Datenbankverbindung zum MySQL-Server aufbauen muss, habe ich das mal genauer analysiert.

Die Google Webmaster Zentrale gibt mir diesen Chart zur Leistung von www.webconsul.de:

webconsul.de Website-Leistung

Den Geschwindigkeitsboost habe ich, seit ich von einem normalen mysql_connect() auf mysql_pconnect() (php.net zu mysql_pconnect()) umgestellt habe.

mysql_pconnect() verhält sich sehr ähnlich zu mysql_connect(), weist aber zwei wesentliche Unterschiede auf.

Erstens: vor dem Verbindungsaufbau wird zunächst versucht eine offene (persistente) Verbindung zum gleichen Host, mit dem gleichen Benutzernamen und Benutzerkennwort zu finden. Wenn das gelingt, wird die Verbindungskennung dieser Verbindung zurückgeliefert anstatt eine neue Verbindung aufzubauen.

Zweitens: die Verbindung zum SQL Server wird beim Beenden des PHP-Skripts nicht geschlossen. Sie bleibt zur zukünftigen Verwendung bestehen.
(mysql_close() schließt keine von mysql_pconnect() geöffneten Verbindungen).

Auszug von php.net zu mysql_pconnect()

Die Umstellung hat noch einen netten Nebeneffekt auf die Prozessorauslastung, denn die Anfragen werden alle über den gleichen Prozess gehandelt und somit spart man sich zusätzliches Öffnen und Schließen.

Let’s Spam XING – oder wie man XING als Referrerspam missbrauchen kann

Sie sind hier: Startseite » Archiv für php

Heute Morgen bin ich über einen Tweet auf eine interessant Meldung von Franz Neumeier gestoßen.
Dieser ist wie ich auf XING angemeldet und schrieb den Artikel Kreative Spam-Idee in XING.

Lest euch den Artikel durch, sodass ihr wisst, was mit folgendem Skript erreicht werden soll:
<?php

$names = [...]; // Array, Datenbank, Namensbuch, ...

for($i=0; $i<sizeof($names); $i++) {
   $site = 'http://www.myspammysite.info/?who='.$names[$i];
   $url = 'https://www.xing.com/profile/'.$names[$i];

   $c = curl_init($url);
   curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; ...) Gecko/20061204 Firefox/2.0.0.1");
   curl_setopt($c, CURLOPT_REFERER, $site);
   curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
   curl_setopt($c, CURLOPT_HEADER, 0);
   curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
   $r = curl_exec($c);
}
?>

Damit funktioniert die ganze Technik schon.
Über $names werden alle Namen geladen und im Schema Vorname_Nachname zusammengefügt und dann einfach über eine Schleife der Reihe nach geladen.
$site wird dabei immer auf den gewünschten Referrer gesetzt, sodass man seine Werbeseiten dort unterbringen kann.

Wie man das Skript genau modizifiert, dass es dem XING-System nicht auffällt und ihr unter dem Radar fliegen könntet, solltet ihr euch selbst überlegen.

Gerade da XING eine intelligente Zielgruppe anspricht, sollte man nicht unbedingt mit nackten Frauen oder Casinos Werbung machen, sondern vielleicht mit XY… ;-)

Auf jeden Fall ist es eine kreative Idee, die hier als Proof-Of-Concept dargestellt werden sollte.

Als XING-User kann man nichts dagegen unternehmen, XING selbst könnte allerdings solche Aufrufe erkennen und unterbinden.

18 Millionen Nutzerprofile – powered by Google

Sie sind hier: Startseite » Archiv für php

Will man in vielen Blogs, sozialen Community und dem ganzen Rest eindeutige Profile anlegen um den jeweiligen Seitenbetreiber und/oder Spam-System nicht aufzufallen, so braucht man Input. Viel Input.

Den beschafft man sich am besten einfach über Google selbst, indem man die Google Profile dazu nutzt.

Vor einiger Zeit konnte man über die Suchanfrage inurl:http://www.gstatic.com/s2/sitemaps/sitemap entsprechend 3449 Sitemaps mit je 5000 Profilen finden.
Gut, die Nummerierung ist relativ simpel und mit einem kleinen Skript kann man alle Sitemaps runterladen:
for($i=100; $i<3450; $i++)
system("wget http://www.gstatic.com/s2/sitemaps/sitemap-".$i.".txt");

Und dann die jeweiligen Sitemaps durchlaufen und die jeweiligen Profile mit diesem Skript:

for($i=2000; $i<3000; $i++) {
$file = fopen("../sitemap-$i.txt", "r") or exit("Unable to open file!");
system("mkdir profiles-$i");
while(!feof($file)) {
$random = rand(2,10);
$id = split('/', fgets($file));
$id = $id[4];
echo "fetching $id";
system("sh ../wget.sh $i $id");
sleep($random);
}
fclose($file);
}

Und wget.sh dann mit eigenem User-Agent und Parametern konfiguriert gibt am Ende 3499*5000 = 17.245.000 Google Profile.

Damit kann man sich ein schönes User-Netzwerk aufbauen, Blogs einrichten und vieles mehr.

Aber dabei sollte natürlich nie gegen die jeweiligen Richtlinien der Betreiber verstoßen werden.

HTML-Inhalte mit PHP laden

Sie sind hier: Startseite » Archiv für php

HTML-Inhalte kann man mit PHP ganz einfach von anderen Seiten scrapen äh laden.

Dazu installiert ihr einfach Simple HTML DOM und schon geht es los.

Entweder holt ihr die Inhalte über cURL (der Vorteil ist defintiv eine mögliche Header-Modifizierung um Referer oder Cookies zu übertragen), wie hier beschrieben oder über die eingebaute Funktion file_get_html(url), die auch Inhalte aus dem Web lädt.

Damit kann man mit:
$html = file_get_html('http://www.google.com/');

Schon Inhalte holen und durch die DOM-Struktur mit folgenden Befehlen laufen:
// Alle Bilder finden und Quellsource ausgeben
foreach($html->find('img') as $element)
echo $element->src . '
';

// Alle Links durchlaufen und Verweisziel ausgeben
foreach($html->find('a') as $element)
echo $element->href . '
';

Mit dem Code ist es ein leichtes die Google SERPs zu überwachen (sowohl für Bilder als auch die anderen organischen Suchergebnisse) und/oder RSS-Feeds abzurufen und vieles mehr.

Seid kreativ ;-)
Um zum Beispiel gut zu ranken, Seiten zu finden, bei denen man kommentieren möchte, und vieles mehr.

Automatische Anmeldung mittles cURL-Script

Sie sind hier: Startseite » Archiv für php

Wenn man sich automatisch und schnell zu etwas anmelden will, weil zum Beispiel die Plätze für ein WM-Spiel, Kochkurs oder zu einer ähnlichen Plattform limitiert sind, dann ist oftmals Eile geboten.
Will man dann aber noch viele Freunde mitnehmen, dann sollte man es möglichst nicht mehr per Hand machen.

Dieser PHP-Code erledigt das mit einem kurzen cURL-Skript:
for($i=0; $i<sizeof($leute); $i++){

$form = "id=0&ip=85....&date=$date&name=".$leute[$i][1]."&vorname=".$leute[$i][0]."&email=".$leute[$i][3]."&termin=$termin&submit=Reservieren!";

$c = curl_init('http://www.url.com/index.php');
curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
curl_setopt($c, CURLOPT_POST,1);
curl_setopt($c, CURLOPT_POSTFIELDS, $form);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($c, CURLOPT_HEADER, 0);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$r = curl_exec($c);

echo "Durchgang $i";
echo $r;

}

Hier wurden an vorgehender Stelle im PHP-Skript alle Datensätze im Array leute[] gespeichert und die Daten sukzessive eingetragen.

Damit sollte man wohl schnell viele Datensätze übermitteln können.
Für Fortgeschrittene bietet sich eine Automation über diverse Server (oder eher Proxies) sowie die Übermittlung eines Referers an.

Für Affiliates kann dies zudem interessant sein, wenn man mit Co-Registrationen arbeitet.
Dabei sollte man aber unbedingt auf den Datenschutz und das Einverständnis der User hinweisen ;-)

Der tägliche Bing-Background

Sie sind hier: Startseite » Archiv für php

So eben hat babasave im Bing-Blog erzählt, dass ab nächstem Freitag das Bild des Tages auf der Bing-Startseite jeweils ein Bild vom größten Sportereignis des Winters, im kanadischen Vancouver, zu zeigen.

Um das jeweils aktuelle Bild zu holen und als Hintergrund oder Foto zu setzen, habe ich das kurze Skript geschrieben:

$ch = curl_init('http://www.bing.com/?cc=de');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$bing = curl_exec($ch);
curl_close($ch);

$bgurl = split("g_img={url:'", $bing);
$bgurl = split("'", $bgurl[1]);

$bgurl = str_replace("\/", "/", $bgurl[0]);

$bingbg = "http://www.bing.com/".$bgurl;

$ch = curl_init($bingbg);

$bg = fopen('bingbg.jpg', w);

curl_setopt($ch, CURLOPT_FILE, $bg);
curl_exec($ch);
curl_close($ch);
fclose($bg);

?>

Hier wird via curl das aktuelle Bild in der Datei “bingbg.jpg” gespeichert.

Lasst euch eine schicke Anwendung dazu einfallen ;-)

JSXGraph MediaWiki Extension

Sie sind hier: Startseite » Archiv für php