Már megint én vagyok a bolond?
a regisztráláshoz az e-mailben kapott aktiváló linkre kell kattintani,de mindig azt kapom vissza,hogy sajnáljuk nem sikerült aktiválni fiókját.
reg_feldolgoz.php:
<?php
session_start();
$host = "mysql.hostinger.hu";
$user = "u166192821_sherl";
$password = "jelszóm";
$db = "u166192821_sherl";
$felhasznalo = $_POST['felhnev'];
$mail = $_POST['email'];
$pass1 = $_POST['jelszo1'];
$pass2 = $_POST['jelszo2'];
If($pass1 != $pass2){
header("Location:clubbunk.php?pass_hiba=1");
}
else{
If($pass1 == "" || $pass2 == "" || $mail == "" || $felhasznalo == ""){
header("Location:clubbunk.php?ures_hiba=1");
}
else{
If(strlen($felhasznalo)>20 || strlen($pass1)>20){
header("Location:clubbunk.php?hossz_hiba=1");
}
else{
$kapcsolat = mysql_connect("$host","$user","$password") or die ("HIBAA");
mysql_select_db ($db, $kapcsolat) or die ("Sikertelen kapcsolódás");
$sql = "INSERT INTO tags (felhnev, mail, pass, active) VALUES ('$felhasznalo', '$mail', '$pass1', 'Nem')";
$eredmeny = mysql_query($sql) or die ("Nem sikerült adataidat elmenteni");
function generateRandomString($length = 20) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
$g = generateRandomString();
$_SESSION['kod'] = $g;
$_SESSION['felh']= $felhasznalo;
if(mysql_affected_rows()>0)
{
echo "Sikeresen regisztráltál az oldalunkra! <br /> Az e-mail címedre küldük az aktiváló linket: $mail";
$uzenet = "Felhasználónév: $felhasznalo , a jelszavad pedig: $pass1, az aktiváló link pedig: [link]
mail ($mail, 'Regisztráció', $uzenet);
}
else
{
echo "Nem sikerült elküldeni az e-mailt!";
}
}
}
}
mysql_close($kapcsolat);
?>
aktivalo.php:
<?php
session_start();
$host = "mysql.hostinger.hu";
$user = "u166192821_sherl";
$password = "jelszóm";
$db = "u166192821_sherl";
$kod = $_SESSION['kod'];
$kod_link = $_GET['a'];
$felhnev = $_SESSION['felh'];
If($kod == $kod_link){
$kapcsolat = mysql_connect("$host","$user","$password") or die ("HIBAA");
mysql_select_db ($db, $kapcsolat) or die ("Sikertelen kapcsolódás");
$erre = 'igen';
$sql = "UPDATE tags SET active = $erre WHERE felhnev = $felhnev";
$eredmeny = mysql_query($sql) or die ("Nem sikerült adataidat elmenteni");
echo
'<html>
<head>
<title>sikeres</title>
</head>
<body style="background-color:black;">
<div style="background-color:white;color:black;font-size:30px;border-radius:5px;width:100%;"><h1>Fiókját sikeresen aktiváltuk :) .</h1></div>
</body>
</html>';
}
else{
echo
'<html>
<head>
<title>sikertelen</title>
</head>
<body style="background-color:black;">
<div style="background-color:red;color:white;font-size:30px;border-radius:5px;width:100%;"><h1>Sajnáljuk,de nem sikerült aktiválnunk fiókját :( .</h1></div>
</body>
</html>';
}
?>
Előrebocsátom, nem vagyok PHP guru, okosabbak javítsanak. :)
Ha az email-ből kattint valaki a linkre, az biztos, hogy ugyanaz a session lesz? Én ezt csekkolnám a helyedben elsőként. (Írasd ki a session id-ket mind2 helyen.)
Egyébként szerintem nem is logikus a session-t belevonni az aktiválásba. Mivan ha freemail-es a fickó és 3 nap múlva érkezik meg neki a levél? Akkor pláne nem lesz abban session-ben, mert nem fog 3 napig az oldalad előtt ücsörögni F5-öt nyomkodva.
Aktiváláskor sz.v.sz. semmi más nem kell, csak a linkben levő kód, és ez alapján keresse ki a db-ben az aktiválandó júzert.
Szerintem.
Ne használj session -t.
Hozz létre egy mezőt adatbázisban ahova eltárolod az aktiváló kódot a felhasználóhoz.
Én a helyedben ilyen linket küldenék ki:
Ezután a aktiválóban a mysql -ből kérd le a felhasználóhoz tartozó aktiváló kódot és vesd össze a kapottal.
Ugródeszkának megteszi, de persze lehet majd még tovább fejleszteni...
natúr jelszó megy db-be?
jelszó emailben?
Köszönöm szépen és igazatok van ez lesz a megoldás :)
Köszi még 1x
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!