kostenloser Webspace werbefrei: lima-city


html in Gästebuch verbieten, aber wie?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    no-smoke

    Kostenloser Webspace von no-smoke

    no-smoke hat kostenlosen Webspace.

    Wie kann ich es verbieten lassen das html in mein Gästebuch eingetragen wird?
    Ml-records meinte den Befeh: htmlentities(\"$object\" , ENT_QUOTES);
    Aber ich weiß nicht wohin.
    Gibt es noch andere Möglichkeiten?

    P.S. Ich weiß das es diesen Theard schon gibt aber ich finde ihn nicht mit der Suchfunktion.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du musst die Funktion natürlich auf den Text,Titel, Namen usw. anwenden. Halt überall da, wo der User eine Eingabe machen kann, in der HTML verboten sein soll.
    Schau dir dazu folgende Funktionen an:
    Wie schon gesagt htmlentities():
    http://de.php.net/manual/de/function.htmlentities.php
    Und auch ganz praktisch mysql_real_escape_string():
    http://de2.php.net/manual/de/function.mysql-real-escape-string.php
  4. Autor dieses Themas

    no-smoke

    Kostenloser Webspace von no-smoke

    no-smoke hat kostenlosen Webspace.

    Da steht jetzt so ein Script auf der Seite:
    <?php
    $orig = \"I\'ll \\\"walk\\\" the <b>dog</b> now\";
    
    $a = htmlentities($orig);
    
    $b = html_entity_decode($a);
    
    echo $a; // I\'ll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now
    
    echo $b; // I\'ll \"walk\" the <b>dog</b> now
    
    
    // Usern mit einer PHP-Version vor 4.3.0 hilft folgender Workaround:
    function unhtmlentities($string)
    {
        // replace numeric entities
        $string = preg_replace(\'~&#x([0-9a-f]+);~ei\', \'chr(hexdec(\"\\\\1\"))\', $string);
        $string = preg_replace(\'~&#([0-9]+);~e\', \'chr(\"\\\\1\")\', $string);
        // replace literal entities
        $trans_tbl = get_html_translation_table(HTML_ENTITIES);
        $trans_tbl = array_flip($trans_tbl);
        return strtr($string, $trans_tbl);
    }
    
    $c = unhtmlentities($a);
    
    echo $c; // I\'ll \"walk\" the <b>dog</b> now
    
    ?>


    Das möchte ichh in die Datei eintragen.php packen, aber wohin?
    <?php
    //die Konfigurationsdateien lesen
    error_reporting(E_ALL);
    include \"inc/config.php\";
    
    //Datebnbanklogin
    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
    
    //Parameter holen
    $benutzername = $_POST[\'benutzername\'];
    $mail = $_POST[\'mail\'];
    $homepage = $_POST[\'homepage\'];
    $eintrag = $_POST[\'eintrag\'];
    $IP = getenv(\"REMOTE_ADDR\");
    
    //Parameter prüfen
    if($benutzername != \"\" && $eintrag != \"\") {
    //Eintrag escapen
    $eintrag = str_replace(\"\\n\", \"<br />\", $eintrag);
    
    $eintragen = \"INSERT INTO guestbook
    (IP, Datum, Benutzername, Mail, Homepage, Eintrag)
    VALUES(
    \'$IP\',
    NOW(),
    \'$benutzername\',
    \'$mail\',
    \'$homepage\',
    \'$eintrag\'
    )
    \";
    
    $result = mysql_query($eintragen) OR die(mysql_error());
    
    if($result) {
    header(\"location: http://www.ruanda-projekt.de/?s=auslesen\");
    }
    else {
    echo \"Eintrag konnte nicht gespeichert werden\";
    }
    }
    else {
    if($eintrag == \"\") {
    echo \"Du musst einen Gästebuch eintrag schreiben.\";
    }
    if($benutzername == \"\") {
    echo \"Du musst einen Benutzernamen eingeben\";
    }
    }
    ?>


    Beitrag geändert: 24.12.2007 8:14:21 von no-smoke
  5. Ich fasse es nicht... -.-
    Ich werde dir hier _keinen_ Code posten. Du musst schon ein bisschen selbst denken. Kann es sein, dass du noch gar nicht richtig PHP kannst?

    Also du musst vor dem Speichern in der Datenbank mysql_real_escape_string() auf $benutzername, $mail etc. anwenden, um SQL-Injections zu verhindern.
    http://de2.php.net/manual/de/function.mysql-real-escape-string.php

    Erst bei der Ausgabe musst du dann htmlentities() anwenden.
  6. Autor dieses Themas

    no-smoke

    Kostenloser Webspace von no-smoke

    no-smoke hat kostenlosen Webspace.


    Ich fasse es nicht... -.-
    Ich werde dir hier _keinen_ Code posten. Du musst schon ein bisschen selbst denken. Kann es sein, dass du noch gar nicht richtig PHP kannst?

    Also du musst vor dem Speichern in der Datenbank mysql_real_escape_string() auf $benutzername, $mail etc. anwenden, um SQL-Injections zu verhindern.
    http://de2.php.net/manual/de/function.mysql-real-escape-string.php

    Erst bei der Ausgabe musst du dann htmlentities() anwenden.

    Ich kann schon einigermaßen php.
    Aber so etwas habe ich noch nie gemacht.
  7. kurz gesagt:
    <?php
    $guter_text = htmlentities($boeser_text);
    ?>


    $boeser_text ist dabei der vom User eingegeben, den du dann überprüfen musst.
    IMHO dürfte das reichen.


    Beitrag geändert: 26.12.2007 1:05:04 von bettcrew
  8. Autor dieses Themas

    no-smoke

    Kostenloser Webspace von no-smoke

    no-smoke hat kostenlosen Webspace.


    kurz gesagt:
    <?php
    $guter_text = htmlentities($boeser_text);
    ?>


    $boeser_text ist dabei der vom User eingegeben, den du dann überprüfen musst.
    IMHO dürfte das reichen.


    Beitrag geändert: 26.12.2007 1:05:04 von bettcrew


    Und was ist guter_text?
  9. p******b

    xD
    Das meinst du doch jetzt nicht ernst...
    die funktion nehmt den text den der user eingegeben hat und checkt ihn mit der funktion.
    Danach speichert er den text dan in guter_text das ist eben die variable! Diese gebst du dann in dein mysql code...
    Naja das muss man schon wissen wenn man php lernt;)
    Ich glaube du solltest mit etwas leichterem anfangen. Ein gästebuch von irgentwo zu kopieren hilft reichlich wenig wenn man anfänger ist.
  10. familie-schiffer

    Kostenloser Webspace von familie-schiffer, auf Homepage erstellen warten

    familie-schiffer hat kostenlosen Webspace.

    <?php
    $guter_text = htmlspecialchars($boeser_text);
    
    ?>

    $boeser_text

    ist die variable mit dem text vom user.

    die funktion entfernt alle html-spezifische zeichen und ersetzt sie durch
    &qout;
    usw.

    das ist wohl die professionellste funktion die php zu bieten hat.

    mfg




    Beitrag geändert: 27.12.2007 13:05:11 von familie-schiffer


    Beitrag geändert: 27.12.2007 13:06:42 von familie-schiffer
  11. also bei mir geht nix von den vorschlägen
  12. p******b

    hast du ihn auc richtig eingesetzt oder einfach nur in en datei reingeschrieben und gestartet:biggrin:
    Dann kann auch nicht passiert sein xD!

    <?php
    $boeser_text=\"BLABLA <html><br><br> BLABLABLA\"; 
    $guter_text = htmlspecialchars($boeser_text);
    echo $guter_text;
    ?>


    Gehts dann xD
  13. Autor dieses Themas

    no-smoke

    Kostenloser Webspace von no-smoke

    no-smoke hat kostenlosen Webspace.


    xD
    Das meinst du doch jetzt nicht ernst...
    die funktion nehmt den text den der user eingegeben hat und checkt ihn mit der funktion.
    Danach speichert er den text dan in guter_text das ist eben die variable! Diese gebst du dann in dein mysql code...
    Naja das muss man schon wissen wenn man php lernt;)
    Ich glaube du solltest mit etwas leichterem anfangen. Ein gästebuch von irgentwo zu kopieren hilft reichlich wenig wenn man anfänger ist.


    Vielen Dank für deine Hilfe aber das Gästebuch habe ich wirklich selbst geschrieben.

    Und jetzt ahbe cih es auch verstanden.
    Ich habe die einzelnen Mysql angaben nicht mit dem Formular verbinden können bis mir dann doch ncoh ein Geistesblitz kam.

    Das Ergebnis könnt ihr euch auf http://www.ruanda-projekt.de angucken.


    Beitrag geändert: 28.12.2007 10:19:42 von no-smoke
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!