Archiv für die Kategorie ‘Programmieren mit PHP’

301 Weiterleitung mit PHP korrekt programmieren

Freitag, 20. April 2012

Überall wo man guckt, wird von 301er Weiterleitungen und ihre Wichtigkeit für eine erfolgreiche Suchmaschinenoptimierung gesprochen. Diese sind tatsächlich wichtig, denn jede Weiterleitung, die nicht mit dem Statuscode 301 ausgeführt wird, wird als eine temporäre Weiterleitung (302) betrachtet. Da sie keine Aussage darüber macht ob die Quell- oder die Zielseite die endgültige Seite ist, ist sie komplett unerwünscht. Jedes mal, wenn Sie eine Weiterleitung mit PHP programmieren, müssen Sie darüber nachdenken ob diese Weiterleitung durch eine Suchmaschine in Anspruch genommen wird, um an der Stelle eine Aussage bezüglich Gültigkeit durch den Statuscode zu treffen.

Was ist eine 301er Weiterleitung überhaupt?

Jede Weiterleitung, die einen Besucher/Suchmaschine von Adresse A endgültig auf Adresse B verweist, ist eine 301-er Weiterleitung. Somit sagen Sie – die Zielseite ist die Seite, die tatsächlich aufgerufen werden soll. Eine Weiterleitung mit PHP ist nicht standardmäßig mit dem 301 Status Code versehen, darum müssen Sie sich als Programmierer kümmern. Über alle Vorteile über den Einsatz von 301er Weiterleitungen können Sie in unserer Sammlung von Suchmaschinentipps nachlesen.

301er Weiterleitung mit PHP implementieren

Jedes Mal, wenn Sie eine Weiterleitung mit dem PHP Befehl Header(“Location”) programmieren, erzeugen Sie eine 302 Weiterleitung. Kurz davor müssen Sie den Status Code für die nachfolgende Weiterleitung definieren:

Header("HTTP/1.1 301 Moved Permanently");
Header("location: /meine_endgueltige_seite.html");

Nach der erfolgreichen Weiterleitung müssen Sie den Code erneut durch die Header setzen, wenn Sie wieder weiterleiten wollen.

301 Weiterleitung alternativ – mit .htaccess

Wir haben bereits darüber gebloggt, wie Sie eine 301er Weiterleitung mit .htaccess anlegen können, schauen Sie einfach rein. Vielleicht ist das für Sie einfacher oder Sie verfügen nicht über PHP etc.

Noch Fragen? Wir sind gerne für Sie da.

Zählen von Substrings in einer Zeichenkette mit PHP und substr_count()

Dienstag, 08. November 2011

Viele PHP Programmieraufgaben lassen sich mit der Kombination verschiedenster Funktionen erledigen. Für manche bietet aber PHP bereits fertige Funktionen, die zum einen schneller sind, zum anderen einfacher einzusetzen sind. Einen solchen Beispiel werden wir heute veranschaulichen – wie können Substrings innerhalb einer Zeichen gezählt werden?

Problematik

Sie wollen gerne wissen, wie oft das Wort Buch in der Zeichenkette “Buch im Buchhandel” vorkommt, ohne immer wieder nach dem Wort Buch mit PHP zu suchen, den gefundenen String auszuschneiden und weiter zu suchen? Das lässt sich ganz einfach mit der Funktion substr_count erledigen, folgendermaßen:

Lösung 1

$nAnzahl = substr_count("Buch im Buchhandel", "Buch");

Anbei die Erläuterung – als erster PHP Parameter geben Sie die Zeichenkette ein, in der gesucht wird und als zweiter Parameter geben Sie das gesuchte Wort ein. $nAnzahl ist eine Zahl, die Sie von PHP als Ergebnis bekommen. Somit ist Ihre Programmierung schnell und kompakt. Folgendes sollten Sie aber beachten:

  • Die Funktion zählt nicht doppelt, wenn das zweite Vorkommen eines Strings innerhalb des ersten anfängt.
  • Die Funktion zählt unter Beachtung von Groß- und Kleinschreibung. Das bedeutet, das Wort buch kommt in unserer Beispelszeichenkette gar nicht vor.

Lösung 2 – Suche ohne Beachtung von Groß/Kleinschreibung

$nAnzahl = substr_count(strtolower("Buch im Buchhandel"), strtolower("Buch"));

Ganz einfach – wenn Sie suchen wollen, ohne großartig Groß- und Kleinschreibung zu berücksichtigen, so können Sie vor dem Aufruf der PHP Funktion substr_count eine andere PHP Hilfsfunktion aufrufen – strtolower(). Diese wandelt automatisch alle Buchstaben in Kleinbuchstaben um. Somit bekommen Sie einen Programmierergebnis für alle mögliche Treffer.

Einsatz und Fazit

Diese können können Sie immer verwenden, wenn Sie detaillierte Information über die Aufteilung von Wörten innerhalb eines Text mit PHP in Erfahrung bringen möchten. Diese nutzen wir für unsere Suchmaschinenoptimierung, von der Sie auch profitieren können.

Brauchen Sie schnelle und zuverlässige Programmier-Hilfe für Ihre Programmierungen oder MySQL Abfragen? Wir sind für Sie da – zögern Sie nicht mit uns per E-Mail oder telefonisch – 02161 / 177747 – Kontakt aufzunehmen. Schauen Sie sich unsere Leistungen an.

PHP Session geht im IFrame unter Internet Explorer verloren

Montag, 31. Januar 2011

Sicherlich haben Sie versucht über ein IFrame verschiedene Inhalte auf Ihrer Seite einzubinden. Diese Inhalte generieren so genannte PHP Sessions, um verschiedene Daten während des Aufenthaltes zu behalten, unter anderem Login Cookies. Jedoch funktioniert das tadeloss nur unter allen Browser außer Internet Explorer, egal ob Sie das Ziel über HTTP oder HTTPS einbinden. Insbesondere wenn die Domains des Ziels und die Hauptseite, die das IFrame enthält, unterschiedlich sind. Auch wenn Sie die Session über die session_id von der Oberseite zum IFrame übertragen, geht sie verloren.

Problematik

Die PHP Session wird, auch wenn ordnunngsgemäß erstellt, nach dem Aufruf verloren. Sie geht ja nicht einfach verloren, sondern der Explorer löscht diese oder richtiger gesagt, akzeptiert diese nicht aus Sicherheitsgründen. Unter Safari und Mozilla liegt das Problem nicht vor. Interessant ist, dass die Session-variable erstellt wird, sie bekommen keine Meldung, dass die Session nicht gestartet ist oder sonstiges, sondern der Wert ist einfach komplett leer. Wenn Sie den Inhalt außerhalb des IFrames aufrufen, so funktioniert die Session problemlos.

Hintergrund der Problematik

Aus Sicherheitsgründen lehnt Internet Explorer das Anlegen der Session Cookie ab, egal wie Sie die Session starten lassen (entweder mit session_start() oder die Session wird durch Konfiguration automatisch gestartet). Microsoft sagt, dass die obere Seite diese Session missbrauchen könnte und deswegen wird sie nicht erstellt.

Lösung

Um dieses Problem umzugehen, müssen Sie eine P3P PHP header-Anweisung implementieren, die in Worten sagt, dass die Tatsache, dass die Oberseite Zugriff bekommen hat, wird nicht missbraucht. Diese müssen Sie in die PHP Datei hineinprogrammieren, die im IFrame angezeigt wird:

<?php header('P3P: CP="CAO PSA OUR"'); ?>

Diese Zeile muss überall rein, wo Sie Ihre Session-Cookies erzeugen. Die P3P Headers sind eine Art Fine-Tuning der Datenschutzbestimmungen, die Sie lokal auf Ihrem Browser eingestellt haben und die informieren den Browser, wie er sich verhalten soll, wenn bestimmte Probleme wir das von beschriebene auftauchen.

Sie kommen selber nicht weiter?

Keine Sorge, wir sind für Sie da. Rufen Sie uns an oder schicken Sie uns eine Anfrage, wir helfen Ihnen weiter.

PHP Programmierung – Zahl formatieren mit PHP

Montag, 17. Mai 2010

Als Zusatz zu der von uns vorgestellten Javascript Funktion zur Formatierung von Zahlen, wollen wir heute die Programmierung einer Funktion zur Formatierung von Zahlen mit PHP näher erklären. Nach wie vor ist das Problem mit den auf das U.S. Zahlensystem formatierten Zahlen aktuell. PHP bietet eine sehr komfortable Funktion zur Formatierung von Zahlen mit tausender Gruppierung.  Vor allem können Sie Zahl auf die Deutsche Schreibweise umwandeln. Diese Funktion nennt sich number_format. Diese erwartet entweder zwei oder vier Paramater:

Die zu formatierende Zahl – so etwa wie 29.5
Anzahl von Nachkommastellen
Optional: Trennzeichen für die Nachkommastellen
Optional: Trennzeichen für die Tausenderstellen

Da man immer wieder die gleichen Parameter nimmt, wenn man die Zahlen auf die Deutsche Screibweise formatiert, so schreiben wir uns eine kleine und einfache Funktion, die number_format anwendet:

function ZahlFormatieren($dZahl, $nAnzahlNachkommastellen=2) {
     return number_format($dZahl, $nAnzahlNachkommastellen, ",", ".");
}

Die Funktion formatiert die Zahl 28,000.4 als 28.000,40 mit Zwei Kommastellen. Man kann gerne die Anzahl der Kommastellen über den Parameter von dem Standardwert von 2 auf eine andere Anzahl erweitern oder minimieren.

Einsatz

Wenn Sie beispielsweise ein Formular haben, das Zahlen in Textfelder automatisch ausfüllt, die auch korrekt dargestellt werden sollen, so können Sie die Funktion auf folgender Art und Weise in HTML einbetten:

<input type="text" name="MeineZahl" value="<?php echo ZahlFormatieren($dMeineZahl) ?>" />

PHP Programmierung – PHP Funktion zur Generierung von transparenten Spacer

Mittwoch, 05. Mai 2010

Wir hatten in unserem letzten Artikel darüber informiert, wie man mittels einer PHP Funktion die Generierung von <img /> Tags erleichtern kann. Diese Funktion spart Zeit, sichert eine einheitliche Schreibweise aller <img /> Tags und erlaubt Änderungen in der Schreibweise, sollte diese sich durch Richtlinien oder Suchmaschinenoptimierung ändern sollen. Heute werden wir präsentieren wir man mit Hilfe dieser Funktion die sehr oft benutzten Spacer (transparente 1×1 Pixel Bilder) generieren kann.

Die PHP Funktion zur Erstellung von Spacer wir ein Aufruf der Funktion CreateImage sein, dass bestimmte Parameter immer wieder nutzt. Anbei die Funktion:

function CreateSpacer($nWidth=1, $nHeight=1) {
    return CreateImage(IMAGES_PATH."trans.gif","","width: ".$nWidth."px; height: ".$nHeight."px; border: 0px","");
}

Was macht die Funktion?

Es wird die Funktion CreateImage aufgerufen, wobei der Pfad zu der 1×1 Pixel Grafik (trans.gif) vorgegeben ist und explizit keinen Rahmen angezeigt wird. Die Konstante IMAGES_PATH kann in einer Konfigurationsdatei als der Pfad zu dem Ordner definiert werden, wo sich Ihre Grafiken befinden. Die Funktion übernimmt die übergebenen Parameter Breite und Höhe, die die meistbenutzen Parameter bei der Erstellung von Spacer <img /> sind. Diese können auch nicht angegeben werden zwecks einer einfacheren Ausführung der Funktion, dann wird das Bild mit 1px Höhe und 1px Breite erstellt.

Beispiel der Nutzung

Normalerweise hätten Sie mit HTML eine solche Schreibweise zur Erstellung eines Spacers nutzen sollen:

<td><img src="<?php echo IMAGES_PATH;?>trans.gif" style="width: 200px; height: 20px; border: 0px;" alt="" title="" /></td>

Mit unserer Funktion geht das einfacher:

<td><img src="<?php echo CreateSpacer(200,20);?></td>

Somit vererbt die CreateSpacer Funktion die Funktion CreateImage auf eine einfache Art und Weise. Die Grundfunktion kümmert sich bei diesem Aufruf um den alternativen Text, korrekte Schreibweise des Tags usw.