+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 18

Thema: Hilfe, ich finde keine Lösung für mein Gästebuch

  1. #1
    TP-Junior Lycanthia macht alles soweit korrekt Avatar von Lycanthia
    Registriert seit
    Jun 2009
    Ort
    Wien
    Beiträge
    9

    Unhappy Hilfe, ich finde keine Lösung für mein Gästebuch

    Hallo!

    Ich habe mich hier angemeldet, weil ich schon eine Woche nach einer Lösung suche, aber ich nicht weiter komme. Ich habe als Projekt in meiner Schule ein Gästebuch gewählt und habe ein Problem, da ich doch ein Anfänger bin.

    Es ist nun so, dass ich eine Tabelle erstellt habe und ein Formular und alles was da eingetragen wird kommt auch schön brav da rein. Das Problem, es kommt alles rein. Wenn ich aktualisiere kopiert er mir Beiträge ins unendliche. Ich habe gegoogelt etc., aber konnte bisher keine Antwort finden.

    Hier ist meine Bastelei:

    PHP-Code:
    <?php 

    $server 
    "localhost"
    $user "root"
    $pass "";
    $database "guestbook"
    $table "gaestebuch";

    $name $_POST['name'];
    $eintrag $_POST['eintrag'];
    $eMail $_POST['eMail'];
    $homepage $_POST['homepage'];
    $datum date("d.m.Y - H:i");


    $verbindung mysql_connect($server$user$pass)                            
    or die(
    "Verbindung zur Datenbank konnte nicht hergestellt werden"); 

    mysql_select_db("guestbook") or die ("Datenbank konnte nicht ausgewählt werden"); 

    $query "INSERT INTO gaestebuch (name, eintrag, datum, eMail, homepage) VALUES ('$name', '$eintrag', '$datum', '$eMail', '$homepage')"
    $eintragen mysql_query($query);

        if (isset(
    $_POST['submit'])) 
            {
                
    $eintragen;
            }
        else 
            {
             die;
            }

      if(
    $name == "" OR $eintrag == "")                                                { 
       echo 
    "Eingabefehler. Bitte Name UND Nachricht einfügen."
       exit; 
        } 


        if(!
    eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$"$eMail))      //E-Mail Überprüfung
        
    {
            echo 
    "";
        }



    $query "SELECT * FROM gaestebuch ORDER BY datum";    
    $result mysql_query($query);


    while(
    $daten mysql_fetch_array ($resultMYSQL_ASSOC))        

    {    
        echo 
    "Name: ";
        echo 
    $daten['name'];
        echo 
    "<br />";
        
        echo 
    "E-Mail: ";
        echo 
    $daten['eMail'];
        echo 
    "<br />";
        
        echo 
    "Datum: ";
        echo 
    $daten['datum'];
        echo 
    "<br />";

        echo 
    "Beitrag: ";
        echo 
    $daten['eintrag'];
        echo 
    "<br />";
        echo 
    "<hr />";    
        echo 
    "<br />";
    }



       
    mysql_close($verbindung);                                        

    ?>

  2. #2
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    hallo, ist auch klar, beim aktualisieren wird das formular neu versendet, $eintragen.
    du brauchst eine reloadsperre
    computer tun nur das was man ihnen sagt, meistens

  3. #3
    TP-Specialist Master_T2 bringt sich richtig ein Master_T2 bringt sich richtig ein Avatar von Master_T2
    Registriert seit
    Oct 2002
    Ort
    Übach-Palenberg
    Beiträge
    2.272
    PHP-Code:
    header("LOCATION: deinGaestebuch.php"); 
    ...sollte dir weiterhelfen.
    Grüße aus Übach-Palenberg
    Tim

    http://www.template-shopping.de

  4. #4
    TP-Junior Lycanthia macht alles soweit korrekt Avatar von Lycanthia
    Registriert seit
    Jun 2009
    Ort
    Wien
    Beiträge
    9
    WOW!

    So schnelle Antwort! Vielen Dank. Gut jetzt habe ich das gemacht aber da kommt diese Fehlermeldung:

    PHP-Code:
    WarningCannot modify header information headers already sent by (output started at C:xampphtdocstestgaestebuch.php:5in C:xampphtdocstestgaestebuch.php on line 6 
    Was ist damit gemeint?

    Viele liebe Grüße
    Lyc

  5. #5
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    das muss in die erste zeile, bevor sonstiges php oder html kommt
    computer tun nur das was man ihnen sagt, meistens

  6. #6
    TP-Junior Lycanthia macht alles soweit korrekt Avatar von Lycanthia
    Registriert seit
    Jun 2009
    Ort
    Wien
    Beiträge
    9
    Danke und jetzt kommt das nächste Problem. Langsam aber sicher fühle ich mich unfähig.

    Die Seite ist leer wenn ich sie aufrufe, also nicht einmal eine Fehlermeldung und speichert mir in die Datenbank Kopien. Hilfe!

    Verzeiht mir bitte mein Ungeschick und nochmals vielen Dank für die rasche und kompetente Hilfe.

    viele liebe Grüße
    Lyc

    P.S.: Na toll jetzt komm ich nicht mal mehr in die Datenbank rein. Was ist passiert?
    Geändert von Lycanthia (16.06.2009 um 15:29 Uhr)

  7. #7
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    was steht jetzt in deiner datei?
    kannst auch mal als anhang machen
    computer tun nur das was man ihnen sagt, meistens

  8. #8
    TP-Junior Lycanthia macht alles soweit korrekt Avatar von Lycanthia
    Registriert seit
    Jun 2009
    Ort
    Wien
    Beiträge
    9
    Zitat Zitat von jayjay Beitrag anzeigen
    was steht jetzt in deiner datei?
    kannst auch mal als anhang machen

    Ok jetzt ist mir gerade mein PC abgestürzt und ich komme nirgends mehr rein, weil der Browser schreibt:

    MySQL meldet:

    #2003 - Der Server antwortet nicht.

    Um Gottes Willen, was habe ich angestellt?
    Ich habe den header befehl ganz am Anfang vorm html geschrieben.

    Also
    PHP-Code:
    <?php header... ?>

    <html> etc...

    Habe auch keinen Abstand gemacht. Aber jetzt ist meine Datei geschrottet und ich komme nicht mehr ins phpmyadmin rein.

    Heut ist nicht mein Tag.

    lg

    So Edit: Aus unerfindlichen Gründen geht es jetzt wieder. Ich habe mich nur bei google nach der Ursache gesucht und aus Frust zum 100ersten Mal auf reset gedrückt und jetzt geht die DB wieder.

    Das heißt Fehler 1 eliminiert.

  9. #9
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    xampp control center -> apache und mysql gestartet?
    computer tun nur das was man ihnen sagt, meistens

  10. #10
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.685
    Die Seite ist leer wenn ich sie aufrufe, also nicht einmal eine Fehlermeldung und speichert mir in die Datenbank Kopien.
    Vermutlich hast du header(...) an den Anfang der Datei mit deinem Formular geschrieben.
    PHP-Code:
    <?php header... ?> 
    <html> etc...
    Sieht zumindest so aus. Dadurch ruft sich die Datei immer wieder selber auf.
    EDIT

    ach so. Lokaler eigener Server? Dann hat sich das Teil in der Endlosschleife aufgehaengt und braucht eine Weile zum Erholen.


    $eintragen = mysql_query($query);

    if (isset($_POST['submit']))
    {
    $eintragen;
    }
    else
    {
    die;
    }
    Das ist so nicht richtig.


    if (isset($_POST['submit']))
    {
    $eintragen = mysql_query($query);
    }
    else
    {
    die;
    }
    So ist es besser.


    if (isset($_POST['submit']))
    {
    $eintragen = mysql_query($query);
    header("LOCATION: deinGaestebuch.php");
    }
    else
    {
    die;
    }
    Und so war es vermutlich mit dem header gemeint.
    Idealer Weise sind Formular und Verarbeitung in zwei Dateien (naja Geschmackssache).


    Aber jetzt ist meine Datei geschrottet und ich komme nicht mehr ins phpmyadmin rein.
    Geschrottet wird eine Datei durch sowas nicht. Dein Webspaceanbieter hat halt mal einen Aussetzer.
    Gruss Guin
    Mein Blog

  11. #11
    TP-Specialist Master_T2 bringt sich richtig ein Master_T2 bringt sich richtig ein Avatar von Master_T2
    Registriert seit
    Oct 2002
    Ort
    Übach-Palenberg
    Beiträge
    2.272
    Herzlichen Glückwunsch zu deiner ersten Endlosschleife ;-)

    Geh mal in den Taskmanager und beende die Prozesse apache.exe und mysqld-nt.exe. Danach XAMPP Control Center aufrufen und beides neustarten. Dann noch das von Guin reinbasteln und fertig..
    Grüße aus Übach-Palenberg
    Tim

    http://www.template-shopping.de

  12. #12
    TP-Junior Lycanthia macht alles soweit korrekt Avatar von Lycanthia
    Registriert seit
    Jun 2009
    Ort
    Wien
    Beiträge
    9

    Talking

    Hallo!

    Vielen vielen lieben Dank an euch. Ihr seit echt spitze. Ja das ganze hat sich aufgehängt und 1000ende Einträge hinterlassen. XD

    Nun gut ich bin ehrlich ich habe das Problem mit einer Fachkundigen, die mir das alles wieder hingebogen hat, anders gelöst und möchte euch die Lösung nicht vorenthalten.

    PHP-Code:
    <?php 
    $error 
    FALSE;



    mysql_connect("localhost""root"""); 
    mysql_select_db("guestbook");



    if(isset(
    $_POST['senden']))
    {
    $senden $_POST['senden'];}else{$senden "";}


    if(isset(
    $_POST['name']))
    {
    $name $_POST['name'];}else{$name "";}

    if(isset(
    $_POST['eintrag']))
    {
    $eintrag $_POST['eintrag'];}else{$eintrag="";}


    if(isset(
    $_POST['eMail']))
    {
    $eMail $_POST['eMail'];}else{$eMail="";}

    if(isset(
    $_POST['homepage']))
    {
    $homepage $_POST['homepage'];}else{$homepage="";}

    $datum date("d.m.Y - H:i");





    if(!empty(
    $senden))
    {

      if( (empty(
    $name)) || (empty($eintrag)) )                                        //Hier wird gschaut ob name UND eintrag da is
       

       
       
    $error TRUE;
       
       
    $eig =  "<p><strong>Eingabefehler. Bitte Name UND Nachricht einfügen.</strong></p>"
       
        } 


    }




    if((!empty(
    $senden)) && ($error != TRUE) )
    {


    $query "INSERT INTO gaestebuch (name, eintrag, datum, eMail, homepage) VALUES ('$name', '$eintrag', '$datum', '$eMail', '$homepage')"
    $eintragen mysql_query($query);

    echo 
    "<script type=\"text/javascript\">location.href='gaestebuch.php';</script>";         //damit beim aktualisieren nicht noch mal versendeet wird

    }



    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Willkommen!</title>

    </head>
    <style type="text/css">
    <!--

    hr {width: 300px;}

    -->
    </style>

    <body style="text-align: center; background-color: #69B8D6; font-family: Georgia, "Times New Roman", Times, serif;">


    <p>Die mit * gekennzeichneten Felder müssen ausgefüllt werden.</p>

    <?php
    if($error == TRUE)
    {
    echo 
    $eig;
    }
    ?>

    <form action="gaestebuch.php" method="post">

    <input type="text" name="Antispam" style="display:none;">
    <table style="text-align: left;">
     <tr>
      <td>
       Name:*  </td>
      <td>
       <input type="text" name="name" size="50">  </td>
     </tr>
     <tr>
      <td>
       Email-Adresse:  </td>
      <td>
       <input type="text" name="eMail" size="50">  </td>
     </tr>
     <tr>
      <td>
       Homepage:</td>
      <td>
       <input type="text" name="homepage" size="50">  </td>
     </tr>
     <tr>
      <td>
       Nachricht*:</td>
      <td>
       <textarea name="eintrag" rows="5" cols="39"></textarea>  </td>
     </tr>
     <tr>
      <td>&nbsp;  </td>
      <td>    
      
       
        <input type="submit" name="senden" value="Eintragen" size="50"></td>  </tr> </table> 
        
    </form> 





    <?php

     

    $ausgabe 
    "SELECT * FROM gaestebuch ORDER BY datum";    
    $result mysql_query($ausgabe) or die(mysql_error());


    while(
    $daten mysql_fetch_array($result))                        //Hier ist die Schleife der Ausgabe
    {    
        echo 
    "Name: ";
        echo 
    $daten['name'];
        echo 
    "<br />";
        
        echo 
    "E-Mail: ";
        echo 
    $daten['eMail'];
        echo 
    "<br />";
        
        echo 
    "Datum: ";
        echo 
    $daten['datum'];
        echo 
    "<br />";

        echo 
    "Beitrag: ";
        echo 
    $daten['eintrag'];
        echo 
    "<br />";
        echo 
    "<hr />";    
        echo 
    "<br />";
    }


       
    ?> 


    </body>
    </html>
    Dennoch möchte ich mich nochmals bedanken. Es ist das erste Forum, wo sich wirklich rasch Leute melden und einem helfen.

    Das ist begrüßenswert und motiviert mich in Gebieten zu helfen, wo ich mich auskenne.

    Einen wunderschönen Tag noch.

    viele liebe Grüße

    Lyc

  13. #13
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Moin,

    dieser Code ...
    PHP-Code:
    if(isset($_POST['senden']))
    {
    $senden $_POST['senden'];}else{$senden "";}


    if(isset(
    $_POST['name']))
    {
    $name $_POST['name'];}else{$name "";}

    if(isset(
    $_POST['eintrag']))
    {
    $eintrag $_POST['eintrag'];}else{$eintrag="";}


    if(isset(
    $_POST['eMail']))
    {
    $eMail $_POST['eMail'];}else{$eMail="";}

    if(isset(
    $_POST['homepage']))
    {
    $homepage $_POST['homepage'];}else{$homepage="";} 
    ...ist mehr oder weniger sinnfrei und könnte auch so abgekürzt werden ...

    PHP-Code:
    if (isset( $_POST['senden'], $_POST['name'], $_POST['eintrag'], $_POST['eMail'], $_POST['homepage'] ))
    {
        
    extract$_POST );
    }
    else
    {
        
    // Code falls ein Feld nicht übermittelt wurde

    Nutzlos bleibt er aber trotzdem, da die Eingaben nicht validiert werden, was das Script extrem unsicher macht. Verschlimmert wird es noch dadurch, dass die Benutzereingabe auch einfach so an die Datenbank geschickt wird, wodurch Tür und Tor für Angriffe offen steht. Hier sollte unbedingt mit mysql_real_escape_string gearbeitet werden und natürlich vorher die Eingabe einer Prüfung unterzogen werden.

    Ob ein Datenbankeintrag letztendlich fehlerfrei funktioniert hat kann man mit mysql_affected_rows abfragen.

  14. #14
    TP-Junior Lycanthia macht alles soweit korrekt Avatar von Lycanthia
    Registriert seit
    Jun 2009
    Ort
    Wien
    Beiträge
    9
    Zitat Zitat von Rizzo Beitrag anzeigen
    Nutzlos bleibt er aber trotzdem, da die Eingaben nicht validiert werden, was das Script extrem unsicher macht. Verschlimmert wird es noch dadurch, dass die Benutzereingabe auch einfach so an die Datenbank geschickt wird, wodurch Tür und Tor für Angriffe offen steht. Hier sollte unbedingt mit mysql_real_escape_string gearbeitet werden und natürlich vorher die Eingabe einer Prüfung unterzogen werden.

    Ob ein Datenbankeintrag letztendlich fehlerfrei funktioniert hat kann man mit mysql_affected_rows abfragen.
    Hallo!

    Danke für deine Antwort. Ich hab das mit einer Web Development - Trainerin gemacht und da ich selber Anfänger bin was PHP und MySQL angeht nehme ich halt alles hin. XD

    Und das es unsicher ist, ist mir schon klar. Es dient auch mehr dazu, dass ich mir mal das wichtigste merke und lerne. Weil soweit bin ich noch net. Ich will ja auch einmal eine Black List einfügen etc. Aber dazu muss ich das erst lernen.
    Auf alle Fälle sage ich aber Danke, weil ich jede Hilfe begrüße.

    viele liebe Grüße
    Lyc

  15. #15
    TP-Veteran marc22 hilft, wo's geht marc22 hilft, wo's geht marc22 hilft, wo's geht
    Registriert seit
    May 2006
    Beiträge
    1.570
    Code:
    echo "<script type=\"text/javascript\">location.href='gaestebuch.php';</script>";
    Sorry, aber das hier ist ja mal totaler Quark - und dann noch vor dem HTML-Tag. Und das von einer "Web Development - Trainerin"?! Da mache ich mir wirklich Gedanken, um deren Qualifikation machen.

    Genau an dieser Stelle sollte der Header-Befehl stehen. Was die anderen allerdings vergessen haben, zu sagen, ist, dass danach noch ein
    PHP-Code:
    exit; 
    folgen muss, sonst wird trotz header(...) das PHP-Skript weiter ausgeführt, was zu schwer zu findenden Fehlern führen kann.

    Der Abschnitt sollte also so aussehen:
    PHP-Code:
    if((!empty($senden)) && ($error != TRUE) )
    {


    $query "INSERT INTO gaestebuch (name, eintrag, datum, eMail, homepage) VALUES ('$name', '$eintrag', '$datum', '$eMail', '$homepage')"
    $eintragen mysql_query($query);

    header('Location: gaestebuch.php');
    exit;

    ...Meine Meinung

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Ähnliche Themen

  1. Darstellungsprobleme auf dieser Homepage?? (Ich finde keine)
    Von Mulder500 im Forum Webdesign allgemein
    Antworten: 4
    Letzter Beitrag: 30.08.2007, 17:05
  2. Lösung zur mein Problem und kurze erklärung
    Von pop im Forum Traum-Dynamik
    Antworten: 13
    Letzter Beitrag: 10.09.2005, 23:43
  3. Antworten: 30
    Letzter Beitrag: 24.07.2005, 22:15
  4. Antworten: 1
    Letzter Beitrag: 25.06.2004, 13:02

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51