tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
290
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    matzseesi matzseesi ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    205
    Folgendes schräges Problem

    Ich trage das ganze mit Hilfe meiner checksql Funktion in die MySQL Datenbank ein:

    [PHP]
    function checksql($char)
    {
    $char=mysql_escape_string($char);
    $char=addslashes($char);
    return $char;
    }

    und gebe es dann formatiert wieder aus. Hab dafür auch eine Funktion nämlich:

    PHP-Code:
        function replacestandartstring($char)
        {
        
    $char=nl2br($char);
        
    $array_1 = array("ä","ü","ö","ß","®");
        
    $array_2 = array("ä","ü","ö","ß","®");
        for(
    $x=0;$x<5;$x++)
        {
          
    $char str_replace($array_1[$x],$array_2[$x],$char);
        }
        return 
    $char;
        } 
    Sodala jetzt sieht das ganze aber nicht so aus wie ich es will sondern so

    Code :
    1
    
    blablabla\r\nblablabla\r\nblablabla


    dh anstatt der<br /> steht \r\n zeichen aber warum
    normalerweisse sollte er dies doch verhindern! in die Datenbank wird es richtig reingespeicher dh wenn ich mir den String anschaue dann sind die Enter korrekt gesetzt

    Nur wenn ich dies dann auslese und mit nl2br wandle dann macht er mir nur \r\n

    auch mit str_replace macht er nichts

    PHP-Code:
    $char str_replace("\r\n""<br>"$char); 
    Schreibt immer noch ganz normal die \r\n raus! diese Beispiel hab ich aus dem Forum wurde mal gepostet habs auch so probiert

    $char = str_replace("[\r\n]{1,*}", "<br>", $char);

    geht auch nicht

    Was mache ich falsch

    Grüße Posseidon
    Geändert von matzseesi (16.04.04 um 16:24 Uhr)
     

  2. #2
    Avatar von split
    split split ist offline Mitglied Platin
    Registriert seit
    Jan 2004
    Ort
    München
    Beiträge
    574
    Versuch doch einfach, die Daten einmal folgendermaßen in die DB einzufügen:
    PHP-Code:
    function sql_check($str) {
        
    $str htmlentities($str);
        
    $str addslashes($str);
        return 
    $str;
    }
    mysql_query("[...]".sql_check($str)."[...]"); 
    Danach gibst du den Text einfach per nl2br() aus.
     

  3. #3
    matzseesi matzseesi ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    205
    des mach ich ja!

    Es steht ja oben die Daten werden mit der checksql Funktion in die DB geschrieben und dann mit der zweiten Funktion ausgegeben!

    Allerdings macht mir die nl2br Funktion nicht das was ich will dh sie macht keine <br> aus den \r\n

    Grüße Posseidon
     

  4. #4
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Nur das split Deine checksql-Funktion ein wenig umgschrieben hat ....

    Nitro
     

  5. #5
    Avatar von split
    split split ist offline Mitglied Platin
    Registriert seit
    Jan 2004
    Ort
    München
    Beiträge
    574
    Tja, du kannst es auch mit deiner Funktion machen. Ich finde es nur umständlich, wenn du einen Teil der Stringbearbeitung vor und einen Teil der Stringbearbeitung nach dem Einfügen machst (ausgenommen nl2br).
    Wenn du es trotzdem mit deiner Funktion machen willst, lass doch mal mysql_escape_string() weg.

    PS: str_replace kannst du als Parameter auch Arrays übergeben, deine for()-Schleife ist also umsonst.
     

  6. #6
    matzseesi matzseesi ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    205
    Des mysql_escape_string sollte man verwenden wenn werte aus der DB in die Datenbank eingetragen werden! zumindest hat das einmal wer im Board hier geschrieben

    Aus angst vor MYSQL Injections mach ich das auch oder?

    Grüße Posseidon
     

  7. #7
    Avatar von split
    split split ist offline Mitglied Platin
    Registriert seit
    Jan 2004
    Ort
    München
    Beiträge
    574
    Du brauchst mysql_escape_string nicht, weil du ja mit addslashes() arbeitest.
     

  8. #8
    matzseesi matzseesi ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    205
    so funktionierts

    Danke
     

Ähnliche Themen

  1. Quote-Funktion mit Zeilenumbrüchen
    Von Gangsterneo im Forum PHP
    Antworten: 10
    Letzter Beitrag: 14.04.09, 23:28
  2. Selectbox mit Zeilenumbrüchen
    Von michel_tr im Forum HTML & XHTML
    Antworten: 5
    Letzter Beitrag: 12.04.05, 17:14
  3. Antworten: 6
    Letzter Beitrag: 14.06.04, 18:27
  4. Antworten: 6
    Letzter Beitrag: 10.05.03, 22:50
  5. Problem mit Zeilenumbrüchen
    Von Marcus Roffmann im Forum PHP
    Antworten: 5
    Letzter Beitrag: 24.05.02, 12:57