Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Hilfe mit Form und Variablen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Hilfe mit Form und Variablen


 
Toniv
18-04-2003, 15:01 
 
Hallo,
um PHP4 zu lernen habe ich mir einige Beispielscripte aus dem Inernet geholt, aber diese funktioneren alle nicht.
Wenn ich mit submit eine Form absende , mit action=< php script>
so sind die Variablen im aufgerufenen script unbekannt.
Beispiel :
php1.php

<?php
$arraydata = array("peru","machu picchu","maca","los incas","greit");

echo "<form name=\"form\" action=\"pag2.php\" method=\"post\">";
for ($lo=0;$lo<5;$lo++) {
echo "<input type=\"hidden\" name=\"opcion[$lo>]\" value=\"$arraydata[$lo]\">";
}
echo "<input type=\"submit\" name=\"enviar\">";
echo "</form>";
/********************************************/
?>

page2.php

<?php
for ($lo=0;$lo<sizeof($opcion);$lo++) {
echo "word $opcion[$lo]";
}
?>

Notice: Undefined variable: opcion in i:\avs-web\pag2.php on line 2

Benutze PHP4 und Apache Webserver 1.3

was ist der Grund ?

Bin für jede Antwort dankbar


Gruß

Toni

 
Damian1984
18-04-2003, 15:06 
 
holst du dir die Variablen per $_POST?

 
Toniv
18-04-2003, 15:13 
 
Hallo Damian,
lau ator sollten die beiden Seiten so funktionieren.
Habe uach schon versucht die variablen mit $_POST[$variable]
auszugeben, das resultat ist $variable unbekannt.
Auch andere Scripts aus dem Tutorial funktionieren nicht,
$PHP_SELF wird auch als unbekannt angemotzt.
Kann das an der Konfiguration von Apache liegen ?
Gruß
Toni

 
mrhappiness
18-04-2003, 15:19 
 
Original geschrieben von Toniv
opcion[$lo>]könnte es an dem größer-zeichen liegen?

die variable heißt ja, so wie du sie nennst nicht opcion[1] sondern opcion[1>]
mach in der page2.php mal einfach das hier und schau dir an was rauskommt<?php
print_r($_POST);
?>

 
BlobBanana
18-04-2003, 15:20 
 
Wenn du das in deinem Form hast:


echo "<form name=\"form\" action=\"pag2.php\" method=\"post\">";
for ($lo=0;$lo<5;$lo++) {
echo "<input type=\"hidden\" name=\"opcion[$lo>]\" value=\"$arraydata[$lo]\">";
}
echo "<input type=\"submit\" name=\"enviar\">";
echo "</form>";


dann kommst du so an die Vars ran:


$opcion[0] = $_POST['opcion[0]']; // EDIT: hatte ci verdreht
// usw ...


Und $PHP_SELF kriegst du ueber $_SERVER['PHP_SELF']

Und das alles liegt an Register_globals = Off in der php.ini ...

Und dies wurde wiederrum hier alles schon ca 20 mal erklaert ... :teach:


In dem Formular oben sieht das opcion[$lo>] mehr nach nem Tippfehler aus, oder?

 
Damian1984
18-04-2003, 15:21 
 
<?php
$arraydata = array("peru","machu picchu","maca","los incas","greit");

echo "<form name=\"form\" action=\"pag2.php\" method=\"post\">";
for ($lo=0;$lo<5;$lo++) {
echo "<input type=\"hidden\" name=\"opcion[".$lo."]\" value=\"$arraydata[$lo]\">"; // hier hab ich lo ind ".$lo." umgewandelt ;)
}
echo "<input type=\"submit\" name=\"enviar\">";
echo "</form>";
/********************************************/
?>

so klappt das bei mir vorzüglich!

 
mrhappiness
18-04-2003, 15:24 
 
klappt vorzüglich, aber nur, weil du nicht das größer-zeichen im "index" von opcion stehen hast oder?@BlobBanana
türlich, aber wenn er den tippfehler schon im formular drin hat is das doch dem Herrn PHP schnuppe, die variable heißt anders und aus (daher ja auch das print_r($_POST) um zu sehen, was rauskommt)

Ach ja: $opcion=$_POST['opcion'] reicht völlig um das array rauszuholensizeof zum zählen stört mein persönliches ästhetisches wohlbefinden, nimm doch lieber count, das is wenigstens kein alias und nicht so missverständlich was die bezeichnung angeht (muss aber nich sein)

 
Damian1984
18-04-2003, 15:29 
 
jup, da er durch des größer Zeichen die Variable $lo net erkennt ;)

 
Toniv
18-04-2003, 15:46 
 
Vielen Dank,

werde alles mal probieren,
na ja, aller Anfang ist schwer.

Mach PHP erst seit Gestern.

Mels mich wenns geht.

Gruß Toni


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:19 Uhr.