Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[PHP] If statement doet niks

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dag Devschuur :)

Pff, ik ben bezig met mijn huiswerk, een inlogscriptje, en ik kóm er maar niet uit hoe ik mijn inlogscriptje aan de praat krijg...

Het probleem zit bij het uitloggen, wanneer ik naar inloggen.php ga, zie ik de form om uit te loggen, maar de if statement in ingelogged.php die de post 'uitloggen' vangt, geeft een witte pagina.

Daarnaast hoort de else in de check of het gebruikersnaam en wachtwoord klopt ook op te vangen wanneer iemand al ingelogged is. Hier geeft hij ook al een witte pagina! :-(

Zou iemand er eventjes naar willen kijken?

Hier de code, voel je vrij om hem zelf te gebruiken, maar ik betwijfel het of iemand het hier nodig zal hebben :+
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
        if (!isset($_COOKIE['counter'])) {
            setcookie('counter',1);
            $counter = 1;
        }

        if (isset($_COOKIE['counter'])) {
            $counter = $_COOKIE['counter']+1;
            setcookie('counter',$counter);
        }
        if(!isset($_COOKIE['gebruikersnaam'])) {
?>
<form method="post" action="ingelogged.php">
        Gebruikersnaam
        <input type="text" name="gebruikersnaam"><br />
        Wachtwoord
        <input type="password" name="wachtwoord"><br />
        Hoe lang wilt u ingelogged blijven?<br />
        <select type="dropdown" name="tijd">
            <option value="3600">1 Uur</option>
            <option value="43200">1 Dag</option>
            <option value="302400" checked>1 Week</option>
            <option value="9374400">1 Maand</option>
            <option value="112492800">1 Jaar</option>
        </select><br />
        <input type="submit" name="inloggen" value="Inloggen">
</form>
<?php
        } else {
?>
            U bent al ingelogged. Wilt u uitloggen?<br />
            <form method="post" action="ingelogged.php">
                <input type="submit" value="uitloggen" name="uitloggen">
            </form>
<?php
        }
?>


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
if(isset($_POST['inloggen'])) {
    $gebruikerx =           "sjoerd";
    $wachtwoordx =          "devos";
    $gebruikery =           $_POST['gebruikersnaam'];
    $wachtwoordy =          $_POST['wachtwoord'];
    if(!isset($_COOKIE['gebruikersnaam'])) {
        if($gebruikerx = $gebruikery && $wachtwoordx = $gebruikery) {
            $tijd = $_POST['tijd'];
            setcookie('gebruikersnaam','sjoerd',time()+$tijd);
            $_COOKIE['gebruikersnaam']= $gebruikery;
            $_COOKIE['wachtwoord']= $wachtwoordy;

            $gebruikersnaam=$_COOKIE['gebruikersnaam'];
            $wachtwoord=$_COOKIE['wachtwoord'];

        if (!isset($_COOKIE['counter'])) {
            setcookie('counter',1,time()+$tijd);
            $counter=1;
        }

        if (isset($_COOKIE['counter'])) {
            $counter=$_COOKIE['counter']+1;
            setcookie('counter',$counter,time()+0);
        }
        echo "Welkom $gebruikersnaam. U bent ingelogged.";
    } else {
        ?>
        U bent al ingelogged.<br />
        <form method="post">
            <input type="submit" name="uitloggen" value="Uitloggen">
        </form>
        <?php
    }
} else if(empty($_POST['gebruikersnaam'])) {
            echo "Vul uw gebruikersnaam in.";
} else if(empty($_POST['wachtwoord'])) {
            echo "Vul uw wachtwoord in.";
} else if(isset($_POST['uitloggen'])) {
        if(isset($_COOKIE)) {
            unset($_COOKIE['gebruikersnaam']);
            unset($_COOKIE['wachtwoord']);
        }
            echo "U bent nu uitgelogged.";
} else {
            echo "Er is iets misgegaan.";
?>
            <script type="text/javascript" language="JavaScript">
                setTimeout(function() {
                location.href = "inloggen.php"; 
                }, 5000);
            </script>
<?php
        }
}
?>


Heel erg bedankt!


Jonathan

PS: Stiekem ben ik iets verder gegaan dan wat er van een eerstejaars student word gevraagd O-)

[ Voor 0% gewijzigd door NMe op 01-11-2013 18:58 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

En wat is het resultaat van je debuggen? ;)
Programming FAQ - Debuggen: hoe doe ik dat?

Daarbij: Waar hoort mijn topic?
WEB>>PRG

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Thanks voor het bijwerken :) Je hebt helemaal gelijk, kan hij verplaatst worden?

Error reporting geeft nog steeds een lege pagina zonder fouten! :-\

  • Biersteker
  • Registratie: Juni 2009
  • Laatst online: 22-11 21:46
isset($_POST['inloggen']

post je hier wel een namevaluepair tegen?

Originally, a hacker was someone who makes furniture with an axe.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Vergeet display_errors niet, en er staan nog meer dingen op die link. ;) Echo/var_dump eens gewoon wat variabelen die het probleem zouden kunnen veroorzaken.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Fatal error: Call to undefined function display_errors() in C:\xampp\htdocs\Webdev\ingelogged.php on line 3
Ik ruik net dat display_errors geen functie op zichzelf is! :$

Enne, Biersteker, lees het onderste zinnetje, haha! Wat houd een namevaluepair in? :)

(Verder bedenk ik me net dat 'uitgelogged' geen woord is, maar dat komt doordat ik vanmorgen ook weer om kwart voor 7 eruit was! :-P)

[ Voor 19% gewijzigd door Verwijderd op 01-11-2013 19:17 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

er is ook een verschil tussen = en == ;)

sterkte met je huiswerk

  • will3m
  • Registratie: Juni 2008
  • Laatst online: 22-11 21:22
Beginnerstrucs om te debuggen:
- Echo om de haverklap waar hij wel "langs komt" (dus na if en in if statements)
- Dump de variabelen voor de if statement (wat verwacht je als resultaat en wat is het)
- Simuleer eventueel zelf een waarde (dus ipv hier _POST een $variabele maken)

Succes!

  • Boogie
  • Registratie: Januari 2001
  • Laatst online: 09-11 23:00
zoals Nubsteak al zei:

if($gebruikerx = $gebruikery && $wachtwoordx = $gebruikery) {

altijd waar, je kunt altijd de variabelen succesvol waardes toekennen.

if($gebruikerx == $gebruikery && $wachtwoordx == $gebruikery) {

vergelijkt wel de ingevoerde gegevens en de reeds bekende waarden.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Boogie schreef op vrijdag 01 november 2013 @ 22:06:
zoals Nubsteak al zei:

if($gebruikerx = $gebruikery && $wachtwoordx = $gebruikery) {

altijd waar, je kunt altijd de variabelen succesvol waardes toekennen.n.
Is niet altijd waar. Als $gebruikery een lege string, null of 0 is mislukt 't. ;) Alsnog niet bepaald wat de topicstarter wil maar uiteindelijk is het niet het succes van de toekenning maar de waarde die uiteindelijk in de variabele links van de = terechtkomt die bepaalt of iets naar true of false evalueert. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:12

.oisyn

Moderator Devschuur®

Demotivational Speaker

Inderdaad, de expressie $a=$b evalueert naar de nieuwe waarde van $a. Dat maakt het mogelijk om dingen als $a = $b = $c = 3 te doen.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • jessy100
  • Registratie: November 2010
  • Laatst online: 22-11 15:23
Verwijderd schreef op vrijdag 01 november 2013 @ 21:36:
er is ook een verschil tussen = en == ;)

sterkte met je huiswerk
Omdat de bovenstaande user verzuimd om het ook even uit te leggen ipv alleen commentaar te hebben..

Toewijzen van een waarde aan een variable (=)
Vergelijken van variablele (==) of (===)

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 22-11 17:48
will3m schreef op vrijdag 01 november 2013 @ 22:00:
Beginnerstrucs om te debuggen:
[...]
Of gewoon een debugger gebruiken? Het jaar 1995 ligt al even achter ons :)

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


  • will3m
  • Registratie: Juni 2008
  • Laatst online: 22-11 21:22
Freeaqingme schreef op zaterdag 02 november 2013 @ 15:21:
[...]


Of gewoon een debugger gebruiken? Het jaar 1995 ligt al even achter ons :)
Kan ook, maar als je geen fatsoenlijke aangeleerd is gaat dat lastig ;)

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
jessy100 schreef op zaterdag 02 november 2013 @ 14:13:
Omdat de bovenstaande user verzuimd om het ook even uit te leggen ipv alleen commentaar te hebben..

Toewijzen van een waarde aan een variable (=)
Vergelijken van variablele (==) of (===)
Je vergeet nu zelf bij '===' te melden dat ook de type cast word gecontroleerd ;)

Maak je niet druk, dat doet de compressor maar


Verwijderd

Topicstarter
Erg bedankt allemaal! Ik ga aan de gang met de tips. :)

@Will3m: Eerste methode gebruik ik al! :)

Edit: Ik zie in ieder geval al dat hij wachtwoordx vergelijkt met gebruikery 8)7 Dat is waarom je NetBeans beter alleen voor Java kan gebruiken, maar dat eist de school nou eenmaal...

[ Voor 48% gewijzigd door Verwijderd op 02-11-2013 19:26 ]


  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 22-11 17:48
will3m schreef op zaterdag 02 november 2013 @ 15:23:
[...]

Kan ook, maar als je geen fatsoenlijke aangeleerd is gaat dat lastig ;)
Maar dan is het toch juist zaak, om ook een beginner het meteen juist aan te leren?

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Verwijderd

Topicstarter
't Is geen probleem hoor, was een stom foutje van me die ik vaker maak, ik was ervan op de hoogte haha ;-)

HET IS GELUKT! :D Heb alles opnieuw gestructureerd, minder onder dezelfde statements :)

Iedereen erg bedankt voor de handige tips! Het topic mag weer dicht :-)

  • 8088
  • Registratie: December 2000
  • Niet online

8088

NaN

Verwijderd schreef op zaterdag 02 november 2013 @ 19:12:
Edit: Ik zie in ieder geval al dat hij wachtwoordx vergelijkt met gebruikery 8)7 Dat is waarom je NetBeans beter alleen voor Java kan gebruiken, maar dat eist de school nou eenmaal...
Er is niks mis met Netbeans en PHP, maar misschien wel met je instellingen: Tools -> Options -> Editor -> Hints -> PHP -> Accidental Assigments.

Do you seek to engage in or have you ever engaged in terrorist activities, espionage, sabotage, or genocide?


Verwijderd

Topicstarter
Heh, had ik zelf even moeten bedenken, bedankt haha!
Pagina: 1