Probleme mit Variablen

merti

Mitglied
Hallo und zwar PHP-Meldet bei diesem Source-Code das die Variablen bei ("INSERT INTO user SET ....='$firma',....='$titel', ..... usw) nicht deklariert wurden.
Und meine Frage ist, ich hab mir gedacht das man im PHP keine Variablen deklarieren braucht oder?

bedanke mich im Vorraus,

Merti

PHP:
<?
  include ("conn.php");



?>
<html>
<head>
<title></title>
</head>
<body>
<?

  mysql_query("INSERT INTO user SET Firma='$firma',Titel='$titel',Vorname='$vorname',Nachname='$nachname',Email='$email',Tel='$tel',Fax='$fax',Strasse='$strasse',Ort='$ort',Plz='$plz',PIN='$pin'");

?>
<form action="insert.php" method="post">
<input type="hidden" value="<?=$_POST['insert']?>" name="insert">
<table>
  <tr>
    <td>Firma</td>
    <td><input type="text" name="firma"</td>
  </tr>
  <tr>
    <td>Titel</td>
    <td><input type="text" name="titel"></td>
  </tr>
  <tr>
    <td>Vorname</td>
    <td><input type="text" name="vorname"></td>
  </tr>
  <tr>
    <td>Nachname</td>
    <td><input type="text" name="nachname"></td>
  </tr>
  <tr>
    <td>Email</td>
    <td><input type="text" name="email"></td>
  </tr>
  <tr>
    <td>Tel</td>
    <td><input type="text" name="tel"></td>
  </tr>
  <tr>
    <td>Fax</td>
    <td><input type="text" name="fax"></td>
  </tr>
  <tr>
    <td>Strasse</td>
    <td><input type="text" name="strasse"></td>
  </tr>
  <tr>
    <td>Ort</td>
    <td><input type="text" name="ort"></td>
    <td>Plz</td>
    <td><input type="text" name="plz" size=6></td>
  </tr>
  <tr>
    <td>PIN</td>
    <td><input type="password" name="pin"></td>
  </tr>
  <tr>
    <td><input type="submit" name="insert" value="speichern"></td>
    <td><input type="reset" value="löschen"></td>
  </tr>
</table>
</form>
</body>
</html>
 
Wenn du Daten über ein Formularfeld versendest und register_globals in der php.ini deaktiviert und das Errorlevel auf Error&Notice gesetzt ist, dann
müsstest du

A) $_POST['variablenname'] bzw. $_GET['variablenname'] statt einfach nur den
Variablennamen nehmen (http://de2.php.net/register_globals)

und

B) Die Variablen erstellen und auf leer setzten bzw. das Errorlevel in der php.ini
auf Error Ohne Notice setzen. (http://de2.php.net/errorfunc)
 
Hab den Source-Code jetzt so gemacht -- aber Funktioniert auch nicht!
Da steht immer noch "Notice: Undefined variable: firma in d:\sbx\merti\insert.php on line 14" usw ...
In der php.ini ist register_globals = Off eingestellt.

lg, Merti

PHP:
<?
  include ("conn.php");



?>
<html>
<head>
<title></title>
</head>
<body>
<?

  mysql_query("INSERT INTO user SET Firma='$firma',Titel='$titel',Vorname='$vorname',Nachname='$nachname',Email='$email',Tel='$tel',Fax='$fax',Strasse='$strasse',Ort='$ort',Plz='$plz',PIN='$pin'");

?>
<form action="insert.php" method="post">
<input type="hidden" value="<?=$_GET['insert']?>" name="insert">
<table>
  <tr>
    <td>Firma</td>
    <td><input type="text" name="<?=$_GET['firma']?>"</td>
  </tr>
  <tr>
    <td>Titel</td>
    <td><input type="text" name="<?=$_GET['titel']?>"></td>
  </tr>
  <tr>
    <td>Vorname</td>
    <td><input type="text" name="<?=$_GET['vorname']?>"></td>
  </tr>
  <tr>
    <td>Nachname</td>
    <td><input type="text" name="<?=$_GET['nachname']?>"></td>
  </tr>
  <tr>
    <td>Email</td>
    <td><input type="text" name="<?=$_GET['email']?>"></td>
  </tr>
  <tr>
    <td>Tel</td>
    <td><input type="text" name="<?=$_GET['tel']?>"></td>
  </tr>
  <tr>
    <td>Fax</td>
    <td><input type="text" name="<?=$_GET['fax']?>"></td>
  </tr>
  <tr>
    <td>Strasse</td>
    <td><input type="text" name="<?=$_GET['strasse']?>"></td>
  </tr>
  <tr>
    <td>Ort</td>
    <td><input type="text" name="<?=$_GET['ort']?>"></td>
    <td>Plz</td>
    <td><input type="text" name="<?=$_GET['plz']?>" size=6></td>
  </tr>
  <tr>
    <td>PIN</td>
    <td><input type="password" name="<?=$_GET['pin']?>"></td>
  </tr>
  <tr>
    <td><input type="submit" name="insert" value="speichern"></td>
    <td><input type="reset" value="löschen"></td>
  </tr>
</table>
</form>
</body>
</html>
 
Also

$_POST[] = Array für POST Methode über ein Forumlar
$_GET[] = Array für GET Methode

Und ist es so das die Namen der Inputs wirklich den Post Wert erhalten? Wenn ja sag mir doch bitte für was du es gebrauchen möchtest.

Wenn du nun als ein Formular über POST versendest, dann musst Du, sofern register_globals auf Off ist, was auch so gehört, die Daten wieder mit $_POST['varname'] auslesen andernfalls mit $_GET['varname'].

Gruß Mirko
 
Hi hab alle Variablen global im Source-Code definiert so:

$firma = " ";
$titel = " ";
usw ....

und im php.ini hab ich E_NOTICE aktiviert.
Es steht zwar nicht mehr der Fehler

Notice: Undefined variable: firma in d:\sbx\merti\insert.php on line 16

Notice: Undefined variable: titel in d:\sbx\merti\insert.php on line 16


aber da wird kein einziger Datensatz gespeichert auser der ID, woran liegt dass.

danke,

lg,

Merti
 
Das die Variablen nicht existieren. Hast Du dein Script mittlerweile umgeändert in
$_POST[] oder $_GET[]? Das MUSST Du machen wenn register_globals auf Off steht.

Gruß Mirk
 
Also der Gesamte Script sieht jetzt so aus:
Code:
<?
  include ("conn.php");





?>
<html>
<head>
<title></title>
</head>
<body>
<?

  mysql_query("INSERT INTO user SET Firma='$firma',Titel='$titel',Vorname='$vorname',Nachname='$nachname',Email='$email',Tel='$tel',Fax='$fax',Strasse='$strasse',Ort='$ort',Plz='$plz',PIN='$pin'");

?>
<form action="insert.php" method="POST">
<table>
  <tr>
    <td>Firma</td>
    <td><input type="text" name="<?=$_POST['firma']?>"</td>
  </tr>
  <tr>
    <td>Titel</td>
    <td><input type="text" name="<?=$_POST['titel']?>"></td>
  </tr>
  <tr>
    <td>Vorname</td>
    <td><input type="text" name="<?=$_POST['vorname']?>"></td>
  </tr>
  <tr>
    <td>Nachname</td>
    <td><input type="text" name="<?=$_POST['nachname']?>"></td>
  </tr>
  <tr>
    <td>Email</td>
    <td><input type="text" name="<?=$_POST['email']?>"></td>
  </tr>
  <tr>
    <td>Tel</td>
    <td><input type="text" name="<?=$_POST['tel']?>"></td>
  </tr>
  <tr>
    <td>Fax</td>
    <td><input type="text" name="<?=$_POST['fax']?>"></td>
  </tr>
  <tr>
    <td>Strasse</td>
    <td><input type="text" name="<?=$_POST['strasse']?>"></td>
  </tr>
  <tr>
    <td>Ort</td>
    <td><input type="text" name="<?=$_POST['ort']?>"></td>
    <td>Plz</td>
    <td><input type="text" name="<?=$_POST['plz']?>" size=6></td>
  </tr>
  <tr>
    <td>PIN</td>
    <td><input type="password" name="<?=$_POST['pin']?>"></td>
  </tr>
  <tr>
    <td><input type="submit" name="Submit" value="speichern"></td>
    <td><input type="reset" value="löschen"></td>
  </tr>
</table>
</form>
</body>
</html>
 
Du musst auch in deinen Query die Daten mit $_POST['varname'] eintragen.
Du musst auch lesen was wir schreiben. So schwer ist das doch nicht.

Gruß Mirko
 
Logisch denken und verstehen ist eine Kunst:

....INSERT INTO...Firma='$firma'...
...input type="text" name="<? echo $_POST['firma']; ?>...

Find den Unterschied ;) (hört sich an wie "Fang das Stöckchen" ;))
 
Zurück