Toon posts:

[php/mysql] login script, kan fout niet vinden?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Kheb het volgende login script, het werkte wel, maar ik heb er een stuk tussen gezet, namelijk "Banned check en cookie set" Er zit daar ergens een fout, misschien in de structuur.
Ik kom er echt niet uit! Er is er een behulpzame tweaker?
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?
session_start(); // start session

include ("function.php");
connect(); //ff verbinden

//variabele
$cookiename = "banned";


// login.php makes possible to save in session and opens test.php
if ($HTTP_POST_VARS["username"] &amp;&amp; $HTTP_POST_VARS["password"]) {

//-----------------------------------------------------------------------
// Banned check en cookie set
//-----------------------------------------------------------------------

//cookie checken

  if (isset($HTTP_POST_VARS["$cookiename"])) {
        echo "Banned (cookie)";
        exit();
     }
      else {
      $query=mysql_query("SELECT banned FROM members WHERE username='$username'") or die   ("ERROR<br>".mysql_error."");
      $num=mysql_num_rows($query);

        if ($num == '1') {
        setcookie($cookiename,"1",time()+60);
        echo "Banned (database)";
        exit();
        }


//-----------------------------------------------------------------------
// Hier begint login
//-----------------------------------------------------------------------
       else {
       //Encript password.
       $passgecodeerd = md5($HTTP_POST_VARS["password"]);
       $username = $HTTP_POST_VARS["username"];

       //Put variabels in session.
       session_register("username");
       session_register("passgecodeerd");

//-----------------------------------------------------------------------
// Beveiligde gedeelte
//-----------------------------------------------------------------------

       $controle == FALSE; //Just in case

       $controle = password($username, $passgecodeerd);
       //Function password gives TRUE or FALSE (function.php)

             if ($controle == TRUE) { //Show page on TRUE
                //Refresh ip in database
                if (getenv(HTTP_X_FORWARDED_FOR))
                {
                $client_hostname=gethostbyaddr(getenv(HTTP_X_FORWARDED_FOR));
                }
                else
                {
                $client_hostname=gethostbyaddr(getenv(REMOTE_ADDR));
                }
                $ip = $client_hostname;
                $sql = "UPDATE members set ip='$ip' WHERE username='$username'";
                echo "You're logged in: $username";
             }
             else { //Show page on False
             echo "<br>Not logged in";
             }
    }
 }
}
//-----------------------------------------------------------------------
// login formuliertje!
//-----------------------------------------------------------------------
else {
?>
<form method="post" action="login.php">
    Username:<input type="Text" name="username"><br>
    Password:<input type="Text" name="password"><br>
    <input type="Submit" name="Submit" value="Login">
</form>
<? }
?>

  • John_Glenn
  • Registratie: Augustus 2001
  • Laatst online: 28-08-2023

John_Glenn

verdeelt de whooping.

Als je die mysql_num_rows gebruikt krijg je sowieso $num==1 lijkt me, want er is toch voor iedereen een veld 'banned' in je database? Dus ongeacht of er NULL of 0 of 1 of wat dan ook in staat, je krijgt altijd precies 1 rij in je result.

Je wil eigenlijk weten wat er in het veld staat: banned is true of false? Dus je schrijft je query naar een array dmv iets als

$var=mysql_fetch_row(.....)
if ($var[0]==true) ....

(vraag me niet om de precieze syntax, even opzoeken ajb.)

Is dit een beetje wat je bedoelt?

  • John_Glenn
  • Registratie: Augustus 2001
  • Laatst online: 28-08-2023

John_Glenn

verdeelt de whooping.

Zeg eh gast, is t je nou duidelijk geworden?

.... was wel benieuwd.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
wat ik op het eerste gezicht zie:
code:
1
2
3
//cookie checken
if (isset($HTTP_POST_VARS["$cookiename"])) {
                   ^ dollarteken moet weg

en:
code:
1
2
("ERROR<br>".mysql_error."");
                ^ () erachter

maar wat is precies het probleem?

  • John_Glenn
  • Registratie: Augustus 2001
  • Laatst online: 28-08-2023

John_Glenn

verdeelt de whooping.

Op donderdag 22 november 2001 11:12 schreef marcusk het volgende:
wat ik op het eerste gezicht zie:

maar wat is precies het probleem?
Goh had ik zomaar overheen gelezen...

maarre, Loaded is niet echt van het antwoorden... (kijk naar postdates)

Verwijderd

Topicstarter
Hoi bedankt voor de replies guyz!

Ik ben wel redelijk van het antwoorden alleen niet zo van veel tijd...

Enne ik geloof dat ze hier bij GOT wat server probleempjes hebben ofzo, want zoekmachine heeft problemen en forum was gisteren down! waardoor ik niks KON posten...

Maare dus bedankt enne ik zal er naar kijken, en als er nog wat is hoor ik het wel!

  • John_Glenn
  • Registratie: Augustus 2001
  • Laatst online: 28-08-2023

John_Glenn

verdeelt de whooping.

No worries... ik dacht alleen even dat je weer zo iemand was die wel de reply leest maar vervolgens niet meldt dat t opgelost is... te snel geoordeeld, sorry!

En dan nog een tipje offtopic: de search werkt voor een deel wel dus je kan je eigen topics terugzoeken door een string als [url="http://gathering.tweakers.net/forum/find/poster/26449]http://gathering.tweakers.net/forum/find/poster/26449[/url]
Pagina: 1