Loginscript werkt niet op localhost???

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kevin Tuns

Kevin Tuns

21/11/2006 12:39:00
Quote Anchor link
een tijdje terug heb ik hier een aantal vragen gesteld over het starten van cookies. Ik ben toen geholpen en mijn script werkte perfect. Ik ben toen een aantal weken gestopt en wou het van de week weer oppakken maar op de een of andere manier kan ik niet meer inloggen.

Het is nog steeds hetzelfde script als een aantal weken geleden en ik heb het op meerdere thuisservers geprobeerd, waaronder:
* UsbWebserver
* Xampp
* EasyPHP
en een aantal andere.

Oja, er worden ook geen errors weergegeven terwijl error eall ofzo aanstaat.

Het script logt je in maar als je dan vervolgens naar een andere pagina gaat ben je weer uitgelogd.

Script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
If($ingelogd == 1)
{

    echo''.$code9.'';
}

Else
{

if (isset($_POST['submit']) && $_POST['submit'] == '1') {
    $gebruikersnaam     =    $_POST['gebruikersnaam'];
    $wachtwoord            =    md5($_POST['wachtwoord']);
    $tijd                =    $_POST['tijd'];
    $query                 =     mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '$gebruikersnaam'");
    $result             =     mysql_num_rows($query);
    $query1             =     mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '$gebruikersnaam' && wachtwoord = '$wachtwoord'");
    $result1            =     mysql_num_rows($query1);
    $query2             =     mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '$gebruikersnaam'");
    while($result2         =     mysql_fetch_object($query2)){
    $id                 =     $result2->memberid;
    }

    
    if($gebruikersnaam == ''){
                  $code     =     $code3;
        }
elseif($wachtwoord == ''){
                  $code     =     $code5;
        }
elseif(!preg_match('/^[A-Za-z0-9_-]+$/',$gebruikersnaam)) {
                  $code   =   $code8;
        }
elseif($result == ''){
                $code    =    $code8;
        }
elseif($result1 == ''){
                $code    =    $code8;
        }

    If($tijd == "Jaar")
        {

            $lengte = 60*60*24*365;
        }

        ElseIf($tijd == "Maand")
        {

            $lengte = 60*60*24*31;
        }

        ElseIf($tijd == "Week")
        {

            $lengte = 60*60*24*7;
        }

        Elseif($tijd == "dag")
        {

            $lengte = 60*60*24;
        }
else {
            $lengte = 60*60*24;
            }

        if(isset($code)){
        echo''.$code.'';
        }
else {
        setcookie("gebruikersnaam", $gebruikersnaam, time() + $lengte, "/");
        setcookie("wachtwoord", $wachtwoord, time() + $lengte, "/");
        setcookie("id", $id, time() + $lengte, "/");
        echo'Je bent succesvol ingelogd';
        ?>

        <meta http-equiv="refresh" content="1; url=index.php">
        <?php
        }
        }
else {
?>

<form method="POST" action="?pagina=leden/inloggen">
    <input type="hidden" name="submit" value="1">
        <table cellpadding="1" cellspacing="1" width="100%">
            <tr><td width="1%">Gebruikersnaam:</td><td><input type="text" name="gebruikersnaam"></td></TR>
            <tr><td width="1%">Wachtwoord:</td><td><input type="password" name="wachtwoord"></td></TR>
            <tr><td width="1%"></td><td><select name="tijd"><option value="Dag">Dag</option><option value="Week">Week</option><option value="Maand">Maand</option><option value="Jaar">Jaar</option></select></td></TR>
        <td width="1%"> </td><td><input type="submit" value="Inloggen"> <input type="reset" name="reset" value="Opnieuw"></td></table>
        <form>
        
<?php
}
}

?>
  


Dit is alleen het script login.php

Op deze manier controleer ik of iemand is ingelogd. Ik weet dat het niet de beste manier is maar het is nu even om te kijken of het werkt.
Dit staat dus in het config bestand.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(!isset($_COOKIE["gebruikersnaam"])){
$ingelogd = '0';
}
else {
$ingelogd = '1';
}

?>

En dit staat boven elke beveiligde pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
If($ingelogd == 1)
{

    echo''.$code9.'';
}

Else
{
pagina
}
?>


Ik hoop dat ik genoeg info heb gepost en zo niet vraag er dan even om.

Het gaat mij er nu dus niet om of het veilig of wat dan ook is maar waarom het niet wil werken.

Alvast bedankt,


kevin tuns
 
PHP hulp

PHP hulp

25/04/2024 16:05:21
 
Niek s

niek s

21/11/2006 13:02:00
Quote Anchor link
post hier alleen je relevante code, je moet niet verwachten dat wij "even" zon berg code voor je doornemen,
 
M Ypma

M Ypma

21/11/2006 13:07:00
Quote Anchor link
en je config word ook op elke pagina geinclude voor dat je die check doet?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
If($ingelogd == 1)
{

    echo''.$code9.'';
}

Else
{
pagina
}
?>
 
- wes  -

- wes -

21/11/2006 13:08:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
If($ingelogd == 1)
{

    echo''.$code9.'';
}

Else
{
pagina
}
?>


waar staat daar ergens dat je cookie van ingelogt geset it? je kijkt daar alleen of een variabele die nog niet bestaat wel 1 is...


@niek, beetje moeite never killed a guy
 
M Ypma

M Ypma

21/11/2006 13:11:00
Quote Anchor link
@wes
beetje snelle conclusie: "of een variabele die nog niet bestaat wel 1 is..." zie mijn eerdere vraagstelling
 
Kevin Tuns

Kevin Tuns

21/11/2006 13:13:00
Quote Anchor link
Heb het script ietsje veranderd voor jullie duidelijkheid:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
if(isset($_COOKIE["gebruikersnaam"]))
{

    echo $code9;
}

Else
{

if (isset($_POST['submit']) && $_POST['submit'] == '1') {
    $gebruikersnaam     =    $_POST['gebruikersnaam'];
    $wachtwoord            =    md5($_POST['wachtwoord']);
    $tijd                =    $_POST['tijd'];
    $query                 =     mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '$gebruikersnaam'");
    $result             =     mysql_num_rows($query);
    $query1             =     mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '$gebruikersnaam' && wachtwoord = '$wachtwoord'");
    $result1            =     mysql_num_rows($query1);
    $query2             =     mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '$gebruikersnaam'");
    while($result2         =     mysql_fetch_object($query2)){
    $id                 =     $result2->memberid;
    }

      
    if($gebruikersnaam == ''){
                  $code     =     $code3;
        }
elseif($wachtwoord == ''){
                  $code     =     $code5;
        }
elseif(!preg_match('/^[A-Za-z0-9_-]+$/',$gebruikersnaam)) {
                  $code   =   $code8;
        }
elseif($result == ''){
                $code    =    $code8;
        }
elseif($result1 == ''){
                $code    =    $code8;
        }

    If($tijd == "Jaar")
        {

            $lengte = 60*60*24*365;
        }

        ElseIf($tijd == "Maand")
        {

            $lengte = 60*60*24*31;
        }

        ElseIf($tijd == "Week")
        {

            $lengte = 60*60*24*7;
        }

        Elseif($tijd == "dag")
        {

            $lengte = 60*60*24;
        }
else {
            $lengte = 60*60*24;
            }

        if(isset($code)){
        echo''.$code.'';
        }
else {
        setcookie("gebruikersnaam", $gebruikersnaam, time() + $lengte, "/");
        setcookie("wachtwoord", $wachtwoord, time() + $lengte, "/");
        setcookie("id", $id, time() + $lengte, "/");
        echo'Je bent succesvol ingelogd';
        ?>

        <meta http-equiv="refresh" content="1; url=index.php">
        <?php
        }
        }
else {
?>

<form method="POST" action="?pagina=leden/inloggen">
    <input type="hidden" name="submit" value="1">
        <table cellpadding="1" cellspacing="1" width="100%">
            <tr><td width="1%">Gebruikersnaam:</td><td><input type="text" name="gebruikersnaam"></td></TR>
            <tr><td width="1%">Wachtwoord:</td><td><input type="password" name="wachtwoord"></td></TR>
            <tr><td width="1%"></td><td><select name="tijd"><option value="Dag">Dag</option><option value="Week">Week</option><option value="Maand">Maand</option><option value="Jaar">Jaar</option></select></td></TR>
        <td width="1%"> </td><td><input type="submit" value="Inloggen"> <input type="reset" name="reset" value="Opnieuw"></td></table>
        <form>
          
<?php
}
}

?>

Het script logs me in maar nadat er staat welkom Kevin blablabla
dan logt hij je opeens weer uit.

Het script heeft het eerst wel goed gedaan dus snap de fout niet????
Gewijzigd op 01/01/1970 01:00:00 door Kevin Tuns
 
Frank -

Frank -

21/11/2006 13:14:00
Quote Anchor link
Begin je script eens met de volgende regels:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

// rest van je script
?>

Dit levert vaak wel de nodige notices op van niet-bestaande variabelen waar jij wel wat mee wilt gaan doen. $ingelogd is er zo eentje waar ik problemen mee verwacht.

Edit:
<input type="submit" value="Inloggen"> en dan in php controleren of $_POST['submit'] gelijk is aan 1... Dat gaat dus nooit en te nimmer lukken, je roept zelf dat het gaat om de value 'Inloggen'. Dat is dus heel wat anders.

print_r($_POST); had de complete inhoud van deze array voor jou op het scherm gezet, dan had je deze fout ook kunnen zien.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Kevin Tuns

Kevin Tuns

21/11/2006 14:23:00
Quote Anchor link
Als je goed kijkt naar het script zie je dat submit = 1 word meegegeven als een hidden. Dit leverde eerst ook geen problemen op. Tevens heb ik in de beginpost gezegd dat ik error_reporting(E_ALL); er al instaat.

Toch bedankt voor je hulp maar hij logt me dus wel in, maar nadat ik naar een andere pagina ben gegaan ben ik opeens uitgelogd.
 
Kevin Tuns

Kevin Tuns

21/11/2006 16:01:00
Quote Anchor link
Volgens mij ligt het probleem niet bij het script maar heeft het te maken met mijn computer want: als ik het script upload naar wat voor host dan ook dan werkt hij gewoon.????

Weet iemand misschien wat er dan mis zou kunnen zijn met mijn computer, want ik heb het met 3 verschillende servers geprobeerd.
 
- SanThe -

- SanThe -

21/11/2006 16:10:00
Quote Anchor link
michel schreef op 21.11.2006 13:07:
en je config word ook op elke pagina geinclude voor dat je die check doet?
 
Kevin Tuns

Kevin Tuns

21/11/2006 16:19:00
Quote Anchor link
ja, maar op dit moment is de check nu zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if(isset($_COOKIE["gebruikersnaam"]))
{

    echo $code9;
}

Else
{
//rest van het script
}
?>


Daar zou het dus niet aan moeten liggen.
Gewijzigd op 01/01/1970 01:00:00 door Kevin Tuns
 
CrawlBackwards

CrawlBackwards

21/11/2006 16:20:00
Quote Anchor link
waar haal je je codes weg?
result2 hoort lijkt mij niet in een loop..
welk script gebruik je om te valideren?
zoals eerder is gezegd kijk of je cookies wel geset worden nog voor je weer geeft "je bent succesvol ingelogd"
het zou kunnen dat je probleem in die loop + data in jou database zit
 
Kevin Tuns

Kevin Tuns

21/11/2006 16:26:00
Quote Anchor link
De codes komen allemaal uit het script hierboven, eerst liet ik een aantal codes zien uit de config, maar die word hier nu niet meer bij betrokken.

Ik controleerde niet of de cookies waren aangemaakt voordat ik "Je bent succesvol ingelogd" weergaf omdat ik er natuurlijk vanuit ging dat de cookies gewoon aangemaakt zouden worden. De andere pagina's kijken of de cookies bestaan en zo niet dan laten ze alleen zien wat een gast mag zien.

Het lijkt dus alsof hij de cookies niet aanmaakt.

Maar het rare is dat als ik het script op bijv. lycos zet dat het dan wel werkt.

Dit hoort natuurlijk niet zo, maar ik kan de fout niet vinden die ervoor zorgt dat het op mijn localhost niet werkt.
 
Frank -

Frank -

21/11/2006 16:30:00
Quote Anchor link
Quote:
Maar het rare is dat als ik het script op bijv. lycos zet dat het dan wel werkt.
Wanneer je jezelf een beetje gaat verdiepen in het beveiligingsbeleid van Lycos, of eigenlijk het gebrek aan beveiliging, dan zul je begrijpen dat Lycos geen referentiekader is...

Waarschijnlijk zijn de default-settings van bv. WAMP of XAMPP al beter dan de instellingen van Lycos.
 
Kevin Tuns

Kevin Tuns

21/11/2006 16:31:00
Quote Anchor link
Ja, dat begrijp ik ook wel, maar het gaat er nu om waarom hij die cookies niet wil aanmaken, en waarom hij dat wel wil doen op een andere host.
Ik ging nu even van lycos uit, maar ik heb het op superhost3000 geprobeerd, funpic en nog een aantal andere, daar had ik dit probleem niet dus wat is er fout>?????????
 
Kevin Tuns

Kevin Tuns

21/11/2006 17:43:00
Quote Anchor link
Ik heb nog eens geprobeerd om alle servers die ik had geprobeerd te upgraden; ze hadden allemaal een upgrade die ik nog niet had geinstalleerd, maar ook deze updates hadden geen effect.

Mijn laatste hoop was dat mijn php.ini bestand misschien niet goed was ingesteld, maar na het vervangen van dit bestand werkt het nog steeds niet.

Ik ben op dit moment echt einderaad en hoop dat er iemand is die me toch kan en wil helpen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.