Proszę o wyrozumiałość gdyż to mój pierwszy post.
Dopiero zaczynam przygodę z PHP.
Mianowicie mam problem z jedną zmienną, które nie mogę wyłapać.
Próbuje na znane mi sposoby, ale widocznie jeszcze za mało umiem.
Sprawa wygląda następująco:
Mam zrobioną rejestrację która wysyła mail na wpisany adres mail z prośbą o aktywację.
Link wygląda następująco:
Kod
http://moja_domena/weryfikacja.php?weryfikacja=potwierdz&kod=2067450578508451e4155be.
Klikając w niego zmienna w bazie zmienia stan z 0 na 1.
Poniżej kod z pliku wykonującego zadanie
<?php include('header.php'); ?> <h2>» Weryfikacja użytkownika</h2> <div class="content"> <?php if ($_GET['weryfikacja'] == 'potwierdz') { include 'inc/db.php'; // połączenie się z bazą danych $tabela = 'rejestracja'; // zdefiniowanie tabeli MySQL $kod = htmlspecialchars(stripslashes(strip_tags(trim($_REQUEST['kod']))), ENT_QUOTES); // filtrowanie $_GET['kod'] // jeżeli kod znajduje się w 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"); exit; } 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 '<span class="powodzenie">Dziękujemy. Rejestracja została zakończona poprawnie. Możesz teraz ustanowić swoje hasło dostępu.</span>'; } } // jeżeli został wprowadzony zły link, wyświetla się błąd } } ?> </div> <?php include('footer.php'); ?>
Po kliknięciu w link pokazuje się informacja o tym że konto zostało pomyślnie aktywowane.
I teraz chciałbym aby umieścić tutaj możliwość ustawienia hasła gdzie będzie tylko taka możliwość tylko raz.
Mam napisany poniższy kod, dzięki któremu mogę zmienić hasło jak jestem już zalogowany, i trwa sesja.
<head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" /> </head> <h2>» Ustawienie hasła</h2> <div class="content"> <?php include 'inc/db.php'; // połączenie się z bazą danych $tabela = 'rejestracja'; // zdefiniowanie tabeli MySQL //początek skryptu zmiany hasła if ($_POST['wyslane']) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt // formularz ustawienia hasła $haslo = $_POST['haslo']; $haslo2 = $_POST['haslo2']; //$kod = $_REQUEST['kod']; // system sprawdza czy prawidłowo zostały wprowadzone dane if ($haslo) { $blad++; } } if ($haslo !== $haslo2) { $blad++; } // jeżeli błąd nie wystąpił, to dane zostają prawidłowo zapisane z bazie MySQL if ($blad == 0) { if ($haslo == false) { } else { } if ($wynik2) { } else { } } } //koniec skryptu zmiany hasła // mysql_close($polaczenie); // tworzenie formularza HTML z danymi użytkownika echo <<< KONIEC <br> <br> <form class="form" action="weryfikacja2.php" method="post"> <input type="hidden" name="wyslane" value="TRUE" /> <p> <div class="label"><label for="haslo">Hasło</label></div> <input type="password" name="haslo" id="haslo" /> </p> <p> <div class="label"><label for="haslo2">Powtórz hasło</label></div> <input type="password" name="haslo2" id="haslo2" /> </p> <p class="submit2"> <input type="submit" value="Aktualizuj moje dane" /> </p> KONIEC; //koniec tworzenia formularza //tu koniec formularza ustawienia hasła ?> </div>
W żaden znany mi sposób nie mogę odebrać zmiennej "$kod".
Z góry dziękuję za pomoc w rozwiązaniu problemu.
[php][/php]