PDA

Vollstndige Version anzeigen : Insert funktioniert nicht


abele
07-08-2004, 01:42
Ich mchte gerne per Formular Daten in meine mysql-Datenbank eintragen. Leider funktioniert es nicht, egal was ich versuche.

Hier mal der Code:

<?php
$server = "";
$user = "";
$pass = "";
$db = "";
$dbh = mysql_pconnect($server, $user, $pass);
if($dbh) {echo "mysql-Verbindung erfolgreich!";}

?> Das funktioniert!!!


<html>
<head>
<title>Neuer Eintrag in unser GB</title>
</head>
<body>
<form action="<?php echo $PHP_SELF ?>" method="post" name="kurse">
Kursname:
<input type="text" name="kursname" size="30" maxlength="100">
<br>
Beschreibung:<br>
<textarea rows="10" cols="50" wrap="virtual" name="beschreibung">
</textarea>
<br>
<input type="submit" name="submit" value="submit">

</body>
</html>

<?
if($submit) //ueberprueft ob der submit button gedrckt wurde
{ //Wenn ja dann daten in den guestbook table eintragen

$kursname = addslashes($kursname); //Zeichen die im Programm Probleme verursachen knnten in PHP Spezialzeichen umwandeln
$beschreibung = addslashes($beschreibung); // -"-

$sqlkommando = "INSERT INTO kurse (kursname, beschreibung) VALUES ('$kursname', '$beschreibung')";
// Auf gut deutsch: Fge 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 hinzugefgt"; // Besttigung ausgeben
}

?>


Eine Datenbankauslese habe ich schon erstellt. Das klappt.

Wenn ich hier auf absenden gehe ist das Formular wieder leer und in der Adresszeile sind die bergabedaten angehngt. Schaue ich jedoch in meine Datenbank ist dort kein neuer Eintrag zu finden. Es erscheint auch keine Fehlermeldung und natrlich auch nicht die Meldung Eintragung erfolgreich hinzugefgt, sondern nur die Meldung, das die Datenbankkonnektion funktioniert hat. Ich habe es nun schon auf mehrere Arten versucht, immer mit dem selben Resultat.

Vielleicht kann mir ja jemand weiterhelfen.

Danke Tanja

feuervogel
07-08-2004, 01:58
willkommen im forum!

1. darfst auch du die [ php ] - tags des board benutzen um php-code einzufrben.
2. wenn du ein problem mit mysql hast, poste bitte im mysql-forum.

mir scheint das aber kein problem mit mysql zu sein, sondern ich zitiere einfach mal c4:


Mit Version 4.1 wurde in PHP ein neues Sicherheitskonzept eingefhrt, welches seit Version 4.2 standardmig aktiviert ist. Seit dem muss man alle bergebenen Variablen mit
$_GET['variable'] - fr Urlparameter
$_POST['variable'] - fr mit method=post versendete Parameter
$_COOKIE['variable'] - fr Cookies
$_REQUEST['variable'] - $_POST, $_GET und $_COOKIE zusammen
$_FILES['variable'] - fr hochgeladene Dateien
$_SERVER['variable'] - fr Servervariablen (z.B. $_SERVER['PHP_SELF'])
$_ENV['variable'] - fr Umgebungsvariablen
ansprechen. Also ehemals $str mit $_GET['str']
Oder Du setzt in der php.ini register_globals auf on. Davon rate ich aber ab.


das hab ich aber schon mal gepostet (http://www.selfphp.com/forum/showthread.php?s=&threadid=8195)

abele
07-08-2004, 02:19
Das hilft mir leider nicht besonders weiter. Ich habe $_POST['PHP_SELF] eingefgt. ndert aber auch nichts

xabbuh
07-08-2004, 09:35
Original geschrieben von abele
Das hilft mir leider nicht besonders weiter. Ich habe $_POST['PHP_SELF] eingefgt. ndert aber auch nichts

Du hast feuervogels Post nicht ganz verstanden. So wre es richtig:


<html>
<head>
<title>Neuer Eintrag in unser GB</title>
</head>

<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="kurse">
Kursname:
<input type="text" name="kursname" size="30" maxlength="100">
<br>
Beschreibung:<br>
<textarea rows="10" cols="50" wrap="virtual" name="beschreibung">
</textarea>
<br>
<input type="submit" name="submit" value="submit">
</form>

</body>
</html>

<?
if($_POST['submit']) {

$kursname = addslashes($_POST['kursname']);
$beschreibung = addslashes($_POST['beschreibung']);

$sqlkommando = "INSERT INTO kurse (kursname, beschreibung) VALUES ('$kursname', '$beschreibung')";

mysql_query($sqlkommando) or die("Error: " . mysql_error());

echo "Eintragung erfolgreich hinzugefgt"; // Besttigung ausgeben
}
?>

abele
08-08-2004, 14:55
Das hat mir wirklich suppi weitergeholfen. Das Wochenende ist gerettet! Vielen Dank.