nie wiem jak się ustawia flage aktywny/nieaktywny ale zrobilem to w ten sposób ze najpierw zapisuje dane wraz z generowanym kodem do bazy danych o tabeli UZYTKOWNIK_REJ i wysyłam maila z linkiem do strony rejestracji gdzie uzytkownik podaje dane w tym ten kod, jesli sie zgadza kod z nazwa uzytkownika to rejestruje go w bazie danych w tabeli UZYTKOWNIK, ale coś nie działa... gdzie tu błąd.. Jesli to mozliwe to chciałbym w ten sposób to zrobic tylko poprawic jakis błąd.. oto pliki...
najpierw tutaj wpisuje dane:
<?php
function wyswietl_form_rej() {
?>
<div id="rejestracja_uzytkownika_wyglad"> <form method="post" action="../logowanie_uzytkownika/nowa_rejestracja.php"> <td>Adres poczty elektronicznej:
</td> <td><input type="text" name="email" size="30" maxlength="100"></td></tr> <td>Preferowana nazwa użytkownika
<br />(maksymalnie 16 znaków):
</td> <td valign="top"><input type="text" name="nazwa_uz" size="16" maxlength="16"/></td></tr> <td>Hasło
<br />(pomiędzy 6 i 16 znaków):
</td> <td valign="top"><input type="password" name="haslo" size="16" maxlength="16"/></td></tr> <td>Potwierdź hasło:
</td> <td><input type="password" name="haslo2" size="16" maxlength="16"/></td></tr> <td colspan="2" align="center"> <input type="submit" value="Rejestracja"></td></tr>
#rejestracja_uzytkownika_wyglad{background-color:rgba(0,0,0,0.4);position:absolute; margin-top:180px; margin-left:300px}
<?php
}
potem te dane przechwytuje ten plik:
(jesli chodzi o baze danych to polaczenie jest ok, wszystko mi zapisuje itp wiec nie wrzucam juz funkcji z laczeniem z baza
<?php
require_once('../logowanie_uzytkownika/wszystkie_funkcje.php');
// utworzenie krótkich nazw zmiennych
$email=$_POST['email'];
$nazwa_uz=$_POST['nazwa_uz'];
$haslo=$_POST['haslo'];
$haslo2=$_POST['haslo2'];
$adresdo = $email;
$lacz = lacz_bd();
$wynik = $lacz->query("insert into uzytkownik_rej values
('".$nazwa_uz."', sha1('".$haslo."'), '".$email."','".$kod_rej."')");
$temat = "Kontynuacja rejestracji";
$zawartosc = "Twoj login to:".$nazwa_uz.
" Twoje haslo to:".$haslo.".".
$adresod = "xxxxxxxx.cba.pl";
try {
// sprawdzenia wypełnienia formularzy
if (!wypelniony($_POST)) {
throw new Exception('Formularz wypełniony nieprawidłowo - proszę wrócić i spróbować ponownie.');
}
// nieprawidłowy adres poczty elektronicznej
if (!prawidlowy_email($email)) {
throw new Exception('Nieprawidłowy adres poczty elektronicznej — proszę wrócić i spróbować ponownie.');
}
// różne hasła
if ($haslo != $haslo2) {
throw new Exception('Niepasujące do siebie hasła — proszę wrócić i spróbować ponownie.');
}
// sprawdzenie długości nazwy użytkownika
if ((strlen($nazwa_uz) > 16
)) { throw new Exception('Nazwa uzytkownika nie może mieć więcej niż 16 znaków — proszę wrócić i spróbować ponownie.');
}
// sprawdzenie długości hasła
// nazwę użytkownika można skrócić, lecz zbyt długiego
// hasła skrócić nie można
throw new Exception('Hasło musi mieć co najmniej 6 i maksymalnie 16 znaków — proszę wrócić i spróbować ponownie.');
}
// stworzenie łącza do strony członkowskiej
tworz_naglowek_html('Rejestracja udana');
info_pod_naglowkiem_html('Rejestracja zakonczyla sie sukcesem, wlasnie zostala wyslana wiadomosc na Twojego maila');
// wywołanie funkcji mail() wysyłającej wiadomość pocztową
mail($adresdo, $temat, $zawartosc, $adresod); // koniec strony
}
catch (Exception $e) {
tworz_naglowek_html('Problem z rejestracja');
?>
<div id="wiadomosc">
$e->getMessage();
?>
</div>
<style>
#wiadomosc{color:black; margin-top:140px; font-size:15px;margin-left:10px;position:absolute;}
</style>
<?php
}
w mailu otrrzymuje wszystkie dane i ten link w ktorym mam potwierdzic kod i wpisac dane jeszcze raz zeby przeslac je do bazy danych tabeli UZYTKOWNIK gdzie stad bedzie podczas logowania pobierac dane
<?php
require_once('../logowanie_uzytkownika/wszystkie_funkcje.php');
tworz_naglowek_html('Potwierdzenie rejestracji');
wyswietl_potwierdzenie_rej();
?>
i funkcja wyswietl_potwierdzenie_rej();
<?php
function wyswietl_potwierdzenie_rej() {
?>
<div id="rejestracja_uzytkownika_potwierdzenie"> <form method="post" action="../logowanie_uzytkownika/zarejestrowano.php"> <td>Wpisz swój login:
</td> <td><input type="text" name="nazwa_uz" size="30" maxlength="100"></td></tr> <td>Wpisz kod dostępu otrzymany mailem:
</td> <td><input type="text" name="kod_dostepu" size="30" maxlength="30"/></td></tr> <td>Adres poczty elektronicznej:
</td> <td><input type="text" name="email" size="30" maxlength="100"></td></tr> <td>Hasło
<br />(pomiędzy 6 i 16 znaków):
</td> <td valign="top"><input type="password" name="haslo" size="16" maxlength="16"/></td></tr> <td colspan="2" align="center"> <input type="submit" value="Rejestracja"></td></tr>
#rejestracja_uzytkownika_potwierdzenie{background-color:rgba(0,0,0,0.4);position:absolute; margin-top:180px; margin-left:300px}
<?php
}
gdzie uruchamiamy po zatwierdzeniu ostatni plik:
<?php
require_once('../logowanie_uzytkownika/wszystkie_funkcje.php');
tworz_naglowek_html('Potwierdzenie rejestracji');
$haslo=$_POST['haslo'];
$email=$_POST['email'];
$nazwa_uz = $_POST['nazwa_uz'];
$kod_rej = $_POST['kod_rej'];
$lacz = lacz_bd();
$wynikk = $lacz->query("select * from uzytkownik_rej
where nazwa_uz ='".$nazwa_uz."'
and kod_rej = '".$kod_rej."'");
if ($wynikk) {
rejestruj($nazwa_uz, $email, $haslo);
// rejestracja zmiennej sesji
$_SESSION['prawid_uzyt'] = $nazwa_uz;
wyswietl_menu_uzyt();
}
else {
echo('Problem z rejestracja');
}
?>
jesli chodzi o funkcje $lacz = lacz_bd(); to ona dziala w 100% wszystkie dane mi zapisuje ale problem jest taki w tym co zrobilem ze obojetnie jakie dane wpisze w ostatnim formie czyli function wyswietl_potwierdzenie_rej() to zalogowuje sie na jakiekolwiek konto ktore wpisze.. zamiast wyswietlic komunikat ze Problem z rejestracja.. nie rozumiem...