Kann aus MySQL lesen aber nicht schreiben

SlowMoe

Grünschnabel
Hi,

ist schon etwas her das ich hier im Forum war. Ich habe natürlich auch die Suchfunktion beansprucht, aber es klappt einfach noch nich. Zu meinem Problem:

Ich habe auf einem Rechner Ubuntu Linux und WinXP SP2 installiert. Beide mit Apache 2, MySQL und PHP4 bzw. auf dem XP die 5er Version.
Ich habe nun also versucht das Kunden-Datenbank Script von Thomas Schröder (Link http://www.dynamicwebpages.de/50.tutorials.php?dwp_tutorialID=8&partNo=4 ) zum Laufen zu bringen. Die Datenbank mit der entsprechenden Tabelle habe ich natürlich erstellt.

Nun zum eigentlichen Problem: wenn ich die eintragen.php aufrufe und ein paar Daten eingebe, wird nicht angezeigt "Daten gespeichert", sondern das Formular erschneit einfach wieder leer, es erscheint keine Fehlermeldung und in der Datenbank wird auch nichts gespeichert.
Wenn ich allerdings die Datenbank von Hand oder über phpmyadmin fülle, kann ich sie mit der ausgabe.php anzeigen lassen. Bei Linux und Windows das gleiche Problem.
WENN ich allerdings das ganze z.B. auf funpics.de laufen lasse klappt's!!

PHP:
<?
if ($submit) {
$db = mysql_connect("localhost","root","rootpassword");
mysql_select_db("kundendb",$db);
$sql = "INSERT INTO kunden (vorname,name,anr,email,tel,mob,str,hnr,plz,ort) VALUES ('$vorname','$name','$anr','$email','$tel','$mob','$str','$hnr','$plz','$ort')";
$result = mysql_query($sql,$db);
echo "Kundendaten erfolgreich gespeichert ! <br><br> </font>";
}
else {
?>

Gibt es vielleicht eine bestimmte Einstellung beim Apache? Oder beim SQL-Server? Und wie kann ich evtl. SQL-Fehler ausgeben lassen? var_dump($sql); ? Bin wirklich für alle Vorschläge dankbar, denn so langsam gehen mir die Ideen aus ;)
 
PHP:
<?
if ($submit) {
$db = mysql_connect("localhost","root","rootpassword");
mysql_select_db("kundendb",$db);
$sql = "INSERT INTO kunden (vorname,name,anr,email,tel,mob,str,hnr,plz,ort) VALUES ('$vorname','$name','$anr','$email','$tel','$mob','$str','$hnr','$plz','$ort')";
$result = mysql_query($sql,$db);
if($result) echo "Kundendaten erfolgreich gespeichert ! <br><br> </font>";
else echo mysql_error();
}
else {
?>

Versuchs mal so.
Wie du bereits ahnst, ist mysql_error() die Funktion die du suchst ;)
 
Also so wie ich den Codeschnippsel seh ist das Script für register-globals = on. Dies ist aber bei neuen php-Versionen auf off.
Probier mal anstatt:
PHP:
if ($submit)
das hier:
PHP:
if($_GET['submit']
bzw.
PHP:
if($_POST['submit']
(abhängig davon wie du die Daten an das Script übergibst.)
 
Hallo!

Wenn ich schon den Anfang vom Code sehe.....
PHP:
"<td><a href="<? echo ''.$PHP_SELF.'?edit='.$daten[id].'' ?>">bearbeiten</a></td>"
dann würde ich sagen dass Du register_globals=OFF eingestellt hast.
Da immer mehr Hoster register_globals=OFF einstellen, würde ich Dir raten das Script entsprechend mit Superglobalen Variablen umzuändern.
So wird z.b. $PHP_SELF zu $_SERVER['PHP_SELF'].
$edit wird zu $_GET['edit'], $submit wird zu $_POST['submit']..... usw.

Du findest hier genug Beiträge zum Thema register_globals.

Gruss Dr Dau

[edit]
Kann zwar sein dass funpic.de noch register_globals=ON eingestellt hat, jedoch wurde bereits angekündigt dass dieses geändert werden soll.
[/edit]
 
Zuletzt bearbeitet:
Ahhhh *applaus*

vielen vielen Dank. Natürlich war register_globals = OFF. Ich bring mir php grad selbst bei und so kleiner Schnipsel haben eigentlich ganz gut funktioniert, nur jetzt eben mit dem Copy&Paste Verfahren, bin ich wohl auf die Nase gefallen.

Ihr habt mir Super geholfen und nochmals vielen Dank.*thumbs up*
 
Zurück