tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
344
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Wipeout
    Wipeout Wipeout ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Gladbeck
    Beiträge
    183
    Hallo Community,

    irgendwie verstehe ich grade die Welt nicht mehr

    Ich habe folgenden Code

    PHP-Code:
    <?php
    /*Fehler Abfrage anschalten*/
    ini_set("display_errors"0);
    error_reporting(E_ALL);
    /*Datenbankverbindung herstellen*/
    $verbindung=dbzugang($host,$uname,$pass);
    /*Tabellenname aus Config.php auslesen und SQL Statement für dieses Script*/
    $seitenname=$titlenews;
    $table=$news;
    $sql="SELECT * FROM " $table ." ORDER BY news_id DESC";
    /*Daten auslesen aus der Datenbank mit SQL Statement*/
    $sqlanfrage=dbauslesen($verbindung,$table,$db,$sql);
    /*Wen keine Einträge vorhanden sind fehler ausgeben*/
    if (mysql_num_rows($sqlanfrage)== 0)
        {
            echo
    '<div class="fehler"><h2 class="fehler">Es sind noch keine Einträge vorhanden</h2></div>';
            exit;
        }
        else
            {
            while(
    $daten=mysql_fetch_array($sqlanfrage))
            {
                   
    /*Datenbank Daten variablen zu Ordnen*/
                    
    $datum=$daten['news_datum'];
                    
    $day=mktime(substr($datum,11,12),substr($datum,14,15),substr($datum,17,18),substr($datum,5,6),substr($datum,8,9),substr($datum,0,4));
                    
    $name=$daten['news_autor'];
                    
    $text=$daten['news_text'];
                    
    $text=nl2br($text);
                    
    $text=mysql_real_escape_string($text);
                    
    $text=utf8_encode($text);
                    
    $text=Smily($text);
                    
    $text=BBCode($text);
                    
    $text=badwords($text,$badlist);
                    
    $i++;
                    
    ?>
                <? /*Ausgabe der Variablen*/ ?>
           <div class='ausgabe'>
                     <div class='ausgabeueberschrift'>
                            &nbsp;<b><? echo $name?></b> schrieb am  <b><? echo date('d.m.Y',$day); ?></b> folgendes :
                     </div>
                     <div class='ausgabekomplett'>
                            <? echo $text?>
                    </div>
            </div>
    <?
            
    }
        }
    mysql_close($verbindung);
    ?>
    In der Ausgabe werden aber trotzdem \r\n angezeigt.
    Nachzusehen ist das hier

    Die eingabe selber wird momentan noch per PHPMyAdmin vorgenommen, da ich noch nicht dazu gekommen bin diese zu proggen

    Meine Frage besteht jetzt warum das so ist ****

    Hat jemand ne Idee ****?
     
    Wir hoffen immer auf den nächsten Tag, wahrscheinlich erhofft sich der nächste Tag einiges von uns. - Ernst R. Hauschka (dt. Essayist)

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Zeig uns mal ein var_dump($daten['news_text']); um zu zeigen was wirklich drin steht
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Avatar von Wipeout
    Wipeout Wipeout ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Gladbeck
    Beiträge
    183
    Hab var_dump($daten['news_text']); zum script hinzugefügt und hoch geladen
    Kannst Du nun unter obigen Link anschauen
     
    Wir hoffen immer auf den nächsten Tag, wahrscheinlich erhofft sich der nächste Tag einiges von uns. - Ernst R. Hauschka (dt. Essayist)

  4. #4
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Hallo Wipeout,

    das Problem ist, dass die \r\n selbst als "normale Buchstaben" (statt als Steuerzeichen) im Text integriert sind.

    Denn beim Quelltext zeigt mir Google Chrome diese Zeichen auch an, statt wirkliche Leerzeilen zu erzeugen.

    Beim var_dump stecken anscheinend die Steuerzeichen noch drinne.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  5. #5
    Avatar von Wipeout
    Wipeout Wipeout ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Gladbeck
    Beiträge
    183
    Und wie kriege ich die raus ****?
     
    Wir hoffen immer auf den nächsten Tag, wahrscheinlich erhofft sich der nächste Tag einiges von uns. - Ernst R. Hauschka (dt. Essayist)

  6. #6
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Nope, das Problem ist mysql_real_escape_string().
    Das braucht man, wenn man etwas in die DB schreiben will, nicht beim auslesen.
    Im Source auf deinem Link, sieht man dass \n\r nicht im String drin sind
    Code :
    1
    2
    3
    4
    5
    6
    
    string(32) "Smily Test
     
    :-)
    :-(
    ;-)
    :-P"

    Wenn ich mal mit diesem String teste, sieht man es sehr schnell das Problem
    PHP-Code:
    $text = <<<TXT
    Smily Test

    :-)
    :-(
    ;-)
    :-P
    TXT;


    var_dump('original:'$text);
    $text=nl2br($text);
    var_dump('nach nl2br():'$text);

    $text=mysql_real_escape_string($text);
    var_dump('nach mysql_real_escape_string():'$text);

    $text=utf8_encode($text);
    var_dump('nach utf8_encode():'$text); 
    Ergibt das folgende Resultat
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    string(8) "original:"
    string(32) "Smily Test
     
    :-)
    :-(
    ;-)
    :-P"
    string(12) "nach nl2br():"
    string(62) "Smily Test<br />
    <br />
    :-)<br />
    :-(<br />
    ;-)<br />
    :-P"
    string(31) "nach mysql_real_escape_string():"
    string(72) "Smily Test<br />\r\n<br />\r\n:-)<br />\r\n:-(<br />\r\n;-)<br />\r\n:-P"
    string(18) "nach utf8_encode():"
    string(72) "Smily Test<br />\r\n<br />\r\n:-)<br />\r\n:-(<br />\r\n;-)<br />\r\n:-P"

    Also, weg mit mysql_real_escape_string();
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  7. #7
    Avatar von Wipeout
    Wipeout Wipeout ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Gladbeck
    Beiträge
    183
    Oh dann habe ich das mit dem mysql_real_escape_string(); falsch verstanden dachte immer das wäre für die ausgabe
     
    Wir hoffen immer auf den nächsten Tag, wahrscheinlich erhofft sich der nächste Tag einiges von uns. - Ernst R. Hauschka (dt. Essayist)

  8. #8
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Man benutzt diese Funktion, damit nicht gefährliche Befehle von außerhalb in das MySQL-Query eingeschleust werden können ("SQL Injection").
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  9. #9
    Avatar von Wipeout
    Wipeout Wipeout ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Gladbeck
    Beiträge
    183
    Jo danke war ein gedankenfehler meinerseits
    Das kommt davon wen man sich nur alle paar Wochen mit sowas mal beschäftigt wen man die Zeit hat

    Auf jedenfall danke an alle
     
    Wir hoffen immer auf den nächsten Tag, wahrscheinlich erhofft sich der nächste Tag einiges von uns. - Ernst R. Hauschka (dt. Essayist)

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 27.03.08, 01:04
  2. nl2br
    Von Orbit im Forum PHP
    Antworten: 4
    Letzter Beitrag: 23.09.07, 14:08
  3. nl2br() - IE und FF
    Von crashx im Forum PHP
    Antworten: 9
    Letzter Beitrag: 07.05.07, 21:58
  4. nl2br(); für <br>
    Von bspainkf36 im Forum PHP
    Antworten: 13
    Letzter Beitrag: 09.09.05, 09:17
  5. nl2br - was ist los?
    Von danube im Forum PHP
    Antworten: 9
    Letzter Beitrag: 02.07.02, 13:21