Witam wszystkich.
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
// 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");
echo '<span class="powodzenie">Aktywowałeś już swoje konto.</span>'; } 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
echo '<p>Aktywowanie konta nie powiodło się.</p>'; }
}
?>
</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++;
echo '<span class="blad">Proszę poprawnie wpisać hasło (od 6 znaków do 30 znaków).</span>'; }
}
if ($haslo !== $haslo2) {
$blad++;
echo '<span class="blad">Podane hasła nie są ze sobą zgodne.</span>'; }
// jeżeli błąd nie wystąpił, to dane zostają prawidłowo zapisane z bazie MySQL
if ($blad == 0) {
if ($haslo == false) {
}
else {
$haslo = md5($haslo); // szyfrowanie hasla $wynik2 = mysql_query("UPDATE $tabela SET haslo='$haslo' WHERE kod='$kod1' ");
}
if ($wynik2) {
echo '<span class="powodzenie">Dane zostały zmienione.</span>'; } else {
echo '<span class="blad">Dane nie zostały zmienione.</span>'; }
}
}
//koniec skryptu zmiany hasła
// mysql_close($polaczenie);
// tworzenie formularza HTML z danymi użytkownika
<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]
Ten post edytował kapsel2105 22.10.2012, 16:41:37