daniel: variablenübergabe von html in php

hallo zusammen,

beschäftige mich erst seit kurzem mit php und habe nun vesucht ein beispiel durchzuführen, welches ich in einem buch gefunden habe. meine intention ist es, eingabewerte in einer html datei per php in eine datenbank zu übertragen. jedoch klappt das nicht. die html-seite übergibt die inhalte der eingabe-tags nicht an das php weiter, sondern nur leere werte! hänge mal den quelltext der html und der php-datei bei! danke für eure hilfe,
daniel

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

<body>
<form action='eingabe.php' method='post'>
<pre>
isbn:    <input type='text name='isbn' size='13' maxlength='13'>
autor:    <input type='text name='autor' size='10' maxlength='10'>
titel:    <input type='text name='titel' size='20' maxlength='20'>
verlagsnummer:   <input type='text name='verlagsnr' size='5' maxlength='5'>
</pre>
<input type='submit' value='einfuegen'>
<input type='reset' value='zuruecksetzen'>
</form>
</body>
</html>

php:

<html>
<head>
<title>eingabe-php</title>
</head>
<body>
<?php
include("connect.php");
//connect.php funktioniert, habe ich getestet!
echo $isbn;
echo $autor;
$anfrage="insert into buch (isbn, autor, titel, verlagsnr) values ('$isbn', '$autor', '$titel', '$verlagsnr')";

if ($ergebnis=mysql_query($anfrage))
 {echo "datensatz eingefuegt";}

else
 {echo "fehlermeldung: ".mysql_error();};
mysql_close($link);
?>
</body>
</html>

  1. Hallo

    Versuch mal im eingabe.php vor dem folgenden codeteil das array $HTTP_POST_VARS auszulesen.
    z.B.

    $isbn = HTTP_POST_VARS['isbn'];

    Gruss
    MIKE

    echo $isbn;
    echo $autor;
    $anfrage="insert into buch (isbn, autor, titel, verlagsnr) values ('$isbn', '$autor', '$titel', '$verlagsnr')";

    if ($ergebnis=mysql_query($anfrage))
     {echo "datensatz eingefuegt";}

    else
     {echo "fehlermeldung: ".mysql_error();};
    mysql_close($link);
    ?>
    </body>
    </html>

  2. hi,

    die html-seite übergibt die inhalte der eingabe-tags nicht an das php weiter, sondern nur leere werte!

    echo $isbn;

    dann ist wahrscheinlich bei dir register_globals auf off gestellt.

    dann musst du mit $_POST['isbn'] auf den wert zugreifen, bzw. $_GET['isbn'] bei einem GET-formular.

    sieh dir auch mal http://www.php.net/manual/de/language.variables.predefined.php an, da wird die sache genauer erklärt.

    gruss,
    wahsaga

    1. hey, danke erstmal für die schnellen antworten.
      also das große problem ist wohl hier:

      $anfrage="insert into buch (isbn, autor, titel, verlagsnr) values ('$isbn', '$autor', '$titel', '$verlagsnr')";

      if ($ergebnis=mysql_query($anfrage))
       {echo "datensatz eingefuegt";}

      und habe ich auch mit euren ansätzen nicht lösen können!

      1. hi,

        $anfrage="insert into buch (isbn, autor, titel, verlagsnr) values ('$isbn', '$autor', '$titel', '$verlagsnr')";

        und habe ich auch mit euren ansätzen nicht lösen können!

        ich habe dir gesagt, dass du für den fall, dass register_globals auf off gestellt ist (überprüft? phpinfo() ausgeben lassen), statt $isbn $_POST['isbn'] verwenden sollst.

        das sehe ich aber in deinem obigen code nicht - also hast du den vorschlag offensichtlich gar nicht ausprobiert?

        gruss,
        wahsaga

        1. hey,
          doch habe ich ausprobiert, jedoch noch die alter version hin geschrieben. sorry. die register_globals sind auf off!
          also, wenn ich es folgendermaßen schreibe:

          $anfrage="insert into buch (isbn, autor, titel, verlagsnr) values ('$_POST['isbn']', '$_POST['autor']', '$_POST['titel']', '$_POST['verlagsnr']')";

          if ($ergebnis=mysql_query($anfrage))
           {echo "datensatz eingefuegt";}

          bekomme ich folgende fehlermeldung:

          Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

          danke für deine hilfe!
          daniel

          1. $anfrage="insert into buch (isbn, autor, titel, verlagsnr) values ('$_POST['isbn']', '$_POST['autor']', '$_POST['titel']', '$_POST['verlagsnr']')";

            Hallo Daniel,

            ich habe den Fehler gefunden. Du kannst Werte von assoziativen Arrays nicht so übergeben. Ich würde folgendes vorschlagen.

            $anfrage="insert into buch (isbn, autor, titel, verlagsnr) values
            ('".$_POST["isbn"]."', '".$_POST["autor"]."', '".$_POST["titel"].
            "', '".$_POST["verlagsnr"]."')";

            $erg=mysql_query($anfrage) or die("<pre>".htmlspecialchars($anfrage).
            "</pre>".mysql_error());

            print "Ja, wie schön, dass der Datensatz auch schon eingefügt ist!";

            Grüße,

            Wolfram

            1. hey Wolfram,

              vielen dank für die hilfe! nachdem ich deine schrift übernommen habe, und im html noch ein paar kleine fehler ausgebesser habe, funtioniert es!!!! vielen vielen dank!

              daniel