[PHP+SQL+cookie]cookie wilt niet werken..

Pagina: 1
Acties:

  • Ankh
  • Registratie: Mei 2001
  • Laatst online: 22:03
Ik ben via phpfreakz een login systeem aan het maken waarbij ik dus altijd ingeloged blijft.. hieronder zal ik ff alle files die ik gebruik....
config.inc.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
<?
/*config file*/
$db_hostname = "localhost";
$db_database = "rammstein";
$db_user = "ikke";
$db_password = "/* tsa */";

$mysql_handle = mysql_connect($db_hostname,$db_user,$db_password) or die('Sorry cant connect');
mysql_select_db($db_database,$mysql_handle);

function GetPassword($username) { 
    $pass = ""; 
    $query = "SELECT * FROM members where gebruiker='$username'"; 
    $result = mysql_query($query) or die ("Oops....fout in fuctie"); 
    $Results = mysql_num_rows($result); 
    if ($Results == '1') { 
        $r = mysql_fetch_array($result); 
        $d_username  = $r["gebruiker"]; 
        $pass  = $r["wachtwoord"]; 
    } else { 
        $pass = ''; 
    };
    return $pass; 
} 
function IsLoggedIn() { 
   global $username, $password; 
   if ($username && $password) { 
      $pass = md5(GetPassword($username)); 
      return ($password == $pass); 
   } 
   else return FALSE; 
} 
?>

bedankt.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
<? /* test file om te kijken of het wel werkt... */
   include("config.inc.php"); 
   $logged_in = IsLoggedIn(); 
?> 

<html> 
<head> 
   <title>Login-script</title> 
</head> 

<body> 
<? if ($logged_in) { ?> 
<h3>Thnx!</h3> 

You are now logged in: <b><? echo $username; ?></b><p> 

<? } else { ?> 

<h3>Oops!</h3> 

Logging in has failed, your browser must support cookies or something else has gone wrong
<? 
} ?> 

</body> 
</html> 

login.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
<? /* login systeem */
if ($HTTP_POST_VARS["login_user"] && $HTTP_POST_VARS["login_password"]) { 
    $pass = md5($HTTP_POST_VARS["login_password"]);     
    setcookie("username", $HTTP_POST_VARS["login_user"], 0, "/"); 
    setcookie("password", $pass, 0, "/"); 
    echo $_COOKIE['username'];
    echo "<br>";
    echo $_COOKIE['password'];
/*  header("Location: bedankt.php"); */
    exit; 
} ?> 
<html> 
<head> 
   <title>Login-script</title> 
</head> 
<body> 

<h3>Login-script</h3> 

<form action="login.php" method="post"> 
  Username:<br> 
  <input type="Text" name="login_user"><p> 
  Password:<br> 
  <input type="Password" name="login_password"><p> 

  <input type="Submit" value="  Login!  "> 

</form> 

</body> 
</html>

index.php (een gedeelte dat als eerste staat):
PHP:
1
2
3
4
5
6
<? /* logout stuff */ if($site == logout) {
setcookie("username", "logout", 0, "/"); 
setcookie("password", "test", 0, "/"); 
header("location: /");
exit;
} else { ?>

tabel:
PHP:
1
2
3
4
5
6
CREATE TABLE members (
  memberid int(11) unsigned NOT NULL auto_increment,
  gebruiker varchar(100) default '0',
  wachtwoord varchar(100) default '0',
  PRIMARY KEY  (memberid)
) TYPE=MyISAM;

die tabel werk ik in, nog maar een simpel begin wordt later allemala uit gebreid :)

uitleg:
op mijn index.php staat een link (onclick voor een popup) die opent login.php, waar je dus je naam + password moet invullen... deze set het cookie.

en je wordt door gestuurt naar bedankt.php (deze maar ff gemaakt om te kijken of het werkt..) maar niet dus... hier blijf ik het antwoord krijgen dat het niet werkt, dat ik misschien de cookies moet accepteren, maar dit werkt gewoon. 8)7

ik snap het niet meer.. waarschijnlijk zie ik iets over het hoofd maar ik zie dus niet wat.

Verwijderd

probeer eens:

PHP:
1
setcookie("password", "test", time() + 60*60, "/");


je hebt nu de levensduur van je cookie gezet op t/m 1-1-1970

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
// Example 1. setcookie() send examples //
setcookie ("TestCookie", $value);
setcookie ("TestCookie", $value,time()+3600);  /* expire in 1 hour */
setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);

// Example 2. setcookie() delete examples//
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
 
/* sorry niet goed gelezen */


deze hele structuur is verandert in php 4.2, kijk in de manual op php.net

Bron:
http://www.php.net/manual/en/function.setcookie.php

Waarom geen session???????, werkt veel handiger

[ Voor 146% gewijzigd door Verwijderd op 28-11-2002 16:29 ]


Verwijderd

heb je dan niet het probleem dat de cookie expired wanneer je je browser sluit?
Aangezien er geen expire parameter meegegeven kan worden?

Ik heb begrepen dat je bij cookie's setten nog de setcookie gebruikt en het uitlezen doet met $_COOKIE[], in tegenstelling tot sessions...
Daar zijn andere discussies voor, hij wil graag cookie gebruiken en vraagt waarom het niet werkt (nofi).

[ Voor 34% gewijzigd door Verwijderd op 28-11-2002 16:24 ]


Verwijderd

Daar zijn andere discussies voor, hij wil graag cookie gebruiken en vraagt waarom het niet werkt (nofi).
Sorry, ik was weer eens te snel!!

Verwijderd

offtopic:
No problem Jorisor


Maar RaMMSTeiN, geef eens gil of dit wel werkt?

  • Ankh
  • Registratie: Mei 2001
  • Laatst online: 22:03
ok thnx ik ga het ff uitproberen thnx

  • Ankh
  • Registratie: Mei 2001
  • Laatst online: 22:03
PHP:
1
2
3
4
5
6
7
8
<?
if ($HTTP_POST_VARS["login_user"] && $HTTP_POST_VARS["login_password"]) { 
    $pass = md5($HTTP_POST_VARS["login_password"]);     
    setcookie("username", $HTTP_POST_VARS["login_user"]); 
    setcookie("password", $pass); 
    header("Location: bedankt.php");
    exit; 
} ?> 


ik heb het begin bij login.php verandert... maar dit werkt dus niet..

Verwijderd

PHP:
1
2
3
4
5
6
7
8
<? 
if ($HTTP_POST_VARS["login_user"] && $HTTP_POST_VARS["login_password"]) {  
    $pass = md5($HTTP_POST_VARS["login_password"]);      
    setcookie("username", $_POST["login_user"], time() + 3600, '', '', 0);  
    setcookie("password", $pass, time() + 3600, '', '', 0);    
    header("Location: bedankt.php"); 
    exit;  
} ?> 


en zo?
Want je hebt nog steeds time() + 3600 er niet in staan....

Welke PHP versie gebruik je eigenlijk, want misschien bestaat $_COOKIE nog helemaal niet bij jou en moet je $HTTP_COOKIE_VARS[] gebruiken

[ Voor 62% gewijzigd door Verwijderd op 28-11-2002 17:00 ]


  • Ankh
  • Registratie: Mei 2001
  • Laatst online: 22:03
ik probeer het even moment.

ik gebruik trouwens 4.2.3 op host en thuis 4.2.0

  • Ankh
  • Registratie: Mei 2001
  • Laatst online: 22:03
jammer werkt dus ook niet vaag...

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Je bedankt.php roept config.inc.php aan, maar config.inc.php doet niks met cookies?
Okeej, je roept de vars op, maar dan wel op de meest brute manier die ik ken :)

En kijk ff hier: implode. Dan kan je er één cookie van maken, en hoeft de "<br>" niet. Kan best zijn dat ie het dan wel doet.
Tot slot nog een loze opmerking: cookies werken pas bij de volgende pagina. Nu je php sided doorlinkt kan het zijn dat dat gerekend wordt tot één pagina, waardoor de cookies nog niet geset zijn. Twee oplossingen: paas de vars ff door naar bedankt.php, of doe eens F5 op de bedankt.php pagina (wat krijg je dan?).

Spolap: Interactive webcomic


  • Ankh
  • Registratie: Mei 2001
  • Laatst online: 22:03
wacco schreef op 28 november 2002 @ 18:37:
Je bedankt.php roept config.inc.php aan, maar config.inc.php doet niks met cookies?
Okeej, je roept de vars op, maar dan wel op de meest brute manier die ik ken :)

En kijk ff hier: implode. Dan kan je er één cookie van maken, en hoeft de "<br>" niet. Kan best zijn dat ie het dan wel doet.
Tot slot nog een loze opmerking: cookies werken pas bij de volgende pagina. Nu je php sided doorlinkt kan het zijn dat dat gerekend wordt tot één pagina, waardoor de cookies nog niet geset zijn. Twee oplossingen: paas de vars ff door naar bedankt.php, of doe eens F5 op de bedankt.php pagina (wat krijg je dan?).
Thnx ik zal het eens proberen, die F5 werkt niet..

ik heb deze manier gedaan omdat ik hier enkel een tutor van vond :+ miscshien dat er nog ergens wat over staat.. maar denk het niet...

  • Ankh
  • Registratie: Mei 2001
  • Laatst online: 22:03
hmm krijg het nog steeds niet aan de praat...
iemand een id waarom het niet werkt?
en nee geen sessies want ik wil graag altijd ingelogd blijven.. of kan dat ook met sessies?

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
RaMMSTeiN schreef op 29 November 2002 @ 13:43:
en nee geen sessies want ik wil graag altijd ingelogd blijven.. of kan dat ook met sessies?
Natuurlijk kan dat. Je kant het gegenereerde SessionID namelijk ook handmatig in een cookie opslaan.
Je kunt dan ook een tabel met sessionid's en daaraan gekoppelde userid's gaan bijhouden voor alle logins

It’s nice to be important but it’s more important to be nice


  • Ankh
  • Registratie: Mei 2001
  • Laatst online: 22:03
JonkieXL schreef op 29 november 2002 @ 15:10:
[...]

Natuurlijk kan dat. Je kant het gegenereerde SessionID namelijk ook handmatig in een cookie opslaan.
Je kunt dan ook een tabel met sessionid's en daaraan gekoppelde userid's gaan bijhouden voor alle logins
hm dat is opzich ook wel handig.. is hier meer over te vinden? want ik wil wel via artikel/tutorial werken.. zodat ik het meteen beter snap

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Een link naar die tut zou handig zijn...

Spolap: Interactive webcomic


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Verwijderd schreef op 28 November 2002 @ 16:58:
PHP:
1
2
3
4
5
6
7
8
<? 
if ($HTTP_POST_VARS["login_user"] && $HTTP_POST_VARS["login_password"]) {  
    $pass = md5($HTTP_POST_VARS["login_password"]);      
    setcookie("username", $_POST["login_user"], time() + 3600, '', '', 0);  
    setcookie("password", $pass, time() + 3600, '', '', 0);    
    header("Location: bedankt.php"); 
    exit;  
} ?> 
't is een klassieker:
Cookies setten werkt niet in combinatie met redirecten. (althans geen HTTP-redirect)

Localhost, sweet localhost


  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Told ya :)
wat je kan doen is:
PHP:
1
2
3
4
5
6
7
8
9
<? 
if ($HTTP_POST_VARS["login_user"] && $HTTP_POST_VARS["login_password"]) {  
    $pass = md5($HTTP_POST_VARS["login_password"]);      
    setcookie("username", $_POST["login_user"], time() + 3600, '', '', 0);  
    setcookie("password", $pass, time() + 3600, '', '', 0);    
    include "bedankt.php";
} else { ?> 
/* rest van die pagina */
<? } ?>

[ Voor 20% gewijzigd door wacco op 29-11-2002 20:29 . Reden: typo ]

Spolap: Interactive webcomic


Verwijderd

Ik heb laatst ook eens gehoord dat je $HTTP_POST_VARS ook niet in een cookie kan zetten. Gewoon deze variable niet. Is dat zo, en of is daar een oplossing voor?

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Nonsens, $HTTP_POST_VARS zijn variabelen, en in cookies kunnen variabelen. Wat me wel opvalt is dat er de ene keer om $HTTP_POST_VARS["login_user"] wordt gevraagd, en bij het coookie setten om de $_POST["login_user"]. Ik heb het zelfs doodleuk gequote :)
Moet je zowiezo voor de netheid ff aanpassen...

Spolap: Interactive webcomic

Pagina: 1