"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

php, forms und $_POST

flocky 16.11.2003 - 03:05 2225 20
Posts

flocky

sn0wner (analphabet)
Avatar
Registered: May 2002
Location: life-compiler
Posts: 1663
ich hab den unten stehenden code und möchte mit der form den eingegebenen wert von der text-box als post-variable weitergeben, aber anscheinend funzts nicht, was mach ich falsch?

Code:
<html>
<body>
<?php
echo "<form name=dbnameform action=createdb2.php method=post>";
echo "<input type=text name=dbinput>";
echo "<input type=submit value=\"Datenbank erstellen\">";
echo "</form>";
?>
<?php
 $connection = mysql_connect("localhost","flocky","")
 or die("Verbindung fehlgeschlagen:".mysql_error());
 echo "s0xessfullY connected";
 echo "<br>";
 
 if($_POST['dbinput'] == '')
 {
 	echo "schass :-/";
 	echo "<br>";
 }
 else
 {
 	$_POST['dbinput'] = $dbname;
 	echo $dbname;
 }
 //$dbname = "oaschloch";
 $create = mysql_create_db($dbname);
 if($create)
 {
 	echo "db s0xessfullY created :]";
 }
 else
 {
 	echo "db creating failed >:[";
 }
 echo "<br>";
 
 $fuckdb = mysql_drop_db($dbname);
 if($fuckdb)
 {
 	echo "db s0xessfullY fucked >:]";
 }
 else
 {
 	echo "db fucking failed >:[";
 }
 echo "<br>";
 
 $listdbs = mysql_list_dbs($connection);
 if($listdbs)
 {
 	echo "<br>";
 	echo "<u>db's @ localhost:</u>";
 	echo "<br>";
 	while($showdbs = mysql_fetch_object($listdbs))
 	{
 	echo $showdbs -> Database . "\n";
 	echo "<br>";
 	}
 }
 else
 {
 	echo "listing fehlgeschlagen >:[";
 }
 mysql_close($connection);
?>
</body>
</html>

ausgabe:
Code:
s0xessfullY connected
db creating failed >:[
db fucking failed >:[

db's @ localhost:
mysql 
test 

also anscheinend dürfte $_POST["dbinput"] ned leer sein, sonst würd er schass ausgeben, aber ausgeben tut er den wert davon auch ned :confused:

funka

Legend
ex-prophet(down below)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
muahaah der boeseste zynismus seit langem
genial :D

flocky

sn0wner (analphabet)
Avatar
Registered: May 2002
Location: life-compiler
Posts: 1663
mist :p
falsches forum, hab gar ned aufpasst wo das landet :rolleyes: moven plz

allerdings... wenn gefällt... :D

funka

Legend
ex-prophet(down below)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
:(

funka

Legend
ex-prophet(down below)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
moved.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
Zitat
Code:
 if($_POST['dbinput'] == '')
 {
 	echo "schass :-/";
 	echo "<br>";
 }
 else
 {
 	$_POST['dbinput'] = $dbname;
 	echo $dbname;
 }

sieht sehr verdächtig aus...
bevor ich da eine seitenlange abhandlung schreibe, was der unterschied zwischen dem ist, was du gemeint haben könntest, und was du hier geschrieben hast, schau es dir doch selber nochmal an.
hinweise: eine nichtgesetzte variable ist nicht automatisch '', und wenn sie doch gesetzt ist, überschreiben wir sie mit $dbname ?

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
ich lös auf!
Code:
if(empty($_POST['dbinput']))
{
 echo "schass :-/";
 echo "<br>";
}
else
{
 $_POST['dbinput'] = $dbname;
 echo $dbname;
}

have fun :D

btw, isset geht a ned weil jede var die mit post übergeben wird autom. gesetzt ist (as atrox said)

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
Zitat
Code:
else
{
 $_POST['dbinput'] = $dbname;
 echo $dbname;
}
trotzdem darf man im else zweig nicht einfach die frisch erhaltene variable überschreiben.

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
argl das hab ich ja ganz übersehen :)
$dbname =$_POST['dbinput'] muss das natürlich heissn :)

Snoop

Here to stay
Registered: Jun 2002
Location: Gablitz
Posts: 1088
viel interessanter is, dass er im html tag nicht die " " macht, und deswegen der browser eigentlich das wort dbinput parsen müsste, daher wirds wahrscheinlich auch die var net geben

2. wurde der andere fehler schon angegeben

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
aja eines noch: gib deinen vars gscheite namen! 1. wirks ned so peinlich und 2. wirds dich GEWALTIG zerlegn falls du in nem monat an dem script weiterschreibst

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
das nicht verwenden von anführungszeichen " ist zwar nicht zeitgemäß, wurde aber von früheren HTML-Standards erlaubt und von den browsern daher auch noch verstanden. dbinput ist imho kein problem, da beim html-attribut nach dem = genau ein wort erwartet wird. ausserdem werden die parser nicht willkürlich im wort ein anderes tag zu suchen beginnen, sonst dürftest ja gar kein b i p u ..usw verwenden.

flocky

sn0wner (analphabet)
Avatar
Registered: May 2002
Location: life-compiler
Posts: 1663
ua :verwirrt: :D
ich hab die if-abfrage für die $_POST-variable nur gemacht damit ich sicher sein kann ob der syntax richtig is...
und ich hab immer gedacht x = y is das selbe wie y = x :eek:
habs jetz umgestellt und jetz funzts :cool:

danke an alle

² semteX

was meinst mit den variablen? welche sind da ned übersichtlich? und naja ich hab erst letzte woche mit php und mysql angefangen, das is auch mein erstes script :D

edit: eine frage noch: was bedeutet in der zeile echo $showdbs -> Database . "\n"; das Database? is das eine konstante oder was is das? :confused: das is die einzige zeile die ich bis jetz noch nicht verstehe und ich hasse sowas :rolleyes: und wenn ich das richtig verstanden habe dann schreibt der pfeil -> die eigenschaften des objekts $showdbs in Database oder so?
Bearbeitet von flocky am 16.11.2003, 20:03

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
das gilt bei vergleichen... a == b ist das gleiche wie b == a

bei zuweisungen muß es eine quelle und ein ziel geben... und die wurden in den meisten prozeduralen dritt-generations sprachen so definiert: Quelle <- Ziel

"<-" ist in pascal und modula := während es in c, php, java und perl = ist.

flocky

sn0wner (analphabet)
Avatar
Registered: May 2002
Location: life-compiler
Posts: 1663
also ist der -> eine zuweisung und das selbe wie = ?

edit: übrigens funktionert das mit dem '' vergleich, wenn ich submitte ohne einen namen angegeben zu haben kommt schass :D
Bearbeitet von flocky am 16.11.2003, 20:09
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz