Fragen zu/Problem mit PHP

  • Hi TT-Programmierer-Gemeinde,
    Ich hab eine Problem mit meinem in PHP-programmierten Gästebuch. Wenn ich bei mir im Gästebuch bei einem Eintrag ein ' eingebe, kommt eine Fehlermeldung:
    Fehler 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'n Test.')' at line 1


    Der Text wird dann nicht eingetragen. Ich muss das ' dann wegmachen und dann gehts. Wo liegt da das Problem und wie kann ich es lösen? Außerdem wird, wenn man mit Enter eine nächste Zeile gemacht hat dies nicht im Gästebuch angezeigt, sonder der Text steh in einem zusammenhängenden Text.


    Ist es außerdem möglich, dass man bestimmte Wörter sperrt? Z.B. Arsch oder so. Also da sollte dann ***** kommen. Geht das?



    Gruß,
    datmoe

    datmoe

  • Was verwendest du denn für ein Guestbook?


    also
    dein SQL error kommt weil ein ' deinen SQL insert befehl abschliesst
    da steht dann im befehl
    insert 'dein text mit ' und das stört ihn' INTO blabla


    -> ein ' zuviel und der befehl ist kaputt
    wie du das lösen kannst weiß ich nicht weil ich selber noch kein guestbook eingebunden habe. Ein fertiges dürfte die probs eigentlich nicht machen. Wenn dus selber geschrieben hast das guestbook dann kannst du es es unterbinden indem du den text erst speicherst und prüfst.


    Selbiges Problem mit ENTER - schreib mal ein enter in ne sms - geht auch nicht ;) ... in nem DB feld kannst kein ENTER in den sinn speichern sondern musst auch nen platzhalter wie zB \n machen den du dann wieder zurückwandelst bei der ausgabe.


    Und Wörter prüfen geht mit PHP ebenso NUR zwischenspeichern - wenn du direkt in der eingabe meinst musst javascript nehmen und ist irrsinnig aufwendig ;) weil du nach jedem getippten zeichen alles prüfen musst.
    Ansonsten ist es einfacher:
    mit nem substring dein spezielles wort suchen und durch nen anderen string wie eben deine * ersetzen.
    Und das ganze reicht wenn du es in der Ausgabe machst - wies gespeichert ist ist ja egal wenn mans nicht ausgibt -> lesen kann.


    mfg
    Uurtyp

  • so


    $abfrage = "INSERT INTO db (spalte1,spalte2) VALUES( '$wert1','$wert2')";
    $eintrag=mysql_query($abfrage,$server);




    sollte kein Fehler kommen.
    Dann überprüfst du noch mit if sätzen, ob es gegklappt hat.
    Das mit der Zensur kannst du mit str_replace machen.
    Du lädst alle Wörter aus der Blacklist, die in einer Datenbank, oder ner Datei liegt und scannst den text mit str_replace danach.
    zum Zeilenumsprung fällt mir momentan auch nur ein, dass du ein Feld machen könntest, bei dem auf Klick ein Javascript geladen wird, das hinter die Zeile \n schreibt.
    Aber mit divs gehts bestimmt auch


    Bye Ls4

    Wär Rächtsräibphähler phindet darf sich phreuen

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!