Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Gästebuch

  1. #1
    Registrierter Benutzer
    Registriert seit
    29.06.2007
    Beiträge
    7

    Question Gästebuch

    Ich habe da ein kleines Gästebuch gecodet und jetzt möchte ich gerne, dass man Smileys schreiben kann, so weit so gut, aber jetzt kommt das Problem, es fügt zwar die Smileys ein, aber der Abschicken-Button funktioniert nicht mehr.
    Hier der ganze Code:
    Es gibt eine Datei daten.dat
    eintragen.php:
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
      "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    
    <title></title>
    
    <style type="text/css">
    body {
    	background-color: #ABF07D;
    }
    #Layer1 {
    	position:absolute;
    	left:189px;
    	top:118px;
    	width:131px;
    	height:160px;
    	z-index:1;
    }
    </style>
    
    <script type="text/javascript">
    var n = 1;
    function add(code) {
             document.guestbook.eintrag.value += " " + code ;
    }
    </script>
    
    </head>
    <body>
    
        <p>Name: <br />                
          <input name="name" type="text" size="38">
          <br>
          E-Mail: <br />
          <input name="email" type="text" size="38">
    
    
    <form action="mail.php" method="post" name="guestbook">
          <textarea name="eintrag" cols="50" rows="10"></textarea>
    </form>
    
    <a href="#" onclick="add(' :)');"><img src="smileys/lach.gif" border="0"></a>
    
    <input type="submit" name="Button" value="Absenden">
    </body>
    </html>
    gb.php:
    Code:
    <?php
    
    $daten=$_POST[eintrag]."<br>von <a href=mailto:".$_POST[email].">".$_POST[name]."</a><br><br>";
    
    $datenbank = "daten.dat";
    
    $datei = fopen($datenbank,"a");
    
    fwrite($datei, $daten);
    
    ?><style type="text/css">
    <!--
    a:link {
    	color: #000000;
    }
    a:visited {
    	color: #000000;
    }
    a:hover {
    	color: #000000;
    }
    a:active {
    	color: #000000;
    }
    -->
    </style>
    
    <div align="center">
      <p>Eintrag erfolgreich.  </p>
      <p>  <a href="guestbook.php">Zurück zum Gästebuch</a></p>
    </div>
    guestbook.php:
    Code:
    <style type="text/css">
    <!--
    a:link {
    	color: #000000;
    }
    a:visited {
    	color: #000000;
    }
    a:hover {
    	color: #000000;
    }
    a:active {
    	color: #000000;
    }
    -->
    </style><center>
      <h2 align="center"><u>Gästebuch</u></h2>
    
      <div align="center">
        <p><a href="eintragen.htm">Ins Gästebuch eintragen</a></p>
        <p>&</p>
      </div>
    </center>
    
    <div align="center">
      <?php
    
    $datenbank = "daten.dat"; $datei = fopen($datenbank,"r");
    
    fpassthru($datei);
    
    ?>
    </div>
    In einer Datei habe ich etwas falsch gemacht, nur in welcher?
    Hoffe ihr konnt mir helfen!
    mfg El_Tomato

  2. #2
    Registrierter Benutzer
    Registriert seit
    02.09.2004
    Ort
    Mannheim
    Beiträge
    102
    Muß die <input>-Zeile nicht innerhalb der <form>...</form> Tags stehen?

    <form action="mail.php" method="post" name="guestbook">
    <textarea name="eintrag" cols="50" rows="10"></textarea>
    <input type="submit" name="Button" value="Absenden">
    </form>

    <a href="#" onclick="add(' ');"><img src="smileys/lach.gif" border="0"></a>
    Greetz
    Thomas
    - Jabber-IM: tschloss-at-gmail.com -

  3. #3
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Yep, das Form-Element muss all zugehörigen Input-Elemente umschließen. Dann man kann auch mehr als ein Form-Element auf einer Seite haben und der Browser muss dann wissen welche Daten es an den Server senden muss.

    Außerdem: Ich hoffe die Scripte gehen so nicht online. Denn es findet überhaupt keine Eingabeüberprüfung statt. Ein klassisches Beispiel für Cross-Site-Scripting. Außerdem wirst Du massig Probleme bekommen mit Spam.
    Homepage: www.pingu.info

  4. #4
    Registrierter Benutzer
    Registriert seit
    29.06.2007
    Beiträge
    7
    Wieso? Dann mach maln paar Verbesserungsvorschläge? ^^
    Naja aber mit den Smileys klappt immer noch nicht.
    Ich klicke und in dem Eintrag komm z.B. :lach: und im fertigen Eintrag steht noch immer :lach: aber ich will das dort der Smiley ist. Wie geht das dann?
    Hier sind schonmal alle codes von den Dateien:
    guestbook.php:
    Code:
    <style type="text/css">
    <!--
    a:link {
    	color: #000000;
    }
    a:visited {
    	color: #000000;
    }
    a:hover {
    	color: #000000;
    }
    a:active {
    	color: #000000;
    }
    -->
    </style><center> 
      <h2 align="center"><u>Gästebuch</u></h2>
    
      <div align="center">
        <p><a href="eintragen.htm">Ins Gästebuch eintragen</a></p>
        <p>&nbsp;</p>
      </div>
    </center>
    
    <div align="center">
     
      <?php 
    
    $datenbank = "daten.dat"; $datei = fopen($datenbank,"r");
    
    fpassthru($datei);
    
    ?>
    </div>
    eintragen.htm:
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
      "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <title></title>
    
    <style type="text/css">
    body {
    	background-color: #FFFFFF;
    }
    #Layer1 {
    	position:absolute;
    	left:189px;
    	top:118px;
    	width:131px;
    	height:160px;
    	z-index:1;
    }
    </style>
    
    <script type="text/javascript">
    var n = 1;
    function add(code) {
             document.guestbook.eintrag.value += " " + code ;
    }
    </script>
    
    </head>
    <body>
    
    <form action="gb.php" method="post" name="guestbook">
        <p align="center">Name: <br />                
          <input name="name" type="text" size="38">
          <br>
          E-Mail: <br />
          <input name="email" type="text" size="38">
      
      <div align="center">
      Eintrag: <br />
          <textarea name="eintrag" cols="50" rows="10"></textarea>
    	  <br>
          <input type="submit" name="Button" value="Absenden">
      </div>
    </form>
    
    <div align="center">
    <div align="center">
    
    <div align="center">
    <img onclick="add(':lach:');" src="smileys/lach.gif" border="0" style="cursor:pointer">
      <img onclick="add(':augenroll:');" src="smileys/augenroll.gif" border="0" style="cursor:pointer">
      <img onclick="add(':ausruf:');" src="smileys/ausruf.gif" border="0" style="cursor:pointer">
      <img onclick="add(':schaem:');" src="smileys/beschaemt.gif" border="0" style="cursor:pointer">
      <img onclick="add(':boah:');" src="smileys/boah.gif" border="0" style="cursor:pointer">
      <img onclick="add(':boese:');" src="smileys/boese.gif" border="0" style="cursor:pointer">
      <img onclick="add(':cool:');" src="smileys/cool.gif" border="0" style="cursor:pointer">
      <img onclick="add(':smileygelb:');" src="smileys/fettgelbgrins.gif" border="0" style="cursor:pointer">
      <img onclick="add(':smileygruen:');" src="smileys/fettgruengrins.gif" border="0" style="cursor:pointer">
      <img onclick="add(':frage:');" src="smileys/frage.gif" border="0" style="cursor:pointer">
      <img onclick="add(':grins:');" src="smileys/grins.gif" border="0" style="cursor:pointer">
      <img onclick="add(':heul:');" src="smileys/heul.gif" border="0" style="cursor:pointer">
      <img onclick="add(':idee:');" src="smileys/lampe.gif" border="0" style="cursor:pointer">
      <img onclick="add(':lol:');" src="smileys/lustig.gif" border="0" style="cursor:pointer">
      <img onclick="add(':denk:');" src="smileys/nachdenklich.gif" border="0" style="cursor:pointer">
      <img onclick="add(':neutral:');" src="smileys/neutal.gif" border="0" style="cursor:pointer">
      <img onclick="add(':pfeil:');" src="smileys/pfeil.gif" border="0" style="cursor:pointer">
      <img onclick="add(':teufel:');" src="smileys/teufel.gif" border="0" style="cursor:pointer">
      <img onclick="add(':traurig:');" src="smileys/traurig.gif" border="0" style="cursor:pointer">
      <img onclick="add(':ueberrascht:');" src="smileys/ueberrascht.gif" border="0" style="cursor:pointer">
      <img onClick="add(':zwinker:');" src="smileys/zwinker.gif" border="0" style="cursor:pointer"> 
      <img onClick="add(':zornig:');" src="smileys/zornig.gif" border="0" style="cursor:pointer">
      </form>
    </div>
    </body>
    </html>
    gb.php:
    Code:
    <?php
    
    $daten=$_POST[eintrag]."<br>von <a href=mailto:".$_POST[email].">".$_POST[name]."</a><br><br>";
    
    $datenbank = "daten.dat";
    
    $datei = fopen($datenbank,"a");
    
    fwrite($datei, $daten);
    
    ?><style type="text/css">
    <!--
    a:link {
    	color: #000000;
    }
    a:visited {
    	color: #000000;
    }
    a:hover {
    	color: #000000;
    }
    a:active {
    	color: #000000;
    }
    -->
    </style>
    
    <div align="center">
      <p>Eintrag erfolgreich.  </p>
      <p>  <a href="guestbook.php">Zurück zum Gästebuch</a></p>
    </div>
    könnt ihr des mal versuchen das die Smileys im fertigen Eintrag angezeigt werden?
    Und Verbesserungsvorschläge sind immer wilkommen ;-)

  5. #5
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    sorry, aber ich finde es langsam müssig, dass man in der heutigen Zeit solche Sachen noch diskutieren muss. Es sollte eigentlich selbstverständlich sein: http://de.wikipedia.org/wiki/Cross-Site_Scripting
    Homepage: www.pingu.info

  6. #6
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Smileys ersetzen:
    musst du halt vor dem Eintragen des Beitrags in die DB noch :smiley: mit dem entsprechenden <img src="pfad/zum/smiley" /> ersetzen. Z.B:
    PHP-Code:
    str_replace(":smiley:""<img src=\"pfad/zum/smiley\" />"$beitrag 
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  7. #7
    Registrierter Benutzer
    Registriert seit
    29.06.2007
    Beiträge
    7
    Wie kann ich z.B. jetzt mein Gästebuch:
    eintragen.htm:
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
      "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <title></title>
    
    <style type="text/css">
    body {
    	background-color: #FFFFFF;
    }
    #Layer1 {
    	position:absolute;
    	left:189px;
    	top:118px;
    	width:131px;
    	height:160px;
    	z-index:1;
    }
    </style>
    
    <script type="text/javascript">
    var n = 1;
    function add(code) {
             document.guestbook.eintrag.value += " " + code ;
    }
    </script>
    
    </head>
    <body>
    
    <form action="gb.php" method="post" name="guestbook">
        <p align="center">Name: <br />                
          <input name="name" type="text" size="38">
          <br>
          E-Mail: <br />
          <input name="email" type="text" size="38">
      
      <div align="center">
      Eintrag: <br />
      <div align="center"> <img onclick="add(':lach:');" src="smileys/lach.gif" border="0" style="cursor:pointer">  <img onclick="add(':augenroll:');" src="smileys/augenroll.gif" border="0" style="cursor:pointer">  <img onclick="add(':ausruf:');" src="smileys/ausruf.gif" border="0" style="cursor:pointer">  <img onclick="add(':schaem:');" src="smileys/beschaemt.gif" border="0" style="cursor:pointer">  <img onclick="add(':boah:');" src="smileys/boah.gif" border="0" style="cursor:pointer">  <img onclick="add(':boese:');" src="smileys/boese.gif" border="0" style="cursor:pointer">  <img onclick="add(':cool:');" src="smileys/cool.gif" border="0" style="cursor:pointer">  <img onclick="add(':smileygelb:');" src="smileys/fettgelbgrins.gif" border="0" style="cursor:pointer">  <img onclick="add(':smileygruen:');" src="smileys/fettgruengrins.gif" border="0" style="cursor:pointer">  <img onclick="add(':frage:');" src="smileys/frage.gif" border="0" style="cursor:pointer">  <img onclick="add(':grins:');" src="smileys/grins.gif" border="0" style="cursor:pointer">  <img onclick="add(':heul:');" src="smileys/heul.gif" border="0" style="cursor:pointer">  <img onclick="add(':idee:');" src="smileys/lampe.gif" border="0" style="cursor:pointer">  <img onclick="add(':lol:');" src="smileys/lustig.gif" border="0" style="cursor:pointer">  <img onclick="add(':denk:');" src="smileys/nachdenklich.gif" border="0" style="cursor:pointer">  <img onclick="add(':neutral:');" src="smileys/neutal.gif" border="0" style="cursor:pointer">  <img onclick="add(':pfeil:');" src="smileys/pfeil.gif" border="0" style="cursor:pointer">  <img onclick="add(':teufel:');" src="smileys/teufel.gif" border="0" style="cursor:pointer">  <img onclick="add(':traurig:');" src="smileys/traurig.gif" border="0" style="cursor:pointer">  <img onclick="add(':ueberrascht:');" src="smileys/ueberrascht.gif" border="0" style="cursor:pointer">  <img onClick="add(':zwinker:');" src="smileys/zwinker.gif" border="0" style="cursor:pointer">  <img onClick="add(':zornig:');" src="smileys/zornig.gif" border="0" style="cursor:pointer"><br />
          <textarea name="eintrag" cols="50" rows="10"></textarea>
    	  <br>
          <input type="submit" name="Button" value="Absenden">
      </div>
      </div>
    </form>
    
    <div align="center">
    <div align="center">
    </body>
    </html>
    guestbook.php:
    Code:
    <style type="text/css">
    <!--
    a:link {
    	color: #000000;
    }
    a:visited {
    	color: #000000;
    }
    a:hover {
    	color: #000000;
    }
    a:active {
    	color: #000000;
    }
    -->
    </style><center> 
      <h2 align="center"><u>Gästebuch</u></h2>
    
      <div align="center">
        <p><a href="eintragen.htm">Ins Gästebuch eintragen</a></p>
        <p>&nbsp;</p>
      </div>
    </center>
    
    <div align="center">
     
      <?php 
    
    $datenbank = "daten.dat"; $datei = fopen($datenbank,"r");
    
    fpassthru($datei);
    
    ?>
    </div>

    gb.php:
    Code:
    <?php
    
    $arr_smi = array(
                ':lach:',
                ':augenroll:',
    			':ausruf:',
                ':schaem:',
                ':boah:',
                ':boese:',
                ':cool:',
                ':smileygelb:',
                ':smileygruen:',
                ':frage:',
                ':grins:',
                ':heul:',
                ':idee:',
                ':lol:',
                ':denk:',
                ':neutral:',
                ':pfeil:',
                ':teufel:',
                ':traurig:',
                ':ueberrascht:',
                ':zornig:',
                ':zwinker:'
    			
            );
    
    $arr_ima = array(
                '<img src="./smileys/lach.gif" border="0">',
                '<img src="./smileys/augenroll.gif" border="0">',
    			'<img src="./smileys/ausruf.gif" border="0">',
                '<img src="./smileys/beschaemt.gif" border="0">',
                '<img src="./smileys/boah.gif" border="0">',
                '<img src="./smileys/boese.gif" border="0">',
                '<img src="./smileys/cool.gif" border="0">',
                '<img src="./smileys/fettgelbgrins.gif" border="0">',
                '<img src="./smileys/fettgruengrins.gif" border="0">',
                '<img src="./smileys/frage.gif" border="0">',
                '<img src="./smileys/grins.gif" border="0">',
                '<img src="./smileys/heul.gif" border="0">',
                '<img src="./smileys/lampe.gif" border="0">',
                '<img src="./smileys/lustig.gif" border="0">',
                '<img src="./smileys/nachdenklich.gif" border="0">',
                '<img src="./smileys/neutal.gif" border="0">',
                '<img src="./smileys/pfeil.gif" border="0">',
                '<img src="./smileys/teufel.gif" border="0">',
                '<img src="./smileys/traurig.gif" border="0">',
                '<img src="./smileys/ueberrascht.gif" border="0">',
                '<img src="./smileys/zornig.gif" border="0">',
                '<img src="./smileys/zwinker.gif" border="0">'
            );
    
    $neu_eintrag = str_replace($arr_smi, $arr_ima, $_POST['eintrag']);
    
    $neue_daten = $neu_eintrag . '<br>von <a href="mailto:' . $_POST['email'] . '">' . $_POST['name'] . '</a><br><br>';
    $alte_daten = '';
    
    $op = fopen('./daten.dat', 'r');
    
    while (!feof($op))
        $alte_daten .= fgets($op, 4096);
    
    fclose($op);
    
    $fp = fopen('./daten.dat', 'w');
    fwrite($fp, $neue_daten . $alte_daten);
    fclose($fp);
    
    ?><style type="text/css">
    <!--
    a
    {
        color: #000;
    }
    //-->
    </style>
    
    <div align="center">
      <p>Eintrag erfolgreich.  </p>
      <p>  <a href="guestbook.php">Zurück zum Gästebuch</a></p>
    </div>
    und daten.dat


    gegen das scripting schützen?

    Ein Freund sagte :
    Das kommt darauf an, wie weit du gehen willst. Du kannst z.B. alle HTML-Tags rauslöschen, bevor du mit str_replace() die Smilies einbaust. Damit wärst du schon mal ganz schön sicher. Alle Tags entfernt man mit strip_tags().


    Ich will soweit wie möglich gehen, aber wie mache ich das?

  8. #8
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    ich empfehle dir http://php.net/manual/de/index.php und dort das Feld search for:. Bei der Auswahl wo suchen einfach "function list" lassen.
    Ansonsten kannst du auch das Inhaltsverzeichnis des Handbuchs nach dem Thema, zu welchem du etwas wissen möchtest durchsuchen. (z.B. String-Funktionen für verändern etc. von Zeichenketten.)
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •