Preskoči na sadržaj
Ista raja. Nova runda.
GAMERZ.ba — REBORN
Diskusija

PHP generator

205 pregleda · 4 odgovora · otvorena 28.12.2010. u 16:37

Vozdra raja.
Trebao bi mi kod za PHP random code generator i validator. Znači, skripta za generisanje nasumičnog koda koji je potrebno unijeti u neko polje za aktivaciju (kao token koji se primi na e-mail prilikom registracije na neki forum).
Hvala unaprijed!
Jason je napisao/la:
Treba ti captcha, umjesto da kodiraš svoju. Koristi "reCaptcha".

http://www.google.com/recaptcha/whyrecaptcha

Definitivno je najbolja.
reCaptcha provjerava da li si "ljudsko bice",njemu je potrebna verifikacija emaila...

Napravi novu tabelu sa imenom ne_verifikovani_korisnici za ne verifikovane korisnike.
Zatim napravi :
- verif_kod,varchar(50)
- username,varchar(50)
- password,varchar(20)
- mail,varchar(50)

Recimo da koristis formu slicnu ovoj za registraciju:

<form name="regg" method="post" action="reg.php">
<input name="username" type="text">
<input name="mail" type="text">
<input name="pw" type="password">
<input type="submit" name="regse" value="Registruj se">
</form>

onda bi reg.php izgledao ovako:
<?
/*
ovdje upisi kod za konektovanje sa bazom
*/
if (!$_POST["regse"]){

$verif_kod=md5(uniqid(rand()));

$username=$_POST['username'];
$password=$_POST['pw'];
$mail=$_POST['mail'];


$query="INSERT INTO ne_verifikovani_korisnici(verif_kod, username, mail, password)VALUES('$verif_kod', '$username', '$mail', '$password')";
$r=mysql_query($query);

if($r){
$kome=$mail;
$naslov="verifikacija";
$od="od:[email uklonjen]";
$poruka.="http://tvojsite.com/verifikujse.php?kod=$verif_kod";

$posalji = mail($kome,$naslov,$poruka,$od);

}

if($posalji){
echo "Kod za verifikaciju poslan";
}
else {
echo "greska";
}

}
?>

a verifikujse.php:

<?
/*
ovdje upisi kod za konektovanje sa bazom
*/

$kod=$_GET['kod'];
$q="SELECT * FROM ne_verifikovani_korisnici WHERE verif_kod ='$kod'";
$r=mysql_query($q);


if($r){

$c=mysql_num_rows($r);
if($c==1){

$red=mysql_fetch_array($r);
$username=$red['username'];
$mail=$red['mail'];
$password=$red['password'];


// registrovani_korisnici zamjeni sa imenom tabele koje koristis za registrovane korisnike
$q2="INSERT INTO registrovani_korisnici(username, mail, password)VALUES('$username', '$mail', '$password')";
$r2=mysql_query($q2);
}

else {
echo "Kod nije validan";
}

if($r2){

echo "Racun aktiviran";

$q3="DELETE FROM ne_verifikovani_korisnici WHERE verif_kod = '$kod'";
$r3=mysql_query($q3);

}

}
?>


Nebi trebalo biti gresaka u kodu,ako neko pronadje gresku citiraj 
q7eb2a je napisao/la:
reCaptcha provjerava da li si "ljudsko bice",njemu je potrebna verifikacija emaila...

Napravi novu tabelu sa imenom ne_verifikovani_korisnici za ne verifikovane korisnike.
Zatim napravi :
- verif_kod,varchar(50)
- username,varchar(50)
- password,varchar(20)
- mail,varchar(50)

Recimo da koristis formu slicnu ovoj za registraciju:

<form name="regg" method="post" action="reg.php">
<input name="username" type="text">
<input name="mail" type="text">
<input name="pw" type="password">
<input type="submit" name="regse" value="Registruj se">
</form>

onda bi reg.php izgledao ovako:
<?
/*
ovdje upisi kod za konektovanje sa bazom
*/
if (!$_POST["regse"]){

$verif_kod=md5(uniqid(rand()));

$username=$_POST['username'];
$password=$_POST['pw'];
$mail=$_POST['mail'];


$query="INSERT INTO ne_verifikovani_korisnici(verif_kod, username, mail, password)VALUES('$verif_kod', '$username', '$mail', '$password')";
$r=mysql_query($query);

if($r){
$kome=$mail;
$naslov="verifikacija";
$od="od:[email uklonjen]";
$poruka.="http://tvojsite.com/verifikujse.php?kod=$verif_kod";

$posalji = mail($kome,$naslov,$poruka,$od);

}

if($posalji){
echo "Kod za verifikaciju poslan";
}
else {
echo "greska";
}

}
?>

a verifikujse.php:

<?
/*
ovdje upisi kod za konektovanje sa bazom
*/

$kod=$_GET['kod'];
$q="SELECT * FROM ne_verifikovani_korisnici WHERE verif_kod ='$kod'";
$r=mysql_query($q);


if($r){

$c=mysql_num_rows($r);
if($c==1){

$red=mysql_fetch_array($r);
$username=$red['username'];
$mail=$red['mail'];
$password=$red['password'];


// registrovani_korisnici zamjeni sa imenom tabele koje koristis za registrovane korisnike
$q2="INSERT INTO registrovani_korisnici(username, mail, password)VALUES('$username', '$mail', '$password')";
$r2=mysql_query($q2);
}

else {
echo "Kod nije validan";
}

if($r2){

echo "Racun aktiviran";

$q3="DELETE FROM ne_verifikovani_korisnici WHERE verif_kod = '$kod'";
$r3=mysql_query($q3);

}

}
?>


Nebi trebalo biti gresaka u kodu,ako neko pronadje gresku citiraj :)
Hmmmm cini mi se da imas gresku :)

"if (!$_POST["regse"]){ ...... "

Mislim da bi trebalo ici ovako :)

if(isset($_POST["regse"])) { .....


Ili ukoliko zelis provjeriti da li je da li je korisnik poslao podatke kliknuo dugme posalji ili koje vec :) te ako nije prikazati formu mozes i ovako :)

if(!isset($_POST["regse"])) {

// Korisnik nije poslao podatke prikazni formu ponovo
} else {

// Korisnik poslao podatke nastavi izvrsavati ostatak koda :)
}

Ostatak koda mi se cini ok :)

Prijavi se da bi odgovorio/la na ovu temu.