Seite 1 von 2

Variable wird bei Submit gelöscht!

Verfasst: 07.01.2004 18:39
von Ulf
Hallo liebe Coding-freunde,
ich hab hier ein Problem:
ich übermittlie ind er URL die Variable thradid
z.B. http://localhost/forumindex.php?threadid=2
die muss dann, wenn Submit gedrückt wurde in die Datenbank geschrieben werden. Die wird nach dem Submit aber wieder gelöscht! Das heißt, sie existiert nicht mehr und kann nicht mehr in die DB geschrieben werden.

Code: Alles auswählen

<html>
<head>
<title></title>
</head>

<form action="<? php echo $SELF_PHP ?>" method="post">
<table rules="none" frame="void">
<tr><td>Name: </td><td><input type="text" name="autor" size="30"></td></tr>
<tr><td>Name des Themas: </td><td><input type="text" name="thread_name" size="30"></td></tr>
</table><br><br><center>

<textarea name="text" cols="45" rows="13"></textarea>
<br><br>
<input type="submit" name="submit" value=" Fertig ">

</form></center><br><br>
</body>
</html>

<?php
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////

if(isset($_GET['threadid']))
{
include ("include/mysql_connect.php");
	
	$null=0;

	$eintrag = "INSERT INTO posts (post_id, thread_id, user_id, text, datum) VALUES ('$null', '$threadid', '$null', '$null', '$null')";
	if($eintragen = mysql_query($eintrag))
	echo "Post wurde erstellt!";
}
else echo "Fehler! Variable threadid ist nicht definiert!";
?>
das ist der Code, hab nen bissl was rasugelasse. Da dürfte aber alles stimmen, er macht ja auch alles richtig, bis auf die eine variable. sonst geht alles!
wisst ihr, was ich falsch mache?

Verfasst: 07.01.2004 18:45
von 18inch
Hallo,
ich bin auch kein PHP Profi, aber im Formular benutzt du POST:

Code: Alles auswählen

<form action="<? php echo $SELF_PHP ?>" method="post"> 
Und hinterher bei der isset-Abfrage benutzt du $_GET['xxx'].
Benutzte anstelle von $_GET['xxx'] einfach $_POST['xxx'].
Dann müsste es eigentlich funktionieren.

Verfasst: 07.01.2004 18:58
von Ulf
also die variable erkennt der ja, aber nur eben bis ich submit drücke, aba ich probiers mal aus. Dabnke schonmal!

Verfasst: 07.01.2004 19:05
von 18inch
Mit deinem Formular übergibst du doch nur: $autor, $$thread_name und $text.
Wieso machst du dann eigentlich if(isset($_GET['threadid'])). Du weist dieser Variablen doch gar keinen Wert zu, oder habe ich was überlesen?

Verfasst: 07.01.2004 19:28
von Ulf
der Wert der variable steht jin der URL:
http://blabla?threadid=2
dann ist $threadid gleich 2!

Re: Variable wird bei Submit gelöscht!

Verfasst: 07.01.2004 19:34
von jasc

Code: Alles auswählen

	if($eintragen = mysql_query($eintrag))
Bin mir grad nicht ganz sicher, aber müsste da nicht == stehen?

Verfasst: 07.01.2004 19:40
von 18inch
jo stimmt.
Habe ich überlesen.

Die Abfrage if($eintragen = mysql_query($eintrag)) ist immer TRUE da du $eintrgagen etwas zuweist und nicht mit der query vergleichst.
Deswegen kommt auch immer Post wurde erstellt, oder??
Ist das so gewollt?? Ich glaube nicht, oder?? Benutze lieber "==".

Aber wieso das mit deiner Variable nicht klappt weiß ich auch nicht.

Allerdings verstehe ich nicht wieso du das ganze über die Variable threadid prüfst. Du übergibst diese schon in der Adresse, somit wird direkt schon ein Post kreiert. Und wenn du dann auf "Fertig" klickst, dann wird nochmal ein Post kreiert. Wieso??

Verfasst: 07.01.2004 20:05
von Ulf
18inch hat geschrieben:jo stimmt.
Habe ich überlesen.

Die Abfrage if($eintragen = mysql_query($eintrag)) ist immer TRUE da du $eintrgagen etwas zuweist und nicht mit der query vergleichst.
Deswegen kommt auch immer Post wurde erstellt, oder??
Ist das so gewollt?? Ich glaube nicht, oder?? Benutze lieber "==".

Aber wieso das mit deiner Variable nicht klappt weiß ich auch nicht.

Allerdings verstehe ich nicht wieso du das ganze über die Variable threadid prüfst. Du übergibst diese schon in der Adresse, somit wird direkt schon ein Post kreiert. Und wenn du dann auf "Fertig" klickst, dann wird nochmal ein Post kreiert. Wieso??
Ja, das war ein Versuch, es würde dann davor noch geprüft werden, ob alle Feldervariablen definiert sind, bzw. existieren.
Wenn man den Code ausführt, wird zu Beginn der Post in die DB geschrieben, dabei wird die $themenid richtig in die DB geschrieben. Nach ich Submit gedrückt habe, und somit die anderen Felder asugefüllt habe, existiert die variable nicht mehr! Und das ist das, was ich nicht verstehe!

Verfasst: 07.01.2004 20:24
von itst
Ein Formular überträgt nur die Daten, die _im Formular_ definiert werden, keine URL-Variablen.

http://www.dclp-faq.de/q/q-formular-variablen.html

Verfasst: 07.01.2004 21:04
von Pyramide
18inch hat geschrieben:Die Abfrage if($eintragen = mysql_query($eintrag)) ist immer TRUE
Falsch. Bei dieser Schreibweise wird der Rückgabewert von mysql_query sowohl der Variable $eintragen zugewiesen als auch als Bedingung für den if-Block genutzt. Wenn also mysql_query false zurückgibt, wird der if-Block nicht abgearbeitet.