Problem mit "Anführungszeichen"

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit "Anführungszeichen"

    hallo zusammen,

    wenn in mein gästebuch ein user einen eintrag mit "anführungszeichen" schreibt (speicherung auf textbasis), wird immer ein backslash eingebaut.

    das gästebuch hat mal jemand aus dem netz für mich erstellt und da ich keine bzw. kaum php erfahrung habe wäre es nett wenn ihr mir da weiterhelfen könnt und es vielleicht sogar gleich einbaut. brauche das nämlich dringend. gerne lese ich mir dann auch die erklärung dazu durch, um wenigstens ein bisschen was zu lernen!

    so sieht der code bisher aus:
    PHP-Code:
    <?php

    // Datendatei (Logfile)
    $logfile "gb.log";

    // Daten einlesen
    $olddata file($logfile);
    for(
    $i=0$i<count($olddata); $i++)
    {
        
    $data[$i] = explode("||"$olddata[$i]);
    }


    /********************************************************************************
     * Gästebuch Speicheraktion
     ********************************************************************************/
    if($_GET['action']=="sichern")
    {
        
    //Neue Daten formatieren
        
    $name str_replace("||""||"trim($_POST['gbname']));
        
    $email str_replace("||""||"trim($_POST['gbemail']));
        
    $homepage str_replace("||""||"trim($_POST['gbhomepage']));
        
    $icq str_replace("||""||"trim($_POST['icq']));
        
    $kommentar str_replace("||""||"trim($_POST['gbkommentar']));
        
    $kommentar str_replace("\r\n""<br>"trim($kommentar));
        
    $newdata $name.'||'.$email.'||'.$homepage.'||'.$kommentar.'||||'time() .'||'.$_SERVER['REMOTE_ADDR'].'||'.$icq.'||';
        
    $fp = @fopen($logfile"w");
        
    flock($fp2);
        
    fwrite($fp$newdata."\r\n");
        for(
    $i=0$i<count($olddata); $i++)
        {
            
    fwrite($fptrim($olddata[$i]) ."\r\n");
        }
        
    flock($fp3);
        
    fclose($fp);
    }





    // Daten einlesen
    $olddata file($logfile);
    for(
    $i=0$i<count($olddata); $i++)
    {
        
    $data[$i] = explode("||"$olddata[$i]);
    }


    /********************************************************************************
     * Gästebuch Formular
     ********************************************************************************/
    if($_GET['action']=="formular")
    {
        echo 
    "<center><b>Eintragen</b></center><br><br>";
        echo 
    "<form name=\"gbform\" action=\"".$_SERVER['PHP_SELF']."?page=guests&action=sichern\" method=\"post\">";
        echo 
    "<table border=\"0\" width=\"100%\">";
        echo 
    "  <tr>";
        echo 
    "    <td width=\"25%\">Name: </td>";
        echo 
    "    <td width=\"75%\"><input type=\"text\" name=\"gbname\" value=\"\" size=\"20\"></td>";
        echo 
    "  </tr>";
        echo 
    "  <tr>";
        echo 
    "    <td width=\"25%\">Email: </td>";
        echo 
    "    <td width=\"75%\"><input type=\"text\" name=\"gbemail\" value=\"\" size=\"20\"></td>";
        echo 
    "  </tr>";
        echo 
    "  <tr>";
        echo 
    "    <td width=\"25%\">Homepage: </td>";
        echo 
    "    <td width=\"75%\"><input type=\"text\" name=\"gbhomepage\" value=\"\" size=\"20\"></td>";
        echo 
    "  </tr>";
        echo 
    "  <tr>";
        echo 
    "    <td width=\"25%\">ICQ-Nr.:</td>";
        echo 
    "    <td width=\"75%\"><input type=\"text\" name=\"icq\" value=\"\" size=\"20\"></td>";
        echo 
    "  </tr>";
        echo 
    "  <tr>";
        echo 
    "    <td width=\"25%\" valign=\"top\">Kommentar:</td>";
        echo 
    "    <td width=\"75%\">
                      <textarea name=\"gbkommentar\" onFocus=\"storeCaret(this);\" onChange=\"storeCaret(this);\" onSelect=\"storeCaret(this);\" cols=\"35\" rows=\"7\"></textarea></td>"
    ;
        echo 
    "  </tr>";
        echo 
    "  <tr>";
        echo 
    "    <td width=\"25%\">";
        echo 
    " </td>";
        echo 
    "    <td width=\"75%\">";
        echo 
    "<input type=\"submit\" value=\"Absenden\" size=\"20\">";
        echo 
    "&nbsp;&nbsp;<input type=\"reset\" value=\"Löschen\" size=\"20\"></td>";
        echo 
    "  </tr>";
        echo 
    "</table>";
        echo 
    "</form>";
        echo 
    "<br><br><b>Hinweis:</b> Alle IP-Adressen werden mitgespeichert!";
    }



    /********************************************************************************
     * Gästebucheinträge anzeigen
     ********************************************************************************/
    if(!$_GET['action']){ $_GET['action'] = "anzeigen"; }
    if(
    $_GET['action']=="anzeigen" || $_GET['action']=="sichern")
    {
        if(!
    $_GET['startnr']) { $_GET['startnr'] = 0; } // Falls kein Startwert vorhanden ist
        
    $until 30// Endwert für die Ausgabe (Angezeigte Einträge pro Seite)

        
    echo "<img src=\"kategorie/guests.gif\" border=0><br>";
        echo 
    "<p align=\"center\"><a href=\"".$_SERVER['PHP_SELF']."?page=guests&action=formular\">Eintragen</a><hr>";

        for(
    $i=$_GET['startnr']*$until$i<$_GET['startnr']*$until+$until$i++)
        {
            if(
    trim($data[$i][0])!="")
            {
            
    $data[$i][0] = htmlspecialchars($data[$i][0]); // Name
            
    $data[$i][1] = htmlspecialchars($data[$i][1]); // Email
            
    $data[$i][2] = htmlspecialchars($data[$i][2]); // Homepage
            
    $data[$i][7] = htmlspecialchars($data[$i][7]); // icq
            // User-Kommentar
            
    $temp explode("<br>"$data[$i][3]);
            
    $data[$i][3] = "";
            for(
    $a=0$a<count($temp); $a++)
            {
                
    $data[$i][3] .= htmlspecialchars($temp[$a]);
                if(
    $i!=count($temp)-1)
                {
                    
    $data[$i][3] .= "<br>";
                }
            }
            
    $data[$i][3] = wordwrap($data[$i][3], 40"\r\n"1);
            
    // Admin-Kommentar
            
    $temp explode("<br>"$data[$i][4]);
            
    $data[$i][4] = "";
            for(
    $a=0$a<count($temp); $a++)
            {
                
    $data[$i][4] .= htmlspecialchars($temp[$a]);
                if(
    $i!=count($temp)-1)
                {
                    
    $data[$i][4] .= "<br>";
                }
            }
            
    $data[$i][5] = date("d.m.Y - H:i:s"$data[$i][5]); // Datum und Zeit

            
    echo "<b><i>";
            echo 
    $data[$i][0];
            if (
    $data[$i][1]) {echo " <a href=\"mailto:".$data[$i][1]."\"><img src=\"bilder/email.gif\" border=\"0\"></a> ";}
            if (
    $data[$i][2]) {echo " <a href=\"http://".$data[$i][2]."\" target=\"_blank\"><img src=\"bilder/hp.gif\" border=\"0\"></a> ";}
            if (
    $data[$i][7]) {echo "<a href=\"http://wwp.icq.com/scripts/search.dll?to=".$data[$i][7]."\"><img src=\"http://web.icq.com/whitepages/online?icq=".$data[$i][7]."&img=5\" border=\"0\"></a> ";}
            echo 
    "</i> schrieb am ".$data[$i][5]." Uhr:</b><br><br>";
            echo 
    $data[$i][3]."";
            echo 
    $data[$i][4]."<hr>";

            }

        }

        
    // Seitenlinks!

    echo "<center>";

        for(
    $i=0$i<count($olddata)/$until$i++)
        {
            if(
    $i==$_GET['startnr'])
            {
            echo 
    "<b>[". ($i+1) ."]</b> ";
            }
            else
            {
                echo 
    "<a href=\"".$_SERVER['PHP_SELF']."?page=guests&startnr=".$i."\">". ($i+1) ."</a> ";
            }
        }

    }


    ?>
    Zuletzt geändert von derFranke; 08.08.2005, 03:00.

  • #2
    Re: Problem mit &quot;Anführungszeichen&quot;

    wahrscheinlich sind magic_quotes aktiviert, dann werden die \ automatisch eingefügt um den Server zu schützen...

    PHP-Code:
        $kommentar str_replace("\r\n""<br>"stripslashes(trim($kommentar))); 
    das stripslashes ist neu

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      DANKE! jetzt klappts!

      mit dem sripslash müsste ich dann auch das backslash-problem beim ändern einer textdatei in den griff bekommen.

      echt super das man hier so spät noch hilfe bekommt! daumen hoch! ;-)

      Kommentar


      • #4
        Original geschrieben von derFranke
        echt super das man hier so spät noch hilfe bekommt! daumen hoch! ;-)
        wieso so spät? So früh
        ich geh gleich in's Bett, reiner Zufall das ich nochmal reingeguckt hab, hatte nicht erwartet noch was neues zu finden

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar

        Lädt...
        X