php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Was mache ich falsch :-(


 
BackBone
05-02-2003, 18:17 
 
hallo.....

hab hier ein Eingabeformular das wie folgt auschaut:


<html>
<!-- Creation date: 05.02.2003 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>LEIHGABE</title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="hellspawn">
<meta name="generator" content="">
</head>
<body>
<form action="input.php" method="post">
Modellbezeichnung: <input type="text" name="modell" size="15" maxlength="256" style="position: absolute; left:150px;">

<div style="position: absolute; left:275px">X</div>

<input type="text" name="anzahl" size="2" style="position: absolute; left:300px;"> </br></br>

Seriennummer<input type="text" name="seriennummer" size="10" style="position: absolute; left:150px;"> </br></br>

Name : <input type="text" name="besitzer" size="20" style="position: absolute; left:150px";></br></br>

Leihdatum: <input type="text" name="leihdatum" size="10" style="position: absolute; left:150px";></br></br>

Voraus. Rückgabe: <input type="text" name="vorrueckgabe" size="10" style="position: absolute; left:150px";></br></br>

Rückgabe: <input type="text" name="rueckgabe" size="10" style="position: absolute; left:150px";></br></br>

Sachbearbeiter: <input type="text" name="bearbeiter" size="10" style="position: absolute; left:150px";></br></br>

Bemerkung: <textarea name="bemerkung" cols="30" rows="9"style="position: absolute; left:150px">
</textarea>

<input type="submit" value="Speichern" style="position: absolute; left:150px; top:450px;">
<!-- input type="submit" value="Datensatz suchen" style="position: absolute; left:250px; top:450px;"> -->
</form>
</body>
</html>




Sobald ich den Speicherbutton betätige soll er alle eingegebenen Daten in die Datenbank (MySQL) einfügen. Die .php datei sieht so aus:


<html>
<!-- Creation date: 05.02.2003 -->
<head>
<title></title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="hellspawn">
<meta name="generator" content="">
</head>
<body>
<?php

$link=mysql_connect("","","");
if ($link)
{ echo "Verbunden";}
else
{echo "nicht verbunden";};

mysql_select_db("support",$link);


$sql = "insert into leihen (leiher,model,bearbeiter,bemerkung,leihdatum,rueckgabe,vorrueckgabe,seriennumer,anzahl)
values ('$besitzer', '$modell', '$bearbeiter', '$bemerkung', '$leihdatum', '$rueckgabe', '$vorrueckgabe', '$seriennummer', '$anzahl' )";
?>
</body>
</html>


aber wenn ich die Speicherbutton anklicke bekomme ich folgede Fehlermeldungen:

Notice: Undefined variable: besitzer in d:\support\input.php on line 23

Notice: Undefined variable: modell in d:\support\input.php on line 23

Notice: Undefined variable: bearbeiter in d:\support\input.php on line 23

Notice: Undefined variable: bemerkung in d:\support\input.php on line 23

Notice: Undefined variable: leihdatum in d:\support\input.php on line 23

Notice: Undefined variable: rueckgabe in d:\support\input.php on line 23

Notice: Undefined variable: vorrueckgabe in d:\support\input.php on line 23

Notice: Undefined variable: seriennummer in d:\support\input.php on line 23

Notice: Undefined variable: anzahl in d:\support\input.php on line 23


Kann mir da jemand weiterhelfen?? Komme einfach nicht weiter :-(
Bedanke mich im voraus!!

 
mrhappiness
05-02-2003, 18:20 
 
register_globals?

lösung: $_POST['seriennummer']

etwas weniger quellcode, dafür in den entsprechenden tags hätte es aber auch getan, das liest sich eh keiner wirklich durch (mich eingeschlossen)

 
BackBone
05-02-2003, 18:23 
 
hm.....
muss dazu sagen das ich "anfänger" bin. Leider sagt mir deine Antwort nix!
Was bedeutet das nun und wie kann ich mein Problem beheben??

thx

 
mrhappiness
05-02-2003, 18:25 
 
vielleicht, dass du statt $seriennummer $_POST['seriennummer'] verwenden sollst? ;)

 
mukraker
05-02-2003, 19:19 
 
ich bin anfänger deshalb versuche ich das mal zu erklären!
hoffe es das stimmt

du hast ja dein html formular. mit "POST" versendet!!
<input type...... name="seriennummer"...>
// das hier "seriennummer wird zur variable
// $seriennummer

da du diese "variable" ja POSTest und zwar an name.php
musst name.php ja irgendwie wissen was $seriennummer ist, und wo es herkommt. und da es diese var. in name.php noch gar nicht definiert ist

deshalb macht man das in php so
$_POST['seriennummer'] // halt wie beim array
$seriennummer = $_POST['seriennummer'] // um das nen bissle ordentlicher zu haben

und dann kannste ganz normal
$sql = "insert into leihen (leiher,model,bearbeiter,bemerkung,leihdatum,rueckgabe,vorrueckgabe,seriennumer,anzahl)
values ('$besitzer', '$modell', '$bearbeiter', '$bemerkung', '$leihdatum', '$rueckgabe', '$vorrueckgabe', '$seriennummer', '$anzahl' )";
?>

 
BackBone
06-02-2003, 18:16 
 
Aber dann frage ich mich warum das nicht in meinem MySQL&PHP Buch beschrieben ist.

Zumindest steht da nix mit $_POST['seriennummer']
Oder ist das eine version bedingt?

 
mrhappiness
06-02-2003, 20:50 
 
weil dein buch alt ist?

früher ging es so wie du's probiert hast.
jetzt geht's auch, aber nur wenn register_globals den richtigen (falschen :)) wert hat

es macht die sache zwar auf den ersten blick besser, aber auch unsicherer. das ganze gilt ja nicht nur für POST und GET sondern auch für SESSION

stell dir vor, du arbeitest mit sessions und speicherst in der session irgendwo logged_in=1

du kannst jetzt so prüfen: if ($_SESSION['logged_in']==1)

oder

if($logged_in==1)wenn du letztere möglichkeit nimmst, und eine seite, die nur erreichbar sein soll, wenn der user eingeloggt is, so aufgerufen wird (in der adressleiste) www.domain.tls/geheim.php?logged_in=1 hast du verloren, da du ja logged_in mit wert 1 als parameter übergibst, deine session-variable also überschrieben wird.

beim oberen fall passiert dir das nich

 
BackBone
07-02-2003, 17:25 
 
hm.....ok hab´s geändert. Jetzt kommt auch kein Fehler. Aber die Daten werden nicht in die Datenbank eingefügt. :-(
Was mache ich denn nun falsch???

PS: das Buch ist net alt! Ist vom Juni-2002 ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:51 Uhr.