Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP] Isset() Validatie werkt niet...

Anoniem
None
4 antwoorden
  • Hey,
    ik heb nu weer een andere vraag.
    Ik heb een script dat een bericht in een DB zet.
    Nu zit alles in 1 bestandje, dus ik heb isset() gebruikt om te bepalen of er op submit is gedrukt.
    Als dat gedaan is, komt er weer een isset() om te controleren of de 2 velden zijn ingevult. Maar dat werkt niet.
    Hij laat niet zien dat ze niet ingevult zijn, en stuurt ze gewoon de database in.

    Kan iemand er alsjeblieft even naar kijken?
    Waar zit mijn fout?
    Alvast bedankt:

    [code:1:b7b2fb2551]
    <?php
    require ("connect.php");
    mysql_connect("$dbhost","$dbuser","$dbpass");
    mysql_select_db("$db");
    $datum=date("d/m/Y");
    $tijd=date("H:i");
    $bericht=$_POST['bericht'];
    $wachtwoord=md5($_POST['wachtwoord']);
    $ip=$_SERVER['REMOTE_ADDR'];
    ?>

    <html>

    <head>
    <title>Message Service - Bericht achterlaten</title>
    <link href="stijl.css" rel="stylesheet" type="text/css" media="all">
    </head>

    <body bgcolor="#ffffff">
    <h1>Bericht Achterlaten</h1>
    <?
    if (isset($_POST["submit"])) { //kijkt of er op submit is gedrukt
    if (isset($_POST["bericht"]) && isset($_POST["wachtwoord"])) { //kijkt of beide velden zijn ingevult, zoja dan moet het de db in. zoniet dan een waarschuwing.
    mysql_query("INSERT INTO berichten (datum, tijd, bericht, pass, IP) VALUES ('$datum', '$tijd', '$bericht', '$wachtwoord', '$ip')") or die(mysql_error());

    mysql_close();
    echo "De gegevens zijn opgeslagen!
    <br>
    <br>";
    echo "<p><a href=\"index.php\">&lt; Terug</a></p>";
    }
    else {
    echo "Je bent een veld vergeten in te vullen.
    <br>
    <br>";
    echo "<p><a href=\"javascript:history.go(-1)\">&lt; Terug</a></p>";
    }
    }
    else { ?>

    <p>Typ hieronder je bericht, en een wachtwoord in.<br>
    Degene die het bericht ophaalt, heeft dit wachtwoord nodig.</p>
    <form id="FormName" action="<?php echo $PHP_SELF; ?>" method="post" name="achterlaten">
    <table width="329" border="0" cellspacing="2" cellpadding="0">
    <tr>
    <td valign="top">Bericht:</td>
    <td><textarea name="bericht" rows="10" cols="40"></textarea></td>
    </tr>
    <tr>
    <td>Wachtwoord:</td>
    <td><input type="wachtwoord" name="wachtwoord" size="19"></td>
    </tr>
    </table>
    <p><input type="submit" name="submit" value="Bericht Opslaan"></p>
    </form>
    <p></p>
    </body>

    </html>
    <? } ?>
    [/code:1:b7b2fb2551]



    Greetz,
    Bert

    - The Milkman -



  • probeer i.p.v dit
    [code:1:78ba2ba358]
    (isset($_POST["bericht"]) && isset($_POST["wachtwoord"]))
    [/code:1:78ba2ba358]
    dit eens
    [code:1:78ba2ba358]
    ($_POST["bericht"] > '' && $_POST["wachtwoord"] > '')
    [/code:1:78ba2ba358]

    misschien doet dit wat?? :-?
  • Als [i:4a58b41d41]isset($_POST["submit"]) == true[/i:4a58b41d41], dan geldt dit automatisch ook voor [i:4a58b41d41]isset($_POST["bericht"])[/i:4a58b41d41] en [i:4a58b41d41]isset($_POST["wachtwoord"])[/i:4a58b41d41] aangezien ook lege velden worden gesubmit. Je controleert dus feitelijk 2x hetzelfde. De oplossing van The Game is bijna goed, gebruik[code:1:4a58b41d41]if($_POST["bericht"] == '' || $_POST["wachtwoord"] == ''){ [/code:1:4a58b41d41]Als dit true is, dan is één of beide velden niet ingevuld.

    - Bas
  • [quote:8cb07e21e4="BasHamar"]Als [i:8cb07e21e4]isset($_POST["submit"]) == true[/i:8cb07e21e4], dan geldt dit automatisch ook voor [i:8cb07e21e4]isset($_POST["bericht"])[/i:8cb07e21e4] en [i:8cb07e21e4]isset($_POST["wachtwoord"])[/i:8cb07e21e4] aangezien ook lege velden worden gesubmit. Je controleert dus feitelijk 2x hetzelfde. De oplossing van The Game is bijna goed, gebruik[code:1:8cb07e21e4]if($_POST["bericht"] == '' || $_POST["wachtwoord"] == ''){ [/code:1:8cb07e21e4]Als dit true is, dan is één of beide velden niet ingevuld.

    - Bas[/quote:8cb07e21e4]

    Bedankt, alles werkt nu!

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.