[PHP] Naar cookie schrijven

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb net een scriptje gemaakt om een cookie password beveiliging te maken (half van internet, half van mezelf, ben nog lerende :) Maar nou zegt hij als ik naar de login pagina ga (dus na user en pass in te hebben gevoerd) Unknown database 'resource id #2'.

De code op de inlogpagina:
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
<?php 
//kijken of er een cookie is 
if (!isset($_COOKIE['cookie_info']))   
{   
echo $_COOKIE['cookie_info']; 
?>

<p align="right">
<form action="login.php" method="post">
user: <input type="text" name="user" size="12">
pass: <input type="text" name="pass" size="12">
<input type="submit" value="Log in">
</form></p>

<?php } 
else 
{ 
  //Cookie gegenereerd en geeft data terug
   $cookie_info = explode("-", $_COOKIE['cookie_info']);  //Data eruit halen
   $name = $cookie_info[0]; 
   $pass = $cookie_info[1]; 
   echo "<center><h3>Welkom terug $user je password is $pass";   
   echo "<a href='logout.php'>Logout</a>"; 
   exit; 
} 
?> 


En die op de cookie-maak pagina:

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
<?php 
if(empty($_POST['user']) || empty($_POST['pass'])) 
{  ?> 
    <b>Vul user en pass in!</b> 
              <?php exit; 
} 
else 
{ 
    //Gegevens verzamelen en controleren
    $time = time(); 
    $name = $_POST['user']; 
    $pass =md5($_POST['pass']); 
    $db = mysql_connect("localhost", "root") or die(mysql_error()); 
    mysql_select_db($db) or die(mysql_error()); 
              $query = "select * from login where User='$name' and Pass='$pass'";   
    $sql = mysql_query($query) or die(mysql_error()); 
    $count = mysql_num_rows($sql); 
     
    if ($count == 1) 
    { 
        $cookie_data = $name.'-'.$pass;   
        if($check=='ON') 
        { 
            if(setcookie ("cookie_info",$cookie_data, $time+3600)==TRUE) 
            { 
                echo "Cookie SET".$cookie_data; ?> 
                <a href='logout.php'>Logout</a> 
                 
            <? } 
        } 
    } 
    else 
    { 
        echo "Authentication Failed"; 
        exit; 
    }   
} 
?> 


Ik zou niet durven zeggen waar het aan kan liggen...

[ Voor 77% gewijzigd door Verwijderd op 29-01-2004 17:25 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Heb je wel een database aangemaakt???

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
:O

hehe, ja, tabel heet "login", met een id, User en Pass kolom (row of cols, haal dat altijd door elkaar :D)

trouwens, heb bij het inlogscherm de "blijf ingelogd" optie ff weggehaald.

[ Voor 38% gewijzigd door Verwijderd op 29-01-2004 17:24 ]


Acties:
  • 0 Henk 'm!

  • Jerry
  • Registratie: September 2001
  • Laatst online: 09-04-2022

Jerry

Who?

Deze regel:
PHP:
1
mysql_select_db($db) or die(mysql_error());


Moet worden:
PHP:
1
mysql_select_db("dbnaam", $db) or die(mysql_error());


Waarbij je dbnaam door jouw databasenaam moet vervangen uiteraard ;).

[ Voor 22% gewijzigd door Jerry op 29-01-2004 17:29 ]

Specs
Youtube celebrity
D3 Crusader


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
yup, dat wassem :)

Beetje jammer dat hij nu de hele tijd "authentication failed" zegt :):):)

heeft dat iets met dat md5 te maken? Ik heb 2 verschillende user en passes die bij elkaar horen, maar geen van beide combinaties werken..... mm.... wat nu?

[ Voor 49% gewijzigd door Verwijderd op 29-01-2004 17:36 ]


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 21-09 14:28
Heb jij error reporting op E_ALL staan? Want dat zou misschien nog weleens wat kunnen verklaren. Heb je verder al gekeken of de waarden wel verstuurd worden, print_r($_POST);enzovoorts?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
djluc schreef op 29 januari 2004 @ 17:46:
Heb jij error reporting op E_ALL staan? Want dat zou misschien nog weleens wat kunnen verklaren. Heb je verder al gekeken of de waarden wel verstuurd worden, print_r($_POST);enzovoorts?
dat error reporting heeft verder toch niets te maken met een geretourneerde echo uit het script zelf? als de waarden niet goed zijn... toch? /edit, oeps, je bedoeld dat is anders meer foutmeldingen krijg die iets zouden kunnen verklaren :D /edit

Verder ga ik nu ff de waarden GET-en om ze te controledingesen :P


edit:
De waarden user & pass worden goed meegegeven, precies zoals ze in de tabel onder User en Pass staan....

[ Voor 20% gewijzigd door Verwijderd op 29-01-2004 17:54 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
met alle error reportings aan, nog steeds alleen: authentication failed...

Acties:
  • 0 Henk 'm!

  • Lord_T
  • Registratie: Oktober 2000
  • Laatst online: 16-09 00:11
zou trouwens 1 ding minstens nog veranderen....

PHP:
1
pass: <input type="text" name="pass" size="12">


veranderen in:

PHP:
1
pass: <input type="password" name="pass" size="12">



lost je probleem niet op maar wel zo netjes...

edit:

zou je probleem aan het volgende kunnen liggen?
ik ben er trouwens absoluut niet zeker van omdat ik vrij nieuw ben met php maar ok....

je doet het volgende: je hebt een passw die in plain text is -> die versleutel je via md5 en dan probeer je die te vergelijken met een db waarde die ook in plain text is...

en dan:
edit:
De waarden user & pass worden goed meegegeven, precies zoals ze in de tabel onder User en Pass staan....
is dit na versleuteling met md5 of ervoor?

[ Voor 56% gewijzigd door Lord_T op 30-01-2004 10:00 ]

ja ja... niet iedereen heeft dezelfde kennis... wees daarom ook eens gewillig en geef een antwoord op een vraag ;)


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Doe eens een echo van de query en laat die eens los op mysql, dmv PHPMyAdmin of de command line.

Misschien krijg je wel 2 records terug?

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • FlowinG
  • Registratie: Maart 2003
  • Laatst online: 19-09 17:00
Ik kan het fout hebben maar ik denk het niet: jij haalt volgens mij isset en empty door elkaar. Jij controleerd of $_COOKIE['cookie_info'] is gedefinieerd, als dat niet het geval is, dan moet hij naar de pagina weggeschreven worden, maar dat kan natuurlijk niet. Zorg er iig voor dat die klopt, bv door die ! weg te halen of isset te vervangen door empty() (wat ik zelf zou doen)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Lord_T schreef op 30 januari 2004 @ 09:52:

zou je probleem aan het volgende kunnen liggen?
ik ben er trouwens absoluut niet zeker van omdat ik vrij nieuw ben met php maar ok....

je doet het volgende: je hebt een passw die in plain text is -> die versleutel je via md5 en dan probeer je die te vergelijken met een db waarde die ook in plain text is...

en dan:

[...]

is dit na versleuteling met md5 of ervoor?
Ja, inderdaad, ik dacht al zoiets " dat kan nooit zo :)", nou moet ik als ik straks thuis ben even een aanmeld scriptje maken, waarbij hij het wachtwoord in md5 in de database zet, anders komt het natuurlijk niet overeen :) (lees: wachtwoord == 123178ycsdjkc4i9yr292c :D )

Bedankt!
Pagina: 1