Zmiana adresu e-mail polega na tym, że na zmieniany adres zostaje wysłany link aktywacyjny:
account_email_change.php:
<?php $czy_zalogowany = $_SESSION['zalogowany']; if ($czy_zalogowany == 1) { $nowy_adres_mailowy = $_POST['new_mail']; $stary_adres_mailowy = $_SESSION['zalogowany_mail']; function rand_str($length = 10, $chars = '1234567890') { // Length of character list // Start our string // Generate random string { // Grab a random character from our list // Make sure the same two characters do not appear next to each other if ($r != $string{$i - 1}) $string .= $r; } // Return the string return $string; } $kod_zmiany_maila = rand_str(); include("config.php"); $dane_do_sprawdzenia = "select * from user_list WHERE user_mail = '$stary_adres_mailowy'"; if ($czy_wpisano_dobrze>0) { $result = mysql_query("UPDATE user_list SET user_act_code='$kod_zmiany_maila' WHERE user_mail='$stary_adres_mailowy'") or die ("Problem z bazą danych. Przepraszamy. Próbujemy to rozwiązać jak najszybciej tylko się da.<br>"); $emaill=$nowy_adres_mailowy; $title="Zmiana adresu e-mail"; $wiadomosc=("Ten email zostal wyslany poniewaz uzyto tego adresu podczas rejestracji konta na naszej stronie. Jesli nie chciales dostac tej poczty to ja zignoruj.\n\nTwoj link aktywacyjny aby zatwierdzic zmiane adresu to: http://polish-chicks.net/email_verify.php?...y_adres_mailowy \n"); } } ?>
Klikając na odsyłacz przeniesie nas na stronę "email_verify.php":
<?php $zmieniany_mail = $_REQUEST['deactivated_mail']; $kod_zmieniajacy = $_REQUEST['activation_code']; $zapisywany_mail = $_REQUEST['activated_mail']; // powyższe 3 linijki są celowo wyświetlone żeby sprawdzić czy odsyłacz przesyła wartość zmiennych na stronę. Docelowo tego tu nie będzie include("config.php"); // szczegóły są najmniej istotne gdyż poprawnie się łączy z bazą danych $dane_do_sprawdzenia = "select * from user_list WHERE user_act_code = '$kod_zmieniajacy'"; if ($czy_wpisano_dobrze>0) { $result = mysql_query("UPDATE user_list SET user_mail='$zapisywany_mail' WHERE user_mail='$zmieniany_mail'") or die ("Problem z bazą danych. Przepraszamy. Próbujemy to rozwiązać jak najszybciej tylko się da.<br>"); } if ($czy_wpisano_dobrze == 0) { } ?>
A gdy mimo wszystko kliknę na odsyłacz to powyższy kod pokazuje, że odsyłacz poprawnie przekazuje dane do strony jednakże wciąż pojawia się tekst, że kliknięto w zły lub nieważny odsyłacz i w konsekwencji zmiany nie są wprowadzane. Nie wiem czy jest zła składnia wywołania mysql czy to tylko php także w tym dziale zadaję pytanie.
Jestem w kropce. Proszę o pomoc. (PS. Pełna zasada działania skryptu jest na www.polish-chicks.net - strona pusta, można tylko się zarejestrować, tylko trzeba podać poprawny adres e-mail bo na niego jest wysyłany kod aktywujący który się wprowadza w pole do aktywacji konta i gdy konto już jest aktywne to po zalogowaniu można przejść do panelu administracyjnego konta skąd można wprowadzać zmiany).
Edit o 5:50: Problem udało się rozwiązać, przy jednej zmiennej było o jeden znak $ za dużo ale nadal muszę spróbować rozwiązać problem co zrobić gdy kliknę na odsyłacz, żebym był dalej zalogowany