Het gaat om het volgende stukje code :
<?php
if ($_POST['verzendbutton'] && !isset($_POST['reactie'])) {
echo "<span>Vul hier uw reactie in!</span><br />";}
?>
Ik heb register globals off ingesteld. Daarom gebruik ik ook de $_POST variabelen.
Echter de functie isset() werkt dan niet. Ik krijg dan nl. niet de melding: "Vul hier uw reactie in"
Het werkt wel als ik $_POST['reactie'] verander in $reactie. Wat kan hiervan de oorzaak zijn??

Als dit niet voldoende info blijkt te zijn zal ik de tekst van het volledige php bestand meesturen.

Alvast bedankt,
Dimpie.
isset kijkt of de $_POST is verstuurd, en niet of het een waarde heeft.

De verzendknop zal altijd een waarde hebben door het value attribuut en wanneer een post var niet is geset/er niets is ingevuld zal deze als waarde null hebben waardoor het dus gewo0n werkt.
Isset test, net zoals ! of een var geset is...
http://nl.php.net/isset
Ik heb het volgende scriptje van het Sitepoint forum gehaald.

Als ik dit script uitvoer, lijkt het er op dat PHPerik gelijk heeft.

Vul je nl. voor $var 0, "" o.i.d. in dan is ie wel geset, echter wel empty.

Vul je een andere waarde dan 0 in, dan is $var zowel geset als !empty.

Haal je $var helemaal weg dan is ie niet geset en natuurlijk ook empty.

<?php
$var = 0;

// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is empty';
}
else {
echo '$var is not empty';
}
// Evaluates as true because $var is set
if (isset($var)) {
echo ' $var is set even though it can be empty';
}
else {
echo ' $var is not set';}
?>

Have fun with it.

Dimpie.
Denk nog maar eens
Voer dit script maar eens uit:
<?
if($_POST['stuuruh'])
if(!$_POST['vakkiej'])
echo("Blaaah");
else
echo("Bleeeh");
else
{
echo("<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">");
echo("<input type=\"text\" name=\"vakkiej\" /><br />");
echo("<input type=\"submit\" name=\"stuuruh\" value=\"STuuRuH!\" />");
echo("</form>");
}
?>
Als je in het invulvak niets invult krijg je Blaaah te zien, vul je wel iets in krijg je bleeeh te zien

Reageren