Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [opgelost][PHP] POST returned 0;  (gelezen 1373 keer)

Offline JV.com

  • Lid
[opgelost][PHP] POST returned 0;
« Gepost op: 2010/06/24, 16:26:52 »
Hallo mensen,

ik ben voor de grap even met PHP aan het prutsen en probeer een basi (zonder DB) een login scriptje te maken. alleen de $_POST blijft me maar 0 posten.

start_session() wordt al op de index.php pagina aangeroepen.

het script moet de data naar de pagina zelf zenden staat hieronder:

Wie kan er zien wat ik fout doe.

Alvast bedankt!

JV.com

<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
    
$gebruikersnaam $_POST["gebruikersnaam"];
    
$wachtwoord $_POST["wachtwoord"];

    if(!empty(
$gebruikersnaam) && !empty($wachtwoord))
    {
        if(
$gebruikersnaam == "jelte" && $wachtwoord == "test")
        {
            
$_SESSION["ingelogd"] = 1;
        }
        else
        {
            
$_SESSION["ingelogd"] = 2;
        }
    }
    else
    {
       
$_SESSION["ingelogd"] = 3;
    }
}
?>


<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>
                Inloggen
        </title>
        <link href="../styles/style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
        <div class="header">
            <div class="headertext">
                Jelte Verbree: C#,C++,Linux and more..
            </div>
            <div class="menu">
                <div class="menuitem">
                    <a href="../index.php" alt="Home" class="menulink">Home</a>
                </div>
                <div class="menuitem">
                    <a href="nieuws.php" alt="Nieuws" class="menulink">Nieuws</a>
                </div>
                <div class="menuitem">
                    <a href="login.php" alt="Inloggen" class="menulink">Inloggen</a>
                </div>
            </div>
        </div>
        <div class="maincontent">
            <h2> Inloggen:</h2>
           <div class="errormessage">
           <?php
                
if($_SESSION["ingelogd"] != 0)
                {
                    if(
$_SESSION["ingelogd"] == 1)
                    {
                        echo 
"u bent ingelogd!";
                    }
                    elseif(
$_SESSION["ingelogd"] == 2)
                    {
                        echo 
"onjuiste wachtwoord en/of gebruikersnaam";
                    }
                    elseif(
$_SESSION["ingelogd"] == 3)
                    {
                        echo 
"geen wachtwoord en/of gebruikersnaam";
                    }
                }
            
?>

            </div>
            <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
                <table>
                    <tr>
                        <td>Gebruikersnaam:</td><td><input type="text" name="gebruikersnaam" value="gebruikersnaam"></td>
                    </tr>
                    <tr>
                        <td>Wachtwoord:</td><td><input type="password" name="wachtwoord" value="wachtwoord"></td>
                    </tr>
                    <tr>
                        <td>
                            <input type="submit" value="inloggen">
                        </td>
                    </tr>
                </table>
            </form>
        </div >
        <div class="footer">
        </div>
    </body>
</html>

EDIT OPLOSSING:

volgens mij lag het aan het feit dat ik de seesion op true en false zette + dat ik een 0 gebruikte. deze waardes zijn niet te volgens mij niet goed te combineren in dit script. ik heb nu alleen de waarden 1,2,3,0 gebruikt.

als ik op de index.php kom zet ik de sessie op 0.
als ik een inlog actie doe kan er alleen maar 1,2,3 uitkomen.

1 = alles goed.
2 = ingevulde gegevens onjuist.
3 = er missen een of meerdere gegevens.

zie hier mij code:

<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
    echo 
"gebruikersnaam:" $_POST["gebruikersnaam"] + "<br>";
    echo 
"wachtwoord:" $_POST["wachtwoord"] + "<br>";

    if(!empty(
$_POST["gebruikersnaam"]) && !empty($_POST["wachtwoord"]))
    {
        if(
$_POST["gebruikersnaam"] ==  "piet" && $_POST["wachtwoord"] == "test")
        {
            echo 
"juist";
            
$_SESSION["ingelogd"] = true;
        }
        else
        {
            echo 
"niet juist";
            
$_SESSION["ingelogd"] = false;
        }
    }
    else
    {
        echo 
"leeg";
       
$_SESSION["ingelogd"] = -1;
    }
}
else
{
  
$_SESSION["ingelogd"] = NULL;
}
?>


<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>
                Inloggen
        </title>
        <link href="../styles/style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
        <div class="header">
            <div class="headertext">
                   C#,C++,Linux and more..
            </div>
            <div class="menu">
                <div class="menuitem">
                    <a href="../index.php" alt="Home" class="menulink">Home</a>
                </div>
                <div class="menuitem">
                    <a href="nieuws.php" alt="Nieuws" class="menulink">Nieuws</a>
                </div>
                <div class="menuitem">
                    <a href="login.php" alt="Inloggen" class="menulink">Inloggen</a>
                </div>
            </div>
        </div>
        <div class="maincontent">
            <h2> Inloggen:</h2>
           <div class="errormessage">
           <?php
              
if($_SESSION["ingelogd"] != NULL)
              {
                if(
$_SESSION["ingelogd"] == false)
                {
                  echo 
"Uw gebruikersnaam en/of wachtwoord is onjuist!";
                }
                else if(
$_SESSION["ingelogd"] == -1)
                {
                  echo 
"U heeft geen gebruikersnaam en/of wachtwoord ingevoerd";
                }
                else if(
$_SESSION["ingelogd"] == true)
                {
                  echo 
"u bent succesvol ingelogd";
                }
               }
            
?>

            </div>
            <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
                <table>
                    <tr>
                        <td>Gebruikersnaam:</td><td><input type="text" name="gebruikersnaam"></td>
                    </tr>
                    <tr>
                        <td>Wachtwoord:</td><td><input type="password" name="wachtwoord"></td>
                    </tr>
                    <tr>
                        <td>
                            <input type="submit" value="inloggen">
                        </td>
                    </tr>
                </table>
            </form>
        </div >
        <div class="footer">
        </div>
    </body>
</html>


nu werkt het!

bedankt voor jullie hulp!
« Laatst bewerkt op: 2010/06/24, 23:43:11 door JV.com »

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: [PHP] POST returned 0;
« Reactie #1 Gepost op: 2010/06/24, 16:58:34 »
Dus print_r($_POST); is helemaal leeg?
Of var_dump($_POST);
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline JV.com

  • Lid
Re: [PHP] POST returned 0;
« Reactie #2 Gepost op: 2010/06/24, 17:00:22 »
nee ik echo ze, en daarbij geven ze 0 terug.

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: [PHP] POST returned 0;
« Reactie #3 Gepost op: 2010/06/24, 17:02:29 »
Vertel mij dan eens wat de output van 1 van die dingen is die ik je gaf...
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline JV.com

  • Lid
Re: [PHP] POST returned 0;
« Reactie #4 Gepost op: 2010/06/24, 17:33:28 »
ik heb het nu gedeeltelijk opgelost.

het script boven het HTML werkt. alleen werkt het script in het HTML nog niet lekker.


ik blijf de volgend eresultaten terug krijgen:

"Uw gebruikersnaam en/of wachtwoord is onjuist" en "U heeft geen gebruikersnaam en/of wachtwoord ingevoerd".

alleen het antwoord juist wil er maar niet doorkomen.

ben net binnnen en kwartier naar me vriendin toegefiets. en kan dus nu niet weer mijn nieuwe code plaatsen. ook de vardump etc. kan ik nu niet posten :S (Sorry). dit komt morgen weer.

als iemand toevalig een foutje ziet, schroom niet op te posten =)

Re: [PHP] POST returned 0;
« Reactie #5 Gepost op: 2010/06/24, 19:14:43 »
nee ik echo ze, en daarbij geven ze 0 terug.
Dat doen ze omdat je een plusteken gebruikt om de stringonderdelen te koppelen. In PHP moet je daar een punt voor gebruiken.
Verder heb ik (nog) niet naar de scripts gekeken.

Edit: nu wel.

Om te voorkomen dat -1 en TRUE niet van elkaar kunnen worden onderscheiden, kan je de != en == beter vervangen door !== en ===. Dan wordt ook het type bij de vergelijking betrokken.
« Laatst bewerkt op: 2010/06/24, 19:39:22 door grizzler »