Alles was mit Programmierung zu tun hat.

[PHP] Array in ein String umwandeln

Hallo zusammen,

heute mal wieder etwas das ich des öfteren benötige. Ein Array in einen String umwandeln… um ihn dann, zum Beispiel, in eine Datenbank oder ein Cookie zu schreiben.

Das geht zum einen sehr einfach mit implode und mit explode um ihn wieder in ein Array zu verwandeln.

$String = implode(";", $Array);

und

$Array = explode(";", $String);

 

Soweit, sogut. Kommt man nun aber mit einem multidimensionalen Array daher, sieht es mit dieser Methode schon schwierig aus. Man müsste jetzt das ganze rekursiv machen und das ist umständlich und stößt auch ganz schnell an seine Grenzen.

Hier gibt es aber noch eine andere schöne Funktion in PHP. Das Zauberwort heißt serialize bzw. unserialize. Diese Funktion macht jedes Array zu einem String… oder wie das PHP Handbuch sagt ’speicherbare Repräsentation’… schönes Wort :-)

$String = serialize($Array);

und

$Array = unserialize($String);

Einfach und simpel… so wie es sein soll ;-)

Gruss
Gordon

Warum nicht ein bisschen sparen? Nicht nur weil Weltwirtschaftskriese ist!

Hallo liebe Internetgemeinde,

heute mal ein bisschen Werbung für mein neues Projekt ;-) Aber bitte erst lesen und dann evtl. weiter klicken! :-)

Not macht ja bekanntlich erfinderisch und die Not ist im Moment verdammt groß. :-( Aber irgendein weiser Mann (oder war es eine Frau?) hat auch mal gesagt „Man muss das Rad nicht immer neu erfinden!“… und so bin ich letztens auf eine Idee gestoßen die ich so gut fand das ich mich gleich ans umsetzen gemacht habe.

Aber worum geht es überhaupt? Das Projekt ist ein sogenanntes „CashBack-System“. Das Prinzip ist sehr einfach. Als Beispiel: Shop XY möchte etwas verkaufen. Es gibt viele Möglichkeiten etwas zu verkaufen. Eine davon ist andere Webseitenbetreiber anzusprechen und zu sagen „Binde meinen Link / Banner auf deiner Webseite ein und von jedem Kunden der bei mir etwas kauft und über das Banner auf deiner Webseite zu meinem Shop gekommen ist, gebe ich dir 10% des Umsatzes ab.“ Da sagt der Webseitenbetreiber natürlich nicht nein ;-) und bekommt jedes mal wenn jemand auf das Banner auf seiner Seite klickt und bei Shop XY dann etwas kauft 10% vom Gewinn und freut sich. :-) Shop XY freut sich auch über mehr Kundschaft. Die 10% muss er natürlich in den Preis einkalkulieren (sonst würde er wohl minus machen).

Sparen ist angesagt!

Sparen ist angesagt!

Nun kommt das CashBack-System. Das CashBack-System fungiert wie ein Webseitenbetreiber, aber mit dem Unterschied das es Hunderte von Shops als Partner hat. Der Internetbenutzer kann nun auf den Shop seiner Wahl klicken… da wo er sowieso einkaufen wollte. Er hat ja hier eine riesige Auswahl und kann seinen Lieblingsshop besuchen (der hoffentlich im System ist). Bleiben wir beim Beispiel und sagen er Klickt auf den Link von Shop XY und kauft dort ganz normal ein und der Webseitenbetreiber (des CashBack-System) bekommt von Shop XY nun wieder seine 10%. Er behält die 10% jetzt aber nicht für sich sondern gibt (zum Beispiel) 7% davon an den Internetbenutzer zurück… „CashBack = Geld zurück„.

Das Fazit: Für den Shop XY bleibt alles gleich. Er hat einen Kunden der etwas gekauft hat und gibt 10% des Umsatzes an den Webseitenbetreiber als Werbekostenerstattung (wie es so schön heißt) weiter. Der Internetbenutzer bezahlt erst einmal den vollen, normalen Preis. Bekommt aber (bsp.) 7% vom (Netto-)Preis wieder zurück, vom Webseitenbetreiber (des CashBack-Systems). Und der Webseitenbetreiber hat (bsp.) 3% Umsatz gemacht.

Das war’s im groben. Das wirklich interessante an dieser Sache ist das es keinen Hacken, doppelten Boden oder sonst etwas gibt. Es funktioniert so wie es da steht.

Nun, nach Wochen harter Arbeit, wenig Schlaf und viel Schweiß ist das Projekt nun online und wartet auf Menschen die mitmachen wollen. Die Adresse ist: http://www.bonitool.com
Ich weiß das ich nicht der erste bin der das macht, ich weiß das es Leute geben wird die dennoch so lange nach einem Hacken suchen bis sie irgend etwas finden werden, ich weiß das ich nicht alle Webshops als Partner gewinnen kann (wie viele gib es mittlerweile eigentlich? 2006 waren es so um die 250.000!!) und damit nicht jedermanns Lieblingsshop anbieten kann… aber ich werde es trotzdem wagen. Wer nicht wagt, der nicht gewinnt. (Und im Moment wäre es besser für mich zu gewinnen.)

Wenn dir das Prinzip gefällt dann melde dich doch einfach mal an und Probiert es aus… und erzähl es Bekannten und Verwandten. Ich bin für jeden User dankbar!

Wenn Du darüber berichten möchtest (in einem Blog oder sonst einer Plattform) dann sprich mich einfach an. Auch hier bin ich über jede Form der Unterstützung dankbar!

Wie gesagt, es ist kostenlos, ohne Hacken und Du kannst Geld sparen (ich weiß, das sagen alle… aber hier stimmt es) bzw. würdest du Shop XY das Geld schenken… denn im Preis sind die 10% (aus unserem Beispiel… jeder Anbieter hat sein eigenes Vergütungsmodel) eh eingerechnet.

Im Moment habe ich bei BoniTool.com etwas über 350 Partner aus den verschiedensten Bereichen und versuche jeden Tag ein paar mehr zu finden.
Die Teilung der Werbekostenerstattung/Provsion erfolgt immer gerecht und zu gleichen Teilen.

Vertriebsländer sind Deutschland, Österreich und Schweiz. Großbritanien soll in den nächsten Tagen kommen.

Liebe Grüße
Gordon

Mein Blog twittert jetzt auch :-)

Tach zusammen,

ja ich weiß, ich bin spät dran mit twittern… aber wie sagt man so schön… besser spät als nie :-)

Für alle die nicht wissen was twittern ist… keine panik, ich weiß es auch nicht! Aber ich tue es jetzt einfach mal. :-P Nein, twitter ist irgendwie ne mischung aus social-irgendwas und rss. Man kann sich anmelden und fleißig statusmeldungen eingeben. Sowas wie bei facebook die „live-meldung“ oder bei meinVZ der „buschfunk“. Mehr nicht… die seite besteht nur aus diesen kleinen nachrichten und die leute stehen drauf.. warum auch immer. Und ich mache jetzt mit :-) Aber nicht bei twitter direkt, nur mein blog schreibt fleißig diese meldungen von ganz allein (weniger arbeit für mich) ;-) Und das tolle… twitter schickts dann gleich an facebook weiter… so verpasst keiner mehr meinen schwachsinn :-D

Wer mir followen (folgen) will… bitte schnell adden: http://twitter.com/ChaosGordon

Das hier ist auch gleich soetwas wie eine feuerporbe für das twitter-plugin für wordpress… ich hoffe doch das es funktioniert!

soo, dann mal los!

Tschau
Gordon

Update: Nee, funktioniert nicht… mein PHP unterstützt kein json_decode()… verdammt :(

Neues Update: Jetzt gehts… hab nen kleinen patch gefunden:

if ( !function_exists(‚json_decode‘) ){
function json_decode($json)
{
// Author: walidator.info 2009
$comment = false;
$out = ‚$x=‘;

for ($i=0; $i<strlen($json); $i++)
{
if (!$comment)
{
if ($json[$i] == ‚{‚) $out .= ‚ array(‚;
else if ($json[$i] == ‚}‘) $out .= ‚)‘;
else if ($json[$i] == ‚:‘) $out .= ‚=>‘;
else $out .= $json[$i];
}
else $out .= $json[$i];
if ($json[$i] == ‚“‚) $comment = !$comment;
}
eval($out . ‚;‘);
return $x;
}
}

PS: Und baut ein kleinen sleep(3) ein bevor die _aj_birdfeeder() verlassen wird… sicher ist sicher… hat beim ersten mal auch nicht funktioniert.

Update: Man, gar nicht so einfach…. jetzt hat es funktioniert aber kein link zum blog da :( Die Shorturl wird nicht angezeigt :(

Letztes Update: jetzt geht alles… etwas entscheidendes vergessen. Die obige fuhnktion macht kein objekt mer sondern ein array… daher muss die folgende zeile umgeschrieben werden:

$shortUrl = $shortnameHash->results->$postUrl->shortUrl;

in

$shortUrl = $shortnameHash[„results“][$postUrl][„shortUrl“];

nu gehts. :-)

[PHP] Passwort generieren

Hi,

da ich auch das ab und zu brauche und jedes mal eine gute Funktion suche… hier meine Gedächtnissstütze :-)


$pwZeichen = 'wertzupasdfghkyxcvbnmWERTZUPLKJHGFDSAYXCVBNM23456789';
srand ((double)microtime()*1000000);
for($i = 0; $i < 5; $i++) {
$passwort .= substr( $pwZeichen, (rand()%(strlen ($pwZeichen) ) ), 1);
}

In der Variable $pwZeichen sind alle Zeichen aufgeführt die in dem Passwort verwendet werden. srand startet den Zufallsgenerator (sonst würde das Passwort aus ein und dem selben Zeichen bestehen ;-)
Die ‚for‘-Schleife bestimmt wieviele Zeichen das Passwort hat. Hier 5. Du kannst den Wert aber auch verändern. Und zu guter letzte werden die Zeichen hintereinander in die Variable $passwort geschrieben.

Das wars schon ;-)

[PHP] Nur Buchstaben und Zahlen im String lassen

Nachdem ich diesen Schnipsel heute zum bestimmt 10 mal gesucht habe wird es jetzt Zeit ihn endlich mal hier zu verewigen.

Ihr kennt das vielleicht… da hat man einen String – egal ob einen Dateinamen beim Dateiupload oder eine Usereingabe in einem Textfeld – und dort stehen Sachen drin die man einfach sooo nie wollte.

Bestes Beispiel war heute eine Kundin die mir Mitteilte das sie Bilder in ein Systemhochladen wollte und die Bilder werden einfach nicht angenommen. Beim Blick auf den Dateinamen im Ordner wurde mir klar warum der Browser nix anzeigte… der Dateiname lautete: „1_tr352&amp;3 web2 the hill Da3 DSC03254.jpg“…
Genau für soetwas ist die folgende Funktion wundervoll… sie macht daraus einfach „3_1tr352amp3web2thehillDa3DSC03254.jpg“… gut, immer noch nicht schön… aber besser und der Browser kommt mit klar.

Anderes, einfacheres Beispiel… der User gibt irgendwo „bla(§blub1.- Dß?3äüö“ ein (warum auch immer)… die Funktion macht daraus „blablub1D3“.

Man kann natürlich auch noch andere Zeichen zulassen, wie z.B. Umlaute, Leerzeichen, Punkt, Komma, etc. Was man möchte.

Hier nun die Funktion:

$String = preg_replace('/[^a-z0-9]/', '', $String); //nur kleine Buchstaben und Zahlen

$String = preg_replace('/[^a-zA-Z0-9]/', '', $String); //kleine und grosse Buchstaben und Zahlen

$String = preg_replace('/[^a-zA-Z0-9äÄöÖüÜß]/', '', $String); //kleine und grosse Buchstaben, Umlaute und Zahlen

$String = preg_replace('/[^a-zA-Z0-9äÄöÖüÜß., ]/', '', $String); //kleine und grosse Buchstaben, Umlaute, Komma, Punkt, Leerzeichen und Zahlen

Gordon’s Chaosblog goes to facebook…

Hallo zusammen,

die meisten wird das gar nicht interessieren… ein paar vielleicht schon. Nämlich die die selbst über facebook applikationen nachdenken.

Ich kann und will hier nicht noch ein how to do schreiben… dafür gibt es schon genug. Also werd ich es kurz und bündig machen :-)

Warum sollte man einen blog bei facebook einbinden? *pfff* Keine ahnung… jeder hat so seine eigenen gründe ;-) Für mich ist es einerseits spaß und andererseits brauche ich ein bisschen erfahrung für eine andere applikation. Und ein bisschen bei bestenden anwendungen abgucken kann ja nicht schaden :-)

Was macht die applikation? Es handelt sich dabei um ein plugin für wordpressblogs. Das plugin heißt WPBook. Es macht eigentlich nichts anderes als den RSS-Feed deines blogs in facebook zu veröffentlichen. Das geht sogar in deinem profil… allerdings nur in der widget bar… als profilreiter hatte ich probleme vorhin.

So… wie installiere ich das nun? ich habe es ja schon gesagt, ich werde hier kein neues how to do schreiben. Zum einen sollte man sich natürlich die installationshinweise des plugin machers anschauen (auch hier). Und ein sehr gutes tutorial hat DrWeb geschrieben.
Damit lässt sich das plugin und die applikation sehr gut einrichten. Und vorweg… es ist sehr leicht… also keine angst. ;-)

So… ich warte jetzt auf meine millionen besucher täglich und werde bei bedarf mal einen ansichtskarte von meiner eigenen südsee insel schicken. :-)

Viele Grüße (noch von der süd europa insel)
Gordon

FavIcon erstellen – Schnell, kostenlos und Online

Kurzes Update vorweg: FavIcon-Script jetzt zu kaufen -> Favicon Generator. Betreiben Sie einen eigenen FavIcon-Service auf Ihrer Homepage und lassen Sie ihre Kunden ihr eigenes Favicon erstellen.

Hallo zusammen,

es gibt mal wieder was neues in meiner Softwaresammlung.

Jeder kennt diese kleinen Icons neben der Internetadresse im Browser (siehe oben im Browser). „FavIcon“ ist der Name des kleinen Icons das dazu beiträgt das eine Internetseite etwas mehr individuell wird. Aber der eigentliche Zweck ist die Favoritenliste… daher auch der Name „Favoriten Icon„… kurz „Favicon“. Jeder der mit der Favoritenliste arbeite weiß, wenn man einmal 100 Favoriten gespeichert hat dann kann man schon mal eine weile suchen bis man den gesuchten Link gefunden hat. So kam wohl mal jemand auf die Idee ein kleines Icon zu basteln und dieses in der Liste mit zu speichern, damit hat man eine visuelle Orientierungshilfe und findet den gewünschten Link schneller.

Das Problem was ich mit den Icons immer habe ist das es sich um ein spezielles Dateiformat handelt. Nämlich das „*.ico“-Format. Das dumme dabei ist das nur spezielle Programme dieses Format erstellen können und auch damit umgehen können. Nicht einmal Profisoftware wir Photoshop kann ein simples Favicon erstellen. Vielleicht zu simpel für Adobe??

Auf der anderen Seite gibt es aber sogar Webseiten die anbieten kostenlos, per Skript, ein Favicon aus einer Bilddatei zu erstellen. Also kann es nicht sooo schwierig sein, wenn selbst ein PHP-Skript diese Icons erstellen kann. Und die Fähigkeiten von PHP-Skripten sind doch begrenzter als Offline-Software.

Nun habe ich mir letztens bei eBay selbst ein Favicon-Script gekauft. Der Preis war gut und ich benötige es ja selbst des öfteren um Icons für meine oder Kunden-Webseiten zu erstellen.

Natürlich ist es nicht nur für mich gedacht, jeder soll und kann es nutzen wenn er es braucht. Einfach eine eigene Bilddatei hochladen, optional einen Text eingeben und abschicken. Das Skript erstellt das Favicon (in verschiedenen Varianten) und es sofort runtergeladen werden. Das wars, keine Anmeldung nötig, absolut kostenlos, nur 2 Eingabefelder. Simpel und einfach. ;)

Finden könnt ihr den Favicon-Generator hier: Bitte klicken zum Favicon erstellen

Jetzt funktioniert er endlich. Habe geschlagene 2 Tage dran gewerkelt bis das Skript endlich funktioniert hat.
Wie gesagt, bei eBay ersteigert das gute Stück. Ich hatte ja schon 2-3 mal Skripte bei eBay ersteigert und mich hinterher geärgert. Die Programmierung war jedes mal grotten schlecht und im Endeffekt hätte man es selbst fast schneller hinbekommen. :(

Doch diesmal hatte ich die Hoffnung das es besser werden würde. Leider vergebens. Nachdem ich das Skript vom Verkäufer runtergeladen hatte und entpackt hatte wurde mir schnell klar „Ach du sch****“. Tabellen-Layout, PHP und HTML gemixt, CSS nicht ausgelagert… kurz, eine Katastrophe.

Somit bin ich schnell bei meinem Lieblings-Layouthersteller vorbei und habe mir erst einmal ein schönes CSS-Layout ausgesucht. Das dann Eingebaut und angepasst, dabei auch gleich PHP vom Layout getrennt. Nun war das Layout schick. Bei den Umbauarbeiten ist mir auch gleich aufgefallen das der Text sehr komisch zu lesen ist… ein Blick und es wurde klar: Der Text ist nicht original deutsch. Sprich eigentlich war das Skript mal in einer anderen Sprache und wurde a la Onlineübersetzer ins Deutsche übersetzt. Wer das schon mal gemacht hat weiß was ich meine.
Also auch noch die Texte neu schreiben. Waren ja zum Glück nicht so viel.

Dann war alles schick und funktionierte. Also Subdomain eingerichtet und hochgeladen. Jetzt funktionierte es aber auf einmal nicht mehr. … ????
Das Skript war nur mit Windows-Systemen kompatibel und die ZIP-Funktion funktionierte auf Linuxsystemen nicht. Super. Das war dann der 2. Tag. Den verbrachte ich dann damit die Funktionsfähigkeit auf meinem Webserver herzustellen.

Im Endeffekt habe ich das Skript nun fast komplett neu geschrieben. Aber nun funktioniert es und alles ist super. :) Ich hoffe es kommt auch ein bisschen an und die Leute nutzen es fleißig. Ich werde es des öfteren auf jeden Fall tun. :)

Was ich allerdings überlege ist den Verkäufer aus dem Copyright rauszunehmen. Denn wie gesagt, mittlerweile ist es mehr von mir erstellt als von Ihm. Wobei ich mir auch nicht sicher bin das er überhaupt der Hersteller des Skripts ist. Aber vielleicht hat er es selbst mal komplett gekauft und verkauft es jetzt nur als Lizenz weiter.
Ich werde mich da mal belesen wie sich das verhält und ihn, wenn es geht, aus dem Copyright rauskicken. Wer so eine schlampige Arbeit verkauft… naja.

Update: Ich HABE das Skript jetzt neugeschrieben. Das hat mich ja irgendwie total angebrochen. So etwas noch mit einem Link zu belohnen. Zumal der Großteil eh schon umgeschrieben werden musste und wahr. Und das Skript ist nun komplett neu geschrieben und anders was anders gemacht werden konnte. Somit hat sich das Thema erledigt und alles ist nun schick :)

www.logistic-forwarder.com – Toolsammlung für Logistiker

Mein neustes Projekt entstand aus meiner aktuellen Lage heraus. Ich arbeite seid einiger Zeit in einem Unternehmen das in der Logistikbranche tätig ist. Für mich war dies eine völlig neue Erfahrung. Ich hatte nie etwas mit dieser Branche zu tun. Nun stecke ich quasi mitten drin :)

Mit der Zeit lernt man auch die Arbeitsschritte und Abschnitte kennen, die täglichen Sachen die man braucht und benutzt. Dazu zählen z.B. Währungsumrechner wenn man Yen in Euro umrechnen muss, Uhrzeiten weltweit um zu wissen wann die Kollegen in Houston auf Arbeit sind und man stören darf :) oder auch Telefonnummern, Landesvorwahlen, etc.pp.

Für alles haben wir eigene Seiten. Eine für die Uhrzeiten, eine für Wärhrungsumrechnung, jede Airline und jeder Courierdienst hat eine eigene Seite um das Cargo zu tracken und so weiter. Ständig ist man damit beschäftigt durch die Seiten zu surfen. Das kostet unmengen von Zeit und manchmal auch nerven.

Und so wurde die Idee geboren eine Seite zu schaffen auf der man alles auf einer Webadresse findet. Eine Seite auf der man Beträge der wichtigsten Währungen umrechnen kann, auf der man die aktuelle Uhrzeit jeden Landes anzeigen lassen kann, sämtliche trackings erledigen kann, Adressen suchen kann, die neusten Nachrichten auf einen Blick haben, an internationale Feiertage erinnert werden, etc.
Ich gehe sogar soweit zu sagen das man einiges verbinden kann.

Zum Beispiel ist ein Stocksystem geplant. Der Kunde bestellt Waren, er liefert an oder lässt abholen, die Teile werden eingetragen und irgendwann an den Empfänger weitergeleitet. Dabei gibt es verschiedene Zwischensteps. Einer davon ist Controlling. Wenn das Cargo unterwegs ist dann muss kontrolliert werden ob es angekommen ist, ob es Probeme gibt. Dazu wäre es toll wenn man über eine XML-Schnittstelle die Trackingdaten der Fluggesellschaften und Courierdienste abfragen kann. Einige bieten dieses Service an, jedoch sind erste Versuche diese zu benutzen zu dürfen fehlgeschlagen. Ich bleibe aber dran :)

Einige Sachen der Seite sind schon feritggestellt, andere sind in arbeit. Ich werde weiter daran arbeiten und hier die neusten Updates veröffentlichen.

Der Link zur Webseite ist: http://www.logistic-forwarder.com

Update 03.03.2008:

  • Update des Währungsrechners. Es können nun bis zu 10 Werte gleichzeitig um- und zusammengerechnet werden.
  • Backlink zur Übersichtsseite von den einzelnen Weltuhrzeiten (pro Land).

Update 10.03.2008:

  • Einbau einer Schnittstelle zum Export von Währungen. Zum Beispiel kann ein Shopbetreiber nun seinen Euro-Preis auch in z.B. USD anzeigen lassen. Die Schnittstelle ist online, aber kann noch Veränderungen geben. Bin noch nicht ganz zufrieden damit.
    [ Deutsche Beschreibung ] [ Beispiel ]

Update 02.10.2009:

  • Alle Flughäfen weltweit, inklusive suche und IATA-Code.
  • Ein Wissensspiel. Eine kleines Spiel in dem es darum geht Währungscodes, Flughäfencodes, Ländervorwahlen, etc. zu wissen. Nur für hartgesottene Logistker ;)

[CSS] Tooltips ohne Javascript!

Hallo zusammen,

heute mal wieder ein netter Codeschnipsel für den täglichen Einsatz :)
Wie in der Überschrift schon erwähnt, es geht um einen Tooltip ohne Javascript. Jeder kenn sicher diese kleinen Fensterchen (oder auch Sprechblase genannt) das aufgeht wenn man mit der Maus über einem Objekt steht. Ob dort nun kleine Informationen oder Hilfen angezeigt werden… der Verwendungszweck ist sehr unterschiedlich.

Meist werden diese Fenster per Javascript initialisiert. Das aber kann auch Probleme mit sich bringen. So wie ich es jetzt mitkriegen musste. Ich wollte in solch einem Javascript Tooltip ein weiteres Java (Ajax) ausführen… nicht möglich. Auch ist es per CSS schöner falls der User gar keine Javascript aktiviert hat. Und es sieht per CSS nicht schlechter aus!

Dieser Codeschnipsel ist mal nicht von mir. Zu finden ist er bei: Trent Richardson

Ich wünsche viel Spaß damit ;)

Gruß
Gordon

[Tips & Tricks] Wie fange ich an?

Hallo,

hier möchte ich mal ein paar Tips und Tricks aus meiner persönlichen Erfahrung weitergeben. Ich kann nun auf einige Jahre Programmiererfahrung zurückblicken und habe selbst viel Zeit gebraucht um ein paar wichtige Erfahrungen zu machen. Damit andere vielleicht schneller dahinter kommen wie manche Dinge besser laufen, möchte ich ein paar Eckpunkte hier aufschreiben ;)

1) Trenne immer Code und Design

Meine ersten Seiten bestanden aus reinem HTML und alles war in einer Datei… wie auch sonst. Dann kam JavaScript und CSS ins Spiel und damit die ersten, primitven, Anfänge Code auszulagern. Als ich dann mit PHP angefangen habe und diverse Bücher, Foren, Internetquellen und sonstiges dazu konsultierte, wurde der Code weiterhin in einer Datei gespeichert. Also HTML und wild dazwischen der PHP-Code.
Das erste mal, an das ich mich erinnern kann, das ich merkte das diese Art und Weise eigentlich misst ist war als ich auf einer Seite ein komplettes Layout Redesign machen wollte. Mir blieb im Prinzip nichts anderes übrig als die Seite komplett neu zu machen.
Mein Fazit heute: PHP-Code und Layout immer strickt trennen. So viel wie möglich mit CSS arbeiten (man kann fast alles im Layout damit aendern und CSS wird (sollte) immer in einer seperaten Datei gespeichert werden). Ich habe auch mal den Fehler gemacht und HTML code mit PHP erstellt und dann wiederum in das HTML-Template eingebunden… wenn möglich auch das vermeiden.

2) Arbeite Objektortientiert

Wie oben schon beschrieben habe ich frueher alles in einer Datei gehalten. Ob Funktionen, PHP-Code, HTML, CSS und Javascript. Alles in einer Datei. Warum ist das jetzt schlecht? Nehmen wir z.B. die Emailüberprüfung (also ob eine Emailadresse valid ist). Diese wird z.B. gebraucht wenn der User sich registriert. Haben wir einen Newsletter brauchen wir sie auch da. Bauen wir die Funktion in beide Dateien ein und möchten wir die Funktion einmal erweitern dann müssen wir beide Dateien ändern. Zusätzlich wird mehr Speicherplatz benötigt. Immer (!) auslagern. Prinzipell alles was mehrfach gebraucht wird… besser noch alle Funktionen und Klassen immer in externe Dateien auslagern.

Heute ist die Regel: Lagere alles aus was du kannst und was Sinnvoll ist! Das heisst alle Funktionen kommen in eine seperate Datei, Layoutheader und -footer definitv auslagern, so viel wie möglich mit CSS arbeiten (dies natuerlich in einer seperaten Datei speichern), mit Klassen arbeiten (das Thema ist sehr umfangreich), arbeiten mit Strukturen. Alles was mehrfach gebraucht wird bekommt eine Funktion… wenn nicht gar Klasse.

3) Daten die sich ändern können immer in eine (1) Variable legen

Auch hier das selbe Prinzip. Alles was sich ändern kann muss zentral in einer Variable gelagert werden. Aktuelles Beispiel: WordPress versendet (unter bestimmten Voraussetzungen) automatisch Emails. Die Absenderadresse ist fest im Code (an mehreren Stellen) eingebaut und setzt sich aus „wordpress@“ und dem Domainnamen zusammen. Existiert diese Emailadresse nicht real so kann es zu Fehlern kommen… will man Sie ändern muss man in den Code. Hätte man diese in eine Variable (z.B. in der wp-config.php oder gar in der Datenbank) abgelegt waere es ein leichtes Sie zu ändern. Was ich mit dem Beispiel sagen will ist: Baue nichts in den Code ein was sich ändern kann. Besonders dann nicht wenn der Code / das Script weitergegeben werden soll.

4) Erfinde nicht jedes Rad neu

Das hier ist kein Aufruf zum Datenklau! Aber es gibt heutzutage zu (fast) jedem Thema ein Tutorial, einen Codeschnipsel, eine Anleitung oder einfach nur den eigenen Verstand. Man muss nicht für jede Funktion von vorn Anfangen und viele der Codestücke sind millionenfach erprobt und im Einsatz und damit auch fehlerfreier als die eigene Funktion vielleicht sein würde.
Somit kann man sich viel Zeit und Ärger ersparen und auf bestehende Codefragmente zurückgreifen. Sonst kann man auch gern mal bei den anderen Schauen und sich gedanken darüber machen wie die es wohl gelöst haben könnten.
Zu vielen Sachen gibt es sogar komplett fertige Systeme. Wobei ich persönlich selten komplette Systeme nutze. Wenn dann doch mal was geändert werden muss dann muss man sich erst in das Script einarbeiten und, je nachdem wie der Programmierer gearbeitet hat, kann das mitunter sehr kompliziert werden.

… to be continued.