Witam. Mam problem z GET w aktywacji konta. Używam sobie fajnego "systemu", który wyświetla mi podstrony w następujący sposób:
<?php $sites = array ("news" => "inc/news.php", "register" => "inc/rejestracja.php", "logowanie" => "inc/logowanie.php", "aktywacja" => "inc/aktywacja.php", "kontakt" => "inc/kontakt.php", "uzytkownik" => "inc/zmiana-danych.php"); if ($_GET["str"]!="")
{
if ($sites[$_GET["str"]]) { include($sites[$_GET["str"]]); }
else { include("inc/error.php"); }
}
else { include("inc/news.php"); }
?>
I teraz tak.. Znajomy (Uhutaf z Wojborku) pisał mi kiedyś, że w adresie, przy GET, nie może być pod rząd dwa razy znaku "=". Weryfikacja wygląda tak:
<?php
if ($_GET['weryfikacja'] == 'potwierdz') {
include 'db.php'; // połączenie się z bazą danych
$tabela = 'uzytkownik'; // zdefiniowanie tabeli MySQL
// jeżeli kod znajduje się URL, skrypt najpierw patrzy czy użytkownik ma aktywne konto
// jeżeli nie ma, wtedy zmienia się jego status, jeżeli nie upłynęło 48 godzin od rejestracji
WHERE kod='$kod' and status=1");
echo '<p>Aktywowałeś już swoje konto.</p'; } else {
WHERE data<=DATE_SUB(NOW(),INTERVAL 2 DAY) and status=0");
SET status='1', data=NOW() WHERE kod='$kod' and status=0");
WHERE kod='$kod' and status=1");
echo '<p>Dziękujemy. Rejestracja została zakończona poprawnie. Możesz się teraz zalogować.</p>'; }
}
// jeżeli został wprowadzony zły link, wyświetla się błąd
echo '<p>Aktywowanie konta nie powiodło się.</p>'; }
}
?>
Przykładowy email weryfikacyjny wygląda następująco:
moja-strona.pl/index.php?str
=weryfikacja=weryfikacja&kod=KOD
Proszę o szybką pomoc. Tak, jak wczoraj - każdy post otrzyma "pomógł".
Pozdrawiam!
Ten post edytował RaitoPL 18.07.2012, 11:08:46