Logfiles mit PHP schreiben – so geht es

Manchmal möchte man bestimmte Aktionen, die innerhalb eines PHP-Scriptes stattfinden in einer simplen Textdatei mitloggen. Das folgende Snippet loggt den aktuellen Zeitstempel sowie die IP-Adresse eines Besuchers in einer Textdatei mit:


<?php

// IP-Adresse ermitteln
if (! isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $client_ip = $_SERVER['REMOTE_ADDR'];
} else {
  $client_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}

// Log-Eintrag vorbereiten
$entry = date('Y-m-d H:i:s')." | IP:".$client_ip."\n";

// Datei öffnen (wenn es sie nicht gibt, wird sie autom. angelegt)
$logfile = fopen("meinlog.txt", "a");

// Eintrag in die Logdatei schreiben
fwrite($logfile, $entry);

// abschließend die Logdatei wieder schließen
fclose($logfile);

?>

So können Sie mit PHP die IP-Adresse eines Besuchers ermitteln

Für den ambitionierten PHP-Programmierer ist es eine Kleinigkeit, für den Einsteiger jedoch nicht. Manchmal ist es notwendig, die IP-Adresse eines Besuchers zu ermitteln, um diese beispielsweise zusammen mit einem Zeitstempel (timestamp) bei einer Anmeldung oder beim Absenden eines Kontaktformulars zu speichern. Der folgende Code zeigt, wie’s geht.

<?php

if (! isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $client_ip = $_SERVER['REMOTE_ADDR'];
} else {
  $client_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}

echo 'Die IP-Adresse lautet '.$client_ip;

?>

Paypal IPN-Problem [gelöst]

Heute wollte ich mithilfe der Paypal-Sandbox meine bislang funktionierendes Verkaufsskript testen und siehe da: es funktionierte nicht. Statt der erwarteten Instant Payment Notification (IPN) erhielt den lapidaren Eintrag “INVALID 302 Found” in meine Logdatei. Was war da los?
Nach einiger Internetrecherche fand ich die Lösung. Ursache war eine andere (neue?) URL von Paypal zum Zurücksenden der IPN-Daten.
Der ursprüngliche Code sah so aus:

...
$this->paypal_url = "http://www.sandbox.paypal.com/cgi-bin/webscr";
...
$url_parsed=parse_url($this->paypal_url);
...
$fp = fsockopen($url_parsed['host'], "80", $err_num, $err_str, 30);
...

Die Lösung bestand ganz einfach darin:

...
$this->paypal_url = "http://www.sandbox.paypal.com/cgi-bin/webscr";
...
$url_parsed=parse_url($this->paypal_url);
...
$fp = fsockopen("ssl://".$url_parsed['host'], "443", $err_num, $err_str, 30);
...

Ich habe den String “ssl://” eingefügt sowie statt Port 80 den Port 443 eingetragen. Und siehe da, der Testkauf via Paypal-Sandbox verlief wie gewohnt reibungslos. Jetzt warte ich bloß noch auf den nächsten Käufer, um zu sehen ob auch die “Live”-Variante mit $this->paypal_url = “http://www.paypal.com/cgi-bin/webscr” funktioniert …

Have a nic day!

So definieren Sie Ausnahmen für den PHP-Befehl »strip_tags«

Mit dem PHP-Befehl strip_tags kann man HTML-Tags aus Strings entfernen.

Weniger bekannt ist die Möglichkeit, hierfür Ausnahmen zu erstellen und somit nicht ganz so restriktiv bei der Enfernung von HTML-Tags vorzugehen. Dazu übergibt man der Funktion einfach einen zweiten Parameter, der die Ausnahmen enthält.

Ein einfaches Beispiel:

echo strip_tags($mein_string_mit_html, '<i><b>');

Damit werden die HTML-Tags ‘<i>’ und ‘<b>’ erlaubt, jedoch alle anderen Tags entfernt.

So bekommen Sie kostenlosen Traffic – Mit System zu mehr Besuchern

Ich bekomme täglich viele eMails, doch gestern bekam ich eine, die hat mich echt sprachlos gemacht.
Es geht um eine Methode, mit der man in kürzester Zeit sehr viel kostenlosen Traffic über Google generieren kann, den man hoch effektiv zu Geld macht. Das Ganze bei nur 4 Stunden Einsatz pro Woche!

Ich habe mir das System angeschaut und es ist eigentlich so simpel und eins dieser Systeme, bei denen man denkt, “warum verdammt noch mal bin ich nicht darauf gekommen?”.

Hier gibt es das Video, das erklärt wie’s geht: Kostenloser Google-Traffic.

Workflow-Demo für das 3D Kamera-Tracking in Blender

In diesem Video von Sebastian König kann man den Workflow des Blender-3D-Kamera-Trackings sehen. Das Ergebnis ist durchaus beindruckend. Bin mal gespannt, wann das Kamera-Tracking in Blender verfügbar sein wird. ich hab da nämlich so’n paar Ideen …

Demo of tracking workflow in Blender from Sebastian König on Vimeo.

So können Sie mit Javascript Sounds abspielen

Heute gab es gleich noch eine “Herausforderung”: Wie spielt man per Javascript einen Sound ab? Also beispielsweise beim Anzeigen einer Fehlermeldung oder beim Klick auf einen Link. Auch hier half ein wenig Recherche und etwas Basteln.

1. Ein leeres SPAN-Element mit der ID “sound” an einer beliebigen Stelle auf der Webseite anlegen

<span id="sound"></span>

2. Folgenden Javascript-Code im HEAD-Bereich einbauen:

function playSound(url) {
  document.getElementById("sound").innerHTML="<embed src='"+url+"' hidden=true autostart=true loop=false>";
}

3. Die Funktion benutzen. Zum Beispiel so

<a href="#" onclick="playSound('pfad_zum_sound/sound.wav')">Play Sound</a>

Viel Spaß damit!

MP4 streamen mit JW Player – So geht’s

Ich musste mich heute auf Arbeit mit einem Phänomen befassen, für das es auf den ersten Blick keine Lösung gab. Ich wurde nämlich von unserem Videoproduzenten gefragt, ob er uns die Videos im .mp4-Format liefern könnte. Da wir unsere Videos ausnahmslos im Internet mittels JW-Player präsentieren, war das ein Problem, denn erste Tests ergaben, dass der JW-Player die Videos erst abspielte, wenn sie komplett geladen waren, sie also nicht streamen konnte. Da ich mir nicht vorstellen konnte, dass es dafür keine Lösung gibt, habe ich mal ein bisschen im Internet gestöbert und fand die Lösung. [Weiterlesen...]

So nutzen Sie die bit.ly API um URLs zu verkürzen #PHP

Die neue API v3 von bit.ly ermöglicht es, kurz und knapp URLs aus eigenen Anwendungen zu verkürzen. Das Ganze funktioniert in PHP so. [Weiterlesen...]