Bekijk Volledige Versie : onverwachte werking script
Ik heb bijgaand script ingevoerd.
<html>
<head>
<title>Gastenboek</title>
</head>
<body>
<?php
echo "<h2>Een eenvoudig gastenboek</h2>\n";
echo "<form action=\"$PHP_SELF\" method=\"post\">\n";
echo "<p>Uw naam: <input type = \"text\" name = \"naam\"></p>\n";
echo "<p>Uw mail: <input type = \"text\" name = \"email\"></p>\n";
echo "<p>Uw commentaar:</p>\n";
echo "<textarea cols = \"55\" rows = \"5\" wrap = \"soft\" name =
\"commentaar\">
</textarea><br>\n";
echo "<p><input type = \"submit\" value=\"Commentaar verzenden\"></p>\n";
if (submit) {$teller++;}
echo "<hr>\n";
echo "<p><h2>Reeds geleverd commentaar</h2></p>\n";
if (isset($commentaar) && naam != "" && email != "")
{
echo "Test";
}
?>
</body>
</html>
Als ik nu op de verzendknop druk worden de velden leeg gemaakt, maar verder
gebeurd er niets.
Waarom verschijn "test"niet?
Wie kan mij helpen?
groet,
Piet
> Ik heb bijgaand script ingevoerd.
[knip]
> Als ik nu op de verzendknop druk worden de velden leeg gemaakt, maar
verder
> gebeurd er niets.
Dat is precies wat je geprogrameerd hebt... na de post genereer je een
pagina met blanco velden.
> Waarom verschijn "test"niet?
De variabelen naam en email zijn niet gedefinieerd. Labels in een
html-formulier hebben niets met php te maken.
Met onderstaand test-scriptje kan je zien welke variabelen en waarden
beschikbaar zijn binnen php na aanroep met bv een POST:
<html><head><title>PHP Test</title></head>
<body>
<?php echo "<p>PHP debug info</p>"; ?>
<?php echo $HTTP_USER_AGENT; ?><br>
<?php echo $HTTP_REFERER; ?><br>
<?php echo "test " . (strlen($QUERY_STRING) == 0 ? "geen GET" :
rawurldecode($QUERY_STRING)) . "- test"; ?><br>
<?php echo $REQUEST_METHOD; ?>
<p>getallheaders
<p>
<?php $headers = getallheaders();
foreach ($headers as $header => $value) {
echo "$header: $value<br />\n";
}
?>
<p>nu komt phpinfo():
<p>
<?php phpinfo(); ?>
</body>
</html>
> Wie kan mij helpen?
Zo goed?
Suc6,
André
Daniel Tryba
29/03/04, 23:15
Iceman <andre@geen-rotzooi-luyer.nl> wrote:
>> Als ik nu op de verzendknop druk worden de velden leeg gemaakt, maar
> verder
>> gebeurd er niets.
>
> Dat is precies wat je geprogrameerd hebt... na de post genereer je een
> pagina met blanco velden.
>>if (submit) {$teller++;}
>>echo "<hr>\n";
>>echo "<p><h2>Reeds geleverd commentaar</h2></p>\n";
>>if (isset($commentaar) && naam != "" && email != "")
>>{
>> echo "Test";
>>}
De OP gaat er helaas vanuit dat een bepaalde configuratie op de php
server aanstaat. Oooit heeft bovenstaande gewerkt (op de fout van de
ontbrekende $ bij submit na dan)
>> Waarom verschijn "test"niet?
> De variabelen naam en email zijn niet gedefinieerd. Labels in een
> html-formulier hebben niets met php te maken.
> Met onderstaand test-scriptje kan je zien welke variabelen en waarden
> beschikbaar zijn binnen php na aanroep met bv een POST:
> <html><head><title>PHP Test</title></head>
> <body>
> <?php echo "<p>PHP debug info</p>"; ?>
> <?php echo $HTTP_USER_AGENT; ?><br>
> <?php echo $HTTP_REFERER; ?><br>
> <?php echo "test " . (strlen($QUERY_STRING) == 0 ? "geen GET" :
> rawurldecode($QUERY_STRING)) . "- test"; ?><br>
> <?php echo $REQUEST_METHOD; ?>
Helaas je begaat de zelfde fout als de OP. Ook $HTTP_USER_AGENT,
$HTTP_REFERER, $QUERY_STRING en $REQUEST_METHOD bestaan niet meer met de
huidige standaard php.ini. Info hierover is te lezen op
http://www.php.net/manual/en/language.variables.predefined.php
(MAW de bovenstaande zou moeten worden: $_SERVER['HTTP_USER_AGENT']
enz.) Maar daar komt met met een phpinfo(32) ook wel achter :)
--
Daniel Tryba
> Helaas je begaat de zelfde fout als de OP. Ook $HTTP_USER_AGENT,
> $HTTP_REFERER, $QUERY_STRING en $REQUEST_METHOD bestaan niet meer met de
> huidige standaard php.ini.
Dat is geen fout maar een test-script, een samenraapsel van wat oude
testjes. Het laat snel zien wat er wel beschikbaar c.q. geconfigureerd is.
André
Daniel Tryba
30/03/04, 00:25
Iceman <andre@geen-rotzooi-luyer.nl> wrote:
>> Helaas je begaat de zelfde fout als de OP. Ook $HTTP_USER_AGENT,
>> $HTTP_REFERER, $QUERY_STRING en $REQUEST_METHOD bestaan niet meer met de
>> huidige standaard php.ini.
>
> Dat is geen fout maar een test-script, een samenraapsel van wat oude
> testjes. Het laat snel zien wat er wel beschikbaar c.q. geconfigureerd is.
Ik raad je toch dringend aan om mijn posting nog eens goed te lezen
(inclusief de url over predefined variablen).
Voor gekauwd (zodat de OP er ook iets aan heeft): als het script niet
werkt bij de OP duidt dat op een post 4.2.x default instelling voor
register_globals. In dat geval zal jou test script ook niets opleveren
(op de phpinfo na (welke je om het to the point te houden het best kan
beperken tot phpinfo(32))), immers die gaat ook uit van register_globals
op aan. Jou voorgestelde testscript maakt gebruik van features die net
geen 2 jaar definitief deprecated zijn.
--
Daniel Tryba