Holger: urlencode

Hallo!
Wenn ich Text, z.B. Gästebuch-Einträge, in einer txt-Datei speichern will, ist es dann sinnvoll/notwendig, diese zuerst mit "urlencode"  zu verarbeitet (damit Leerzeichen zu "+" werden usw...)?
Danke, Holger

  1. Halihallo

    Wenn ich Text, z.B. Gästebuch-Einträge, in einer txt-Datei speichern will, ist es dann sinnvoll/notwendig, diese zuerst mit "urlencode"  zu verarbeitet (damit Leerzeichen zu "+" werden usw...)?

    Notwendig nein, sinnvoll ja.
    Ein kleines Beispiel:
    Gästebuch-Einträge kann man ja meistens durch ein <textarea> - Feld einfügen. Da kann man auch mal die Return-Taste betätigen.
    Wenn du die einzelnen Records in deinem Gästebuch durch ein "\n" trennst (Zeilenvorschub), dann ist es durchaus sinnvoll, die Einträge durch urlencode zu kodieren, da dann die Returns des Postings durch %13 (o. ä.) ersetzt werden und dir nicht das Gästebuch durcheinander bringen.
    Es ist ganz einfach _sicherer_, wenn du die Einträge codierst.

    Viele Grüsse

    Philipp

  2. Nochmal hallo!
    Hätte da noch mal ein paar Fragen zu (PHP-)Gästebüchern:

    • Die txt-File, in die das GB schreibt muß doch auf chmod 777 gestellt werden (?), kann da nun jeder darauf schreiben oder sie Löschen (z.B. mit einem eigenen Script)?

    • Wie kann ich im Gästebuch EINEN Zeilenumbruch zulassen, nicht aber mehrere?
      Mit $text = str_replace("\n", "<br>", $text); kann man halt auch viele Zeilenumbrüche machen, daß möchte ich vermeiden.

    • Wie kann ich die Tabellenhintergrundfarbe der Einträge ändern, und zwar so, daß jeder zweite Eintrag z.B. eine dunklere Hintergrundfarbe hat? Ich denke, daß könnte man mit der Nummerierung der Einträge machen: gerade Zahl: hell, ungerade zahl: dunkel. Aber wie kann das Scrip erkennen, ob die Nummer gerade oder ungerade ist (ob eine ganze Zahl beim teilen durch 2 heraus kommt?!?)?

    Nochmal danke, Holger

    1. Halihallo

      Hätte da noch mal ein paar Fragen zu (PHP-)Gästebüchern:

      nur zu :-)

      • Die txt-File, in die das GB schreibt muß doch auf chmod 777 gestellt werden (?), kann da nun jeder darauf schreiben oder sie Löschen (z.B. mit einem eigenen Script)?

      Nö. chmod 777 heisst nur, dass jeder _der Zugriff auf das Filesystem des Servers_ (und das haben deine Besucher nicht!) hat, darin was ändern kann. Eigentlich musst du nur dafür sorgen, dass dein Script die nötigen Berechtigung hat, um auf die Datei zuzugreifen. Deine Besucher haben ja nur ein *Interface* um auf das Gästebuch zuzugreifen, nämlich dein Script.

      • Wie kann ich im Gästebuch EINEN Zeilenumbruch zulassen, nicht aber mehrere?
        Mit $text = str_replace("\n", "<br>", $text); kann man halt auch viele Zeilenumbrüche machen, daß möchte ich vermeiden.

      Nun, dann nur noch die Zeile...

      $text = str_replace("\n\n", "\n", $text);

      ...vorne anhängen, dann werden zuerst alle \n\n durch einfache ersetzt. Diesen Schritt solange wiederholen, bis $text nicht mehr ändert, dann hast du alle doppel-\n durch einziges ersetzt.

      Was soll das bringen?

      • Wie kann ich die Tabellenhintergrundfarbe der Einträge ändern, und zwar so, daß jeder zweite Eintrag z.B. eine dunklere Hintergrundfarbe hat? Ich denke, daß könnte man mit der Nummerierung der Einträge machen: gerade Zahl: hell, ungerade zahl: dunkel. Aber wie kann das Scrip erkennen, ob die Nummer gerade oder ungerade ist (ob eine ganze Zahl beim teilen durch 2 heraus kommt?!?)?

      Jep. Funktioniert so, oder du kannst eine "Hintergrundfarben-Variable" deklarieren, die immer zwischen 0 und 1 wechselt (mit jedem Eintrag).

      also etwa so:

      $background = 0;
      foreach (Einträge) do
         if ($background == 1) => $background = 0; else $background = 1;
         Eintrag_ausgeben( Hintergrund => $background );
      end;

      Viele Grüsse

      Philipp

    2. Moin,

      • Die txt-File, in die das GB schreibt muß doch auf chmod 777 gestellt werden (?), kann da nun jeder darauf schreiben oder sie Löschen (z.B. mit einem eigenen Script)?

      Muss nicht. Idealerweise sollte die Datei dem User gehören der dann auch die Skripts ausführt und auf 600 gesetz werden. Je nach Hoster ist das aber evt. nicht ausreichend weil dann alle Skripte mit der selben Userid laufen, so dass andere User mit eigenen Skripten die Datei lesen können. Für das Verbieten des Löschens sind übrigens die Dateirechte des übergeordneten Verzeichnisses ausschlaggebend. Mehr Info findest du im Feature-Artikle über Linux-Server oder von deinem Hoster.

      • Wie kann ich im Gästebuch EINEN Zeilenumbruch zulassen, nicht aber mehrere?
        Mit $text = str_replace("\n", "<br>", $text); kann man halt auch viele Zeilenumbrüche machen, daß möchte ich vermeiden.

      Du nimmst einen regulären Ausdruck der mehrere Zeilenumbrüche durch einen einzigen ersetzt. Ungefähr so: $text = preg_replace("!\n{2,}!", "\n", $text);

      • Wie kann ich die Tabellenhintergrundfarbe der Einträge ändern, und zwar so, daß jeder zweite Eintrag z.B. eine dunklere Hintergrundfarbe hat? Ich denke, daß könnte man mit der Nummerierung der Einträge machen: gerade Zahl: hell, ungerade zahl: dunkel. Aber wie kann das Scrip erkennen, ob die Nummer gerade oder ungerade ist (ob eine ganze Zahl beim teilen durch 2 heraus kommt?!?)?

      Genau, du zählst einfach durch (du benutzt doch sicherlich eh eine Schleife?) und benutzt dann etwas wie  if($i % 2 == 0) {/*eine Hintergrundfarbe*/} else {/*die andere Hintergrundfarbe*/}. Das % ist der Modulo-Operator, das gibt den Rest bei der Division, in diesem Fall bei der Division durch 2. Wenn der 0 ist, dann war die Zahl grade.

      --
      Henryk Plötz
      Grüße aus Berlin