Mam pewien problem z kodem, a mianowicie napisałem skrypt formularza rejestracji. Po rejestracji konta na adres e-mail przychodzi wiadomość z linkiem aktywacyjnym, ale przed wejściem w link można spokojnie zalogować się na konto z dostępem do zasobów użytkownika. Poniżej plik register.php oraz login.php Proszę o jakieś sugestue.
<?php
echo '<legend>Logownie do konta</legend>';
if($_SESSION['zalogowany_mastercooks'] == "TAK"){
?>
<form action="" method="post" id="rejestracja_form" autocomplete="off">
<ul style="list-style-type: none;">
<li><input type="text" name="login_l" id="login_l" placeholder="Login" style="width: 172px; margin-left: -11px;"/></li>
<li><input type="password" name="haslo_l" id="haslo_l" placeholder="Haslo" style="width: 172px; margin-left: -11px;" /></li>
</ul>
<input type="hidden" name="sublogin" value="true" />
<input class="btn" type="submit" value="Zaloguj" name="submit" style="height: 27px; margin-left: -12px; margin-top: -5px;" />
</form>
<?php
}
if($_GET['logout'] == 'tak'){
session_destroy();
echo "<span class=\"alert alert-dismissable alert-success\" />Zostałeś pomyślnie wylogowany ze swojego konta. Za chwilę nastąpi przekierownie na stronę główną ...</span> <meta http-equiv=\"Refresh\" content=\"2; url=index.php\" />";
}
else if($user != ''){
echo "JESTEŚ ZALOGOWANY JAKO: $user";
}
else if (!isset($_POST['sublogin']))
{
}
else {
$loginl = $_POST['login_l'];
$haslol = $_POST['haslo_l'];
if(empty($loginl) || empty($haslol)){
}
else {
$haslol = md5($haslol);
$da = mysql_query("SELECT * FROM users WHERE MD5(nick) = MD5('$loginl') AND haslo='$haslol'");
$ilewpisow = mysql_num_rows($da);
if($ilewpisow > 0){
$zapytanie2 = mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE MD5(nick) = MD5('$loginl')"));
$haslo = $zapytanie2['haslo'];
$idto = $zapytanie2['id'];
/*
session_register("zalogowany_mastercooks");
session_register("nick_mastercooks");
session_register("id_mastercooks");*/
$_SESSION['zalogowany_mastercooks'] = "TAK";
$_SESSION['nick_mastercooks'] = $loginl;
$_SESSION['id_mastercooks'] = $idto;
echo "<span class=\"alert alert-dismissable alert-success\" />Zostałeś pomyślnie zalogowany na swoje konto. Za chwilę nastąpi przekierownie na stronę główną ...</span> <meta http-equiv=\"Refresh\" content=\"3; url=index.php\" />";
}
else {
echo "<span class=\"alert alert-dismissable alert-errors\" />Wpisałeś niepoprawne hasło lub login. Spróbuj ponownie</span>";
}
}
}
?>
<?php
if(!isset($_POST['submitted'])){
}else{
$loginf = clear($_POST['login']);
$haslof = clear($_POST['haslo']);
$emailf = clear($_POST['email']);
$regf = clear($_POST['regulamin']);
if(empty($loginf) || empty($haslof) || empty($emailf)){
echo "Uzupełnij wszystkie dane!!";
}else{
$t = mysql_query("SELECT * FROM users WHERE MD5(nick) = MD5('$loginf')");
$ilenickow = mysql_num_rows($t);
$ta = mysql_query("SELECT * FROM users WHERE email = '$emailf'");
$ilemail = mysql_num_rows($ta);
if($ilenickow > 0){
error("Login jest już używany.");
}else if($ilemail > 0){
error('Email jest już używany.');
}else if($regf > 0){
error('Zatwierdź regulamin serwisu.');
}else{
$haslof = md5($haslof);
mysql_query("INSERT INTO users SET nick='$loginf', haslo='$haslof', email='$emailf', kasa='1', active='0'");
$id = mysql_insert_id();
$link = str_replace('register.php', '', $_SERVER['SCRIPT_NAME']);
$link = $_SERVER['HTTP_HOST'].$link;
success("Zostałeś zarejestrowany. Aby się zalogować musisz potwierdzić adres email poprzez wejście w link który został wysłany na twóją skrzynkę.");
$naglowki = "Reply-to: [email protected] <[email protected]>".PHP_EOL;
$naglowki .= "From: [email protected] <[email protected]>".PHP_EOL;
$naglowki .= "MIME-Version: 1.0".PHP_EOL;
$naglowki .= "Content-type: text/html; charset=UTF-8".PHP_EOL;
$messange = '<div style="text-align:center">
<span style="color:rgb(0,0,255)">
<font size="6">
<b>Witaj '.$loginf.'!</b>
</font>
</span>
<br>
<font size="4">
Aby aktywować swoje konto kliknij <a target="_blank" href="http://'.$link.'?activate='.$id.'&key='.$haslof.'">Tutaj</a><br /><br />
Jeśli nie działa link wklej w go swoją przeglądarkę<br />
http://'.$link.'?activate='.$id.'&key='.$haslof.'
</font>
</div>';
mail($emailf, 'Potwierdzenie adresu e-mail [email protected]', $messange, $naglowki);
}
}
}
?>