tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
17
ZUGRIFFE
4996
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    stitch stitch ist offline Mitglied
    Registriert seit
    Nov 2001
    Ort
    Weidenhausen (Mitttelhessen)
    Beiträge
    20
    Ich wollte mir jetzt mal nach dem ich nur ein paar simple Sachen in PHP gemacht hab was richtiges basteln und hab mir mal dieses Tut im anderem Forum angeschaut: http://www.tutorials.de/forum/showth...&threadid=8664

    Erstmal hab ich mit PHPmyAdmin eine Datenbank mit dem Namen "guestbook" erstellt. Dort habe ich dann einfach mal diesen Block SQL Befehle eingefügt und er hat auch meiner Meinung nach alle Felder richtig erstellt. Dann hab ich den ganzen Quellcode in ne PHP Seite eingefügt und nur die Werte für den Zugang zur DB (SQL-Server, Benutzer, Passwort) und unten den Datenbank Namen abgeändert. Das ganze wollte ich dann mal zum testen starten und er bringt mir einen Parse Error. In der Zeile steht:
    PHP-Code:
    { 
    Was ist das überhaupt und warum spuckt er nen Error? Nach meinem Verständis ist das nur ein &, der Rest wird ja wegkommentiert.

    Weiss jemand rat?

    thx, im vorraus
     
    christopher

  2. #2
    Avatar von stephan01
    stephan01 stephan01 ist offline Mitglied Gold
    Registriert seit
    Nov 2001
    Beiträge
    123
    *hoff, dass erster bin*

    du musst
    PHP-Code:
    { 
    mit
    Code :
    1
    
    {
    austauschen, glaube ich
     
    <font size=-3 face=Verdana><i>After the rain comes sun, after the sun comes rain again</i></font>

  3. #3
    stitch stitch ist offline Mitglied
    Registriert seit
    Nov 2001
    Ort
    Weidenhausen (Mitttelhessen)
    Beiträge
    20
    Danke, jetzt spuckt er schon mal keinen Fehler mehr!
    Hat das einen tieferen Sinn oder warum schreibt er nicht gleich die richtigen Klammern in den Code?

    Funktionieren tut das GB aber leider immer noch nicht. Wenn ich jetzt was in das Formular ein tippe wird kein Beitrag eingetragen. Liegt das an meinem WAMP System oder ist ein Fehler im Script? Weiss jemand rat? Muss jetzt erstmal ins Training, werde später warscheinlich mal auf nen Server im Netz laden.
     
    christopher

  4. #4
    Avatar von stephan01
    stephan01 stephan01 ist offline Mitglied Gold
    Registriert seit
    Nov 2001
    Beiträge
    123
    hab's auch nicht zum laufen bekommen....hatte nur halt beim probieren annähernd das gleiche prob

    tschau viel spaß beim training
     
    <font size=-3 face=Verdana><i>After the rain comes sun, after the sun comes rain again</i></font>

  5. #5
    Registriert seit
    Mar 2001
    Ort
    München
    Beiträge
    4.785
    Konkretiesier mal bitte :

    schreibt er nur den "Beitrag" nicht rein oder komplett keinen Eintrag ?
     
    Erst wenn der letzte Programmierer eingesperrt...
    ...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
    -------------------
    chris: hey Tom hast du eigentlich ne Freundin
    jdar: ich bin tutorials.de Mod!

  6. #6
    stitch stitch ist offline Mitglied
    Registriert seit
    Nov 2001
    Ort
    Weidenhausen (Mitttelhessen)
    Beiträge
    20
    Meinst du ob der Beitrag nur nicht in die Seite eingefügt wird oder ob er überhaupt nicht in die DB geschrieben wird?

    Weiss nicht genau, wie ich das überprüf. Ist das erste mal, dass ich was mit ner Datenbankanbindung probiere. Im phpMyAdmin steht bei der Tabelle gestbook - Daten: 0 Bytes
    Ich denke mal das ist ein Hinweis, dass er den Inhalt der Form überhaupt nicht in die Datenbank schreibt, oder? Wie kann man den genauen Inhalt der Felder in einer Tabelle einsehen? Geht das auch mit dem phpMyAdmin?
     
    christopher

  7. #7
    Avatar von NocTurN
    NocTurN NocTurN ist offline Mitglied Silber
    Registriert seit
    Nov 2001
    Ort
    Petershagen -> nähe Hannover (NRW)
    Beiträge
    53
    Hi,
    also das mit dem
    PHP-Code:
     &#123; 
    ist ein fehler im forum script soweit ich das sehe, da bei mir die ganz normalen klammern an eben dieses stellen vorhanden sind, und ich es auch mit diesen gepostet habe.

    Also musst du alle diese teile mit einer { austauschen. Dann sollte es ****en, wenn du aber weiterhin probleme hast, gib mir bescheid damit ich das Tutorial nochmal überarbeiten kann.

    greetz
     
    Wenn ich den A#*%& kriege der mir meine Signatur gelöscht hat!

  8. #8
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Zitat Zitat von stitch Beitrag anzeigen
    Danke, jetzt spuckt er schon mal keinen Fehler mehr!
    Hat das einen tieferen Sinn oder warum schreibt er nicht gleich die richtigen Klammern in den Code?

    Funktionieren tut das GB aber leider immer noch nicht. Wenn ich jetzt was in das Formular ein tippe wird kein Beitrag eingetragen. Liegt das an meinem WAMP System oder ist ein Fehler im Script? Weiss jemand rat? Muss jetzt erstmal ins Training, werde später warscheinlich mal auf nen Server im Netz laden.
    das GB funktioniert schon, allerdings nur wenn in der "php.ini" "register_globals" auf ON steht.

    da dieses aber ein sicherheitsrisiko ist sollten $_POST['variablen'] verwendet werden.

    PHP-Code:

    $name 
    $_POST['name'];
    $text $_POST['text']; 
    oder direkt mit dem POST-Variablen arbeiten:


    PHP-Code:
    <?php  
    // Zunächst brauchen wir eine Datenbankverbindung: 
    $verbindung mysql_pconnect"dein.mysql.server""deinSQLbenutzername""deinSQLpasswort"); 

    if (!
    $verbindung// War die verbindung NICHT erfolgreich? -> Wenn ja: Fehler auswerfen und beenden 

        echo 
    "<br><center><b>- Keine Verbindung zur Datenbank -</b></center>"
        exit; 


    mysql_select_db("deinedatenbank"); //Datenbank auswählen in die geschrieben werden soll 

    if($_POST['neueintrag']) //ueberprueft ob der submit button gedrückt wurde 
    //Wenn ja dann daten in den guestbook table eintragen 

        
    $id time(); //time() gibt die zeit seit dem beginn des Unix Zeitalters in sekunden zurück 
                      //wir benutzen id als Datums und Identifikations-Angabe, doch mehr dazu später 

             
        
    $sqlkommando "INSERT INTO guestbook (id, name, email, homepage, message) VALUES ('$id', '".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['email'])."', '".mysql_real_escape_string($_POST['homepage'])."', '".mysql_real_escape_string($_POST['message'])."')"
        
    // Auf gut deutsch: Füge in guestbook bei "id, name, email, homepage, message" die werte der variablen "$id, $name, $email, $homepage, $message" ein 

        
    mysql_query($sqlkommando) or die("Error: " mysql_error()); // Kommando 'sqlkommando' ausfuehren 
                                                                     // bei misserfolg beenden und fehlermeldung ausgeben 
         
        
    echo "Eintragung erfolgreich hinzugefügt"// Bestätigung ausgeben 


    ?>
    die function
    PHP-Code:
    mysql_real_escape_string() 
    zerpflückt auf gut deutsch den eingegebenen text auf sonderzeichen und wandelt es um. mit
    PHP-Code:
    stripslashes() 
    wird es wieder zusammengesetzt wie im unteren teil des tutorials ja gezeigt.
     

  9. #9
    räkor räkor ist offline Rookie
    Registriert seit
    Sep 2008
    Beiträge
    6
    Hi Maniac_81,
    aufgrund Deines Tips läuft bei mir das TuT-Gästebuch jetzt. Das einzige, was nicht funktioniert ist dei Ausgabe des Datums. Da gibt er:

    geschrieben:-//:

    aus. Also nur die Datum- und Zeit-Trennzeichen. Kann es sein, das das auch mit dem $_POST['variablen'] zusammenhängt?
     

  10. #10
    monicas monicas ist offline Mitglied
    Registriert seit
    Oct 2008
    Beiträge
    14
    Hallo,
    ich stricke auch soeben an diesem guestbook. bei mir funktioniert bis jetzt auch alles, bis auf das datum.
    Zuerst wurde die ID 0 in der mysql tabelle gespeichert, sodann habe ich auf auto_increment gestellt, jetzt bekomme ich zwar eine ID, galube aber nicht das das so richtig ist, den nun gibt er fuer jeden eintrag das gleiche datum.
    Jemand eine Idee?
     

  11. #11
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    so, ich hab mir das scriptlein nochmal genauer angesehen. Is ja doch schon eine Weile her.

    Stell das Datenbankfeld "id" auf Primärschlüssel, dann sollte es Funktionieren. "auto_increment" ist in diesem Fall nicht das richtige, da es ja sonst immer um einen Zähler erhöht.
     

  12. #12
    monicas monicas ist offline Mitglied
    Registriert seit
    Oct 2008
    Beiträge
    14
    Hi Maniac,
    vielen Dank fuer deine Hilfe!
    Ich habe der ID den Primarykey gegeben, aber leider funktioniert es noch nicht. In der Datenbank erscheint die ID 0, und auf der Gaestebuchseite nach eingabe der Werte fuer Namen und Test kommt: Error: Duplicate entry '0' for key 1

    Was kann das sein? Er bekommt die ID nicht in die Tabelle.
     

  13. #13
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Habe es eben mal getesten. Ist ja klar, der erste Eintrag wird gemacht, jedoch da kein Feld als "auto_increment" gesetzt ist, wird auch keine neue Zeile angefangen. ich würde das Feld "id" als "auto_increment" setzen und für das Datum ein Extra Feld machen.
     

  14. #14
    monicas monicas ist offline Mitglied
    Registriert seit
    Oct 2008
    Beiträge
    14
    Jau genau, er versucht quasi immer in den Tabelleneintrag 0 reinzuschreiben, das funktioniert natuerlich nicht. Wenn ich Auto_incremetn setzte, funktioneirt das Gaestebuch wieder gibt allerdings das Datum Thuirsday - 1/1/2009 1:0 an.

    Eigentlich sollte ich ja nicht auto_increment setzen, da ja das Datum (also die $ID = time(); ) die Sortierreihenfolge in der Ausgabe bestimmt. Die Serverabfrage mit time() soll ja die ID bestimmen.

    Gruebbel
     

  15. #15
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Deswegen schrieb ich das Du fürs Datum ein Extra Feld angeben sollst. Su kannst die die Datenbank-Abfrage trotzdem per Time ausgeben.

    PHP-Code:
    $sqlkommando "SELECT * FROM guestbook ORDER BY datum DESC"
    Wobei es eigentlich egal ist ob du nun nach der eintrags-ID oder dem Datum ausgibst. Eigentlich ist es so üblich das man Einträge anhand seiner Eindeutigen ID, dem auto_increment Wert ansppricht.

    Davon mal abgessehen solltest Du vielleicht ein neueres Tutorial nehmen, dieses ist doch schon etwas älter und entspricht nicht mehr ganz den Standarts.
     

Ähnliche Themen

  1. Guestbook-Tut Problem
    Von lazi im Forum PHP
    Antworten: 6
    Letzter Beitrag: 24.04.04, 21:42
  2. Problem (Guestbook)
    Von F|ghtEr im Forum PHP
    Antworten: 1
    Letzter Beitrag: 31.03.02, 00:14
  3. Problem mit Guestbook!
    Von [K-DOG] im Forum PHP
    Antworten: 6
    Letzter Beitrag: 30.11.01, 07:04
  4. Problem mit Guestbook: PHP & MYSQL plz help!
    Von Act of Fate im Forum PHP
    Antworten: 4
    Letzter Beitrag: 28.06.01, 09:49