| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

11-10-2011, 14:08
|
|
flolicious86
Registrierter Benutzer
|
|
Registriert seit: Oct 2011
Beiträge: 3
|
|
Daten an Datenbank senden falsche Reihenfolge
Hallo ihr,
bin ganz neu im Forum und ganz neu im Thema PHP, MySQL etc.
Ich bin gerade dabei, ein kleines simples "Gästebuch" zu entwickeln. Datenbank ist angelegt, Daten sind drin, Daten werden gelesen und korrekt ausgespuckt (Nur die Umlaute wollen noch nicht so). Beim Schreiben in die DB habe ich jedoch Probleme. Und zwar sobald ich die Seite öffne, wo man die Daten eingeben kann, erzeugt er mir schon einen Eintrag - natürlich leer. Wenn ich dann Daten in der Maske eingebe und auf speichern klicke, sagt er mir alles dass alles ok ist, es wurde jedoch trotzdem nichts in die DB geschrieben. Da ich absolut neu bin habe ich gar keine Ahnung woran das liegen könnte. Ich vermute das es an irgend einer Reihenfolge liegt.
Hier der Code:
PHP-Code:
<?php // Prüfen ob ein Eintrag gemacht wurde if ( $_POST['beschreibung'] != "" ) { echo "<h2>Eintrag gespeichert</h2>"; // hier kommt nun der entsprechende PHP-Code exit; } ?> <form name="" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="text/html"> <p>Ihr Name:<br /> <input type="text" name="name" value="" size="50" maxlength="150" /> </p> <p>Ihr Vorname:<br /> <input type="text" name="vorname" value="" size="50" maxlength="150" /> <p>Ihre E-Mail-Adresse:<br /> <input type="text" name="email" value="" size="50" maxlength="150" /> </p> <p>Gästebucheintrag:<br /> <textarea name="beschreibung" rows="10" cols="50"></textarea> </p> <input type="Submit" name="" value="speichern" /> </form>
<?php //Verbindung zur Datenbank herstellen define ( 'MYSQL_HOST', 'example.com' ); define ( 'MYSQL_BENUTZER', '****' ); define ( 'MYSQL_KENNWORT', '****' ); define ( 'MYSQL_DATENBANK', '****' ); $db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT); if ( ! $db_link ) { // hier sollte dann später dem Programmierer eine // E-Mail mit dem Problem zukommen gelassen werden // die Fehlermeldung für den Programmierer sollte // das Problem ausgeben mit: mysql_error() die('keine Verbindung zur Zeit möglich - später probieren '); }
$db_sel = mysql_select_db( MYSQL_DATENBANK ) or die ("Auswahl der Datenbank fehlgeschlagen"); // MySQL Befehl zusammenbauen, sodass diese Daten gespeichert werden $sql = " INSERT INTO entry "; $sql .= " SET "; $sql .= " name ='". $_POST['name'] ."', "; $sql .= " vorname ='". $_POST['vorname'] ."', "; $sql .= " email ='". $_POST['email'] ."', "; $sql .= " date ='". date("Y-m-d H:i:s") ."', "; $sql .= " beschreibung='". $_POST['beschreibung'] ."' "; // MySQL Befehl Konstrukt zur Kontrolle ausgeben // echo "<hr />SQL: $sql<hr />";
// ausführen des mysql-Befehls $db_erg = mysql_query( $sql ); if ( ! $db_erg ) { die ('Ungültige Abfrage: ' . mysql_error()); } // Link zum Gästebuch echo '<p><a href="gaestebuch.php">Gästebuch anzeigen</a></p>'; exit; ?>
Ich hoffe ihr könnt mir helfen!
Vielen Dank und
beste Grüße,
Flo
Geändert von AmicaNoctis (11-10-2011 um 15:05 Uhr)
|

11-10-2011, 15:03
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
der PHP-Code zum Einfügen in die Datenbank wird immer ausgeführt. Oben hast du zwar eine Abfrage, ob in dem POST-Feld „beschreibung“ etwas drin steht, aber das Insert-Statement unten wird ohne Bedingung ausgeführt.
Niemals Anmeldedaten posten!!! Diesen Thread kann jeder im Internet lesen und dazu gehören auch Suchmaschinen! Ich hab die Daten maskiert.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (11-10-2011 um 15:13 Uhr)
|

11-10-2011, 15:36
|
|
flolicious86
Registrierter Benutzer
|
|
Registriert seit: Oct 2011
Beiträge: 3
|
|
Um Gottes willen vielen Dank! Da habe ich vor lauter Code gar nicht dran gedacht! Vielen Dank für's Entfernen!
Könntest du mir das noch ein klein wenig detaillierter erklären? Wäre super!
Ich habe mir den bisherigen Stand aus verschiedenen Foren und Hilfestellungen zusammengebaut, versteh es auch teilweise von der Logik. Aber aus deinem Post kann ich mir leider keinen weitere Lösungsweg bilden
|

11-10-2011, 19:37
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Dort wo der Kommentar steht, dass da der entsprechende PHP-Code rein soll, dort musst du den ganzen Insert-Code von unten einbauen. Denn der soll ja nur ausgeführt werden, wenn $_POST['beschreibung'] != "" zutrifft.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

12-10-2011, 09:30
|
|
flolicious86
Registrierter Benutzer
|
|
Registriert seit: Oct 2011
Beiträge: 3
|
|
Wow super! Genau das ware der Fehler. Nun funktioniert es einwandfrei!
Ich danke dir vielmals! Jetzt wo du es mir kurz erklärt hast, verstehe ich
es auch. Macht natürlich Sinn das dann Daten geschrieben werden sollen
bzw. ERST dann, wenn der Fall eintritt das das Feld ausgefüllt ist. Daher
auch logisch, dass er mir schon beim Öffnen der Seite einen leeren
Eintrag erstellt hat.
Bestens!  Danke!
Viele Grüße,
Florian
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|