Ex astris scientia

Tag: PHP

Cookies in Wordpress setzen

by Phil on Jan.29, 2009, under Coden, PHP

Dass man Cookies in PHP nur setzen kann, wenn die Kopfdaten noch nicht an den Browser gesendet wurden, lernt man spätestes, wenn man die nette Warnung “Cannot modify header information – headers already sent by …” liest.

Da ich gerade mal wieder an WordPress herum bastel – fragt nicht – wollte ich wissen ob es schon irgend ein vorgesehenen Mechanismus zum Cookiesetzen gibt. Nach einer kurzen Suche1 bin ich auf Cookies in Wordpress setzen gestoßen.

Eigentlich keine schlechte Idee, sich selber um das Cookie zu kümmern, nur hatte ich ein kleines Problem, da init zwar weit vor jeglichem Output aufgerufen, leider aber auch vor wp() ausgeführt wird. Was also machen, wenn man auf Daten zugreifen möchte die noch nicht berechnet wurden?

PHP Source Code – Bad but arty Screenshot

Bevor ich in Adam Browns hook directory alle Einträge durchgelesen hab, ist mir dann noch der Gedanke gekommen, das ich – da ich das Cookie für mein Theme brauche – ja in der header.php einfach ne Funktion aufrufen könnte … schnell wieder verworfen – zum Glück – wem schmeckt schon Code Soup?

Also hab ich jetzt eine Funktion auf get_header registriert. Immer noch nicht Ideal, aber ich bin auch noch nicht alle 800 Hooks durch.

Eine Sache ist mir dann doch aufgefallen, wieso benutzt WP kein Output Buffering? Wäre um einiges praktischer, könnte man ja dann auch für on-the-fly Komprimierung nutzen, falls in der php.ini zlib.output_compression auf dem Standard Wert 0 steht.

1 ja mal wieder die Suchmaschine meines Vertrauens

1 Comment :, , more...

PHP Script Suizid

by Phil on Okt.27, 2008, under Coden, PHP

Was macht man wenn sich ein PHP Script selber erneuern soll – also seinen eigenen Quelltext abändern, ergänzen soll. Erste Gedanken könnten einen dazu bewegen, über ein ‘302 Moved Temporarily’ im Header ein anderes Script aufzurufen, welches dann nach der gewünschten Modifikation das ursprüngliche Script ausführt. Zugegeben umständlich.

Getrieben von Neugierde habe ich dann einfach mal versucht das momentan laufende Script sich selber löschen zu lassen, funktioniert wunderbar und da das ganze vorher in den Arbeitsspeicher geladen wurde, wird das Script auch weiter ausgeführt.

<?php
unlink(__FILE__);
$fh = fopen(__FILE__, 'w') or die('can't open file');
fwrite($fh,'goodbye cruel world!');
fclose($fh);
?>

Mir ist durchaus bewusst, das es logischer wäre unlink am Ende aufzurufen…

2 Comments :, , , , more...

Convenience

by Phil on Okt.26, 2008, under Coden, Fun, PHP

Es gibt doch immer wieder diese Momente in denen man sich wundert ob man der einzige Mensch ist, der den gerade begangenen Fehler begangen hat. Meist kaum vorstellbar. Und wenn, dann wundert man sich warum einen keiner davor gewarnt hat.

This is a dummy manual entry to satisfy those people who are looking […] in the wrong place.

Dieser nette Eintrag in der PHP Dokumentation ist genau eine solche Warnung – Ideal platziert, schließlich habe ich ihn gefunden :-D

Leave a Comment :, , , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...