Toon posts:

[php] probleem met login script

Pagina: 1
Acties:
  • 411 views

Verwijderd

Topicstarter
First of all, ik ben nu goed en wel een dag bezig met php ofzo dus mij aub niet flamen voor noob, omdat ik weet dat ik er een ben :+ .

Bij het volgende scriptje, zou als ik dan username en password juist invul niet men form moeten verdwijnen en Welcome komen te staan?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$user = 'username';
$pass = 'password';

if(!(($user=="Ronald") AND ($pass=="wachtwoord")))
    {
    echo "
    <html>
    <body>
    <form action='php.php' method='POST'>
    <p>username:<input type='text' name='username'></p>
    <p>password:<input type='text' name='password'></p>
    <p><input type='submit' value='submit'></p>
    </form>
    </body>
    </html> 
    ";
    }
else
    {
    echo "welcome";
    }
?>

  • ToBe
  • Registratie: Juli 2002
  • Niet online
Als je de pagina submit, dan start het parsen weer van bovenaf. Je zegt dus in je form: user = Ronald en daarna submit je hem en zegt je pagina user = username. Daar gaat het de eerste keer fout.

Daarnaast als je een variable uitleest die je post, dan moet je die opvragen als $_POST['user'] in dit geval.

Tip om te lezen REGISTER_GLOBALS
Linkje: http://nl.php.net/manual/en/reserved.variables.php

[ Voor 40% gewijzigd door ToBe op 30-06-2008 07:18 ]


  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 17:32

Spooksel

Spooksel!

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$user = "Ronald";
$pass = "wachtwoord";

if($_POST['username'] != $user AND $_POST['password'] != $pass)
    {
    echo "
    <html>
    <body>
    <form action='php.php' method='POST'>
    <p>username:<input type='text' name='username'></p>
    <p>password:<input type='text' name='password'></p>
    <p><input type='submit' value='submit'></p>
    </form>
    </body>
    </html> 
    ";
    }
else
    {
    echo "welcome";
    }
?>

Zo gaat het wel werken :)

Al is een 'AND' check in de IF statement misschien niet zo handig, als je nu bijvoorbeeld je username fout typed en je wachtwoord goed dan ga je alsnog door.

[ Voor 14% gewijzigd door Spooksel op 30-06-2008 10:31 ]

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • scarhand
  • Registratie: December 2001
  • Laatst online: 24-06-2021
Spooksel schreef op maandag 30 juni 2008 @ 10:28:
<snip>

Al is een 'AND' check in de IF statement misschien niet zo handig, als je nu bijvoorbeeld je username fout typed en je wachtwoord goed dan ga je alsnog door.
AND heeft een lagere precedence dan &&, maar is nog steeds een 'en' hoor ;)

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Spooksel schreef op maandag 30 juni 2008 @ 10:28:
Al is een 'AND' check in de IF statement misschien niet zo handig, als je nu bijvoorbeeld je username fout typed en je wachtwoord goed dan ga je alsnog door.
Dus dan weet je toch dat je daar een || had moeten zetten? 8)7
scarhand schreef op maandag 30 juni 2008 @ 10:53:
[...]


AND heeft een lagere precedence dan &&, maar is nog steeds een 'en' hoor ;)
Precedence maakt heir geen verschil, die if conditie is gewoon compleet fout.

{signature}


  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 17:32

Spooksel

Spooksel!

Mjah, 't is dat ik het zelf al direct erbij zeg :P Maar in het kader van even snel zijn script werkend maken op de manier die Crayun aan het proberen was heb ik het maar ff zo gelaten. :)

Als je dus 'AND' zou gebruiken dan kom je er (hopelijk) snel genoeg achter dat het hele scriptje dus eingelijk maar voor spek en bonen is :P En zodoende ervan leren :)

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Om TS er van te leren moet je geen copy/paste-bare code plaatsen. ToBe had al genoeg aanknopingspunten gegeven om er zelf uit te kunnen komen.
Áls je het dan toch ontzettend gaaf vind om code voor te kauwen, moet je er geen grove fouten in laten, want die zullen vaak genoeg gewoon overgenomen worden. Ja, iemand moet lezen welke code hij overneemt, maar als je van /dev geen afhaalbalie maakt heb je dit probleem gewoon niet.

{signature}


Verwijderd

Topicstarter
Dank je wel iedereen ^^.
Ik heb het aan de praat gekregen.

dit is men code nu:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$user = 'Ronald';
$pass = 'wachtwoord';

if(($_POST['username']!=$user) || ($_POST['password']!=$pass))
    {
    echo "
    <html>
    <body>
    <form action='php.php' method='POST'>
    <p>username:<input type='text' name='username'></p>
    <p>password:<input type='text' name='password'></p>
    <p><input type='submit' value='submit'></p>
    </form>
    </body>
    </html> 
    ";
    }
else
    {
    echo "Welkom";
    }
?>


Maar ik dacht nu een controle in te voere waar het script controlleerd of de velden 'username' en 'password' leeg zijn of niet.

hiervoor heb ik de volgende code

PHP:
1
2
3
4
    if(($_post['username']=='') OR ($_post['password']==''))
        {
        echo 'Je hebt een veld niet ingevuld';
        }


Maar ik weet niet juist waar ik deze moet plaatsen :X .
Gelieve geen volledig script te plaatsen ^^, ik leer meer als ik er zelf nog wat achter moet zoeken en puzzelen ^^.

Nog eens bedankt iedereen. Tot nu toe vind ik php zeer leuk ^^.

  • Muthas
  • Registratie: December 2005
  • Niet online

Muthas

O+

Je wilt geen code, dan doe ik het zo:

user = blaat
wachtwoord = blaat

als post_user = leeg of post_wachtwoord = leeg dan
geef error
anders als post_user = onjuist of post_wachtwoord = onjuist dan
geef inlogformulier
anders
geef geheime info
eind als

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:23

Creepy

Tactical Espionage Splatterer

Eeh.. niet om het één of ander maar dit is wel heel erg basic.... met een beetje logisch nadenken moet je echt wel in staat zijn om je code op de juiste plek neer te zetten. Programmeren is meer dan de taal kennen. Logisch nadenken e.d. hoort daar dus ook bij.

Ik ga dit topic dicht doen. Ik zou je willen vragen iets meer moeite te doen bij het zelf oplossen van je probleem. Of als je dat wel doet: geef dat dan ook aub aan. Het enige wat je nu doet is wat code dumpen, aangeven wat het moet doen, en wachten op een oplossing en dat is niet de bedoeling. Als je voor een volgend topic Programming Beleid - De Quickstart eens wilt doorlezen dan zie je direct welke informatie we in een topicstart zouden willen zien.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.