hallo vrienden, ben een php programma aan het schrijven waar je een register php en activation hebt. Tot de moment dat je een activation email met code krijgt loopt het ongeveer goed, het probleem is dat ik zie in mijn database in de tabel code steeds dezelfde code zie van 4 cijfers alhoewel in een random heb staan van 8, hoe komt die, wat kan ik doen om het te veranderen, alsook als je dan op de activation link klikt en de code met username en password ingeefd je telkens een error bericht krijgt dat de code niet juist is.
volgende code in register.php
"$email1 = mysql_real_escape_string($email1);
$pass1 = mysql_real_escape_string($pass1);
$code = rand(23456789, 99999999);

$pass = md5 ($password);


$full_birthday = "$b_y-$b_m-$b_d";


$ipaddress = getenv('REMOTE_ADDR');


$sql = mysql_query("INSERT INTO meetyourpal2 (username, gender, birthday, email, password, ipaddress, sign_up_date, code)
VALUES('$username','$gender','$full_birthday','$email1','$db_password', '$ipaddress', '$code', now())") "
De volgende code zie ik in mijn database
code 2011
code 2011

Wie kan mij helpen, groetjes en alvast bedankt,peter
je hebt je code en de datum omgewisseld in je query
Dit:

$sql = mysql_query("INSERT INTO meetyourpal2 (username, gender, birthday, email, password, ipaddress, sign_up_date, code)
VALUES('$username','$gender','$full_birthday','$email1','$db_password', '$ipaddress', '$code', now())") "


Wordt dus:

$sql = mysql_query("INSERT INTO meetyourpal2 (username, gender, birthday, email, password, ipaddress, sign_up_date, code)
VALUES('$username','$gender','$full_birthday','$email1','$db_password', '$ipaddress', now() , '$code')") "
Je moet ook je variabelen niet tussen quotes zetten bij values...

dus VALUES($username, $gender, enz.)
dank je dutch guy, dit is opgelost, maar als ik dan op de activatie link klik, geeft hij nu aan dat je geactiveert bent, maar in de database blijft hij als niet geactiveert, en als ik dan de login doe dan krijg ik natuurlijk een error als invallid.
wat nu?
Peter druyts op 31/01/2011 17:03:19

dank je dutch guy, dit is opgelost
Ha, wat leuk dat je mij ook even bedankt.

sorry ozzi, had dit geplaatst voor ik jou bericht kreeg
Ozzie PHP op 31/01/2011 16:56:35

Je moet ook je variabelen niet tussen quotes zetten bij values...

dus VALUES($username, $gender, enz.)


Wel tussen de enkele maar uit de dubbele quotes.
dus ... "INSERT .... VALUES('" . $username . "', '" . $gender . "', enz.)

En denk aan sql-injection.
Je zult op de activatie pagina een UPDATE query uit moeten voeren om je account op geactiveerd te zetten.


UPDATE
	user
SET
	geactiveerd = 1
WHERE
	activatiecode = '".mysql_real_escape_string( $_GET['code'] )."'


Dat zou dan ongeveer je opzet worden. Je zou het ook zo kunnen doen:[b

Database:
activated
- user_id
- activate_code

User
- id
- username
- password
- name
etc etc.

En dan de regel uit de activated tabel halen als je geactiveerd bent. Tis maar een idee hoor (A).

@ Ozzie: En dit gaat waarover?
- SanThe - op 31/01/2011 17:14:19

Wel tussen de enkele maar uit de dubbele quotes.
dus ... "INSERT .... VALUES('" . $username . "', '" . $gender . "', enz.)
moet dat per se tussen quotes? Zou het zonder niet werken?

@Milo: huh? U zegt?

Milo, heb het uitgeprobeerd, maar dan krijg ik een error dat hij mijn username en wachtwoord niet herkend,
Vraagje, kan het zijn, omdat ik in mijn database de emailactivated heb staan dat ik dan in de php van UPDATE het ook moet gebruiken,
Ozzie en Santhe bedankt, heb het ingebracht

Reageren