Hejka ;)!
Sluchajcie mam maly problem, tydzien temu zaczalem uczyc sie php napisalem kod wszystko mialem fajnie ale jak sie oczywiscie okazalo funkcje mysql_ sa juz nieaktualne i nie wszystko mi dziala a zeby nie miksowac komend mysql_ i mysqli lub PDO musze porzucic wszystko i napisac na nowo. Tak wiec wyrzucilem wszystko i zaczalem na nowo, stworzylem strone glowna kilka podstron a takze polaczenie z baza danych - oczywiscie baze i tabele uzytkownicy z kolumnami id nazwa haslo email - i teraz zaczalem pisac ten skrypt rejestracji ale cos mi niestety nie dziala i nie mam pojecia dlaczego moglby mi ktos wyjasnic? Po wpisaniu danych do formularza i kliknieciu zarejestruj wyswietla mi cos takiego:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, array given in /home/anett1990/ftp/lotusonline/rejestracja.php on line 38
Konto zostalo utworzone!
Niby konto utworzone a po pierwsze jest taki blad a po drugie nie dodaje mi rekordu do bazy danych ;/ ma ktos jakis pomysl?
KOD:
<?php
$title = "Rejestracja";
include_once 'gora_strony.php';
?>
<h1>Rejestracja</h1>
<form method="POST" action="?rejestracja">
<table>
<tr><td>Nazwa konta (6-20 znakow): </td><td><input type='text' name='login'/></td></tr>
<tr><td>Haslo (6-20 znakow): </td><td><input type='password' name='haslo1'/></td></tr>
<tr><td>Powtorz haslo: </td><td><input type='password' name='haslo2'/></td></tr>
<tr><td>Email: </td><td><input type='text' name='email'/></td></tr>
<tr><td><input type='submit' value='Zarejestruj sie!' name="zatwierdz"/></td></tr>
</table>
</form>
<?php
$login = $_POST['login'];
$haslo1 = $_POST['haslo1'];
$haslo2 = $_POST['haslo2'];
$email = $_POST['email'];
$zatwierdz = $_POST['zatwierdz'];
if(!empty($_POST)){
if(isset($zatwierdz)){
if(!empty($login) && !empty($haslo1) && !empty($haslo2) &&!empty($email)){
if(strlen($haslo1) >=6 && strlen($haslo2) <=20){
if($haslo1 == $haslo2){
if(strlen($login) >=6 && strlen($login) <=20){
$login = SprawdzDane($login);
$haslo1 = sha1($haslo1);
$email = SprawdzDane($email);
$polaczenie = mysqli_connect(db_host, db_user, db_pass, db_name);
$pytanie = "SELECT * FROM uzytkownicy";
$tablica = $polaczenie->query($pytanie);
$tablica1 = mysqli_fetch_all($tablica);
$tablica2 = mysqli_num_rows($tablica1);
if($tablica2 == 0){
$dodaj = 'INSERT INTO uzytkownicy (nazwa, haslo, email) VALUES ("'.$login.','.$haslo1.','.$email.'")';
$wynik = $polaczenie->query($dodaj);
echo 'Konto zostalo utworzone!';
} else echo 'Login lub email sa juz w uzyciu!';
} else echo 'Nazwa konta musi zawierac od 6 do 20 znakow!';
} else echo 'Hasla nie sa identyczne!</b>';
} else echo 'Haslo musi zawierac od 6 do 20 znakow!';
} else echo 'Wypelnij wszystkie dane!';
}
}
?>
<?php
include_once 'dol_strony.php';
?>
Funkcje.php: (funkcje dodalem taka ale nie wiem czy dobrze dziala, chcialem zeby sprawdzala tagi i usuwala zbedne znaki)
<?php
include_once 'includes/inicjacja.php';
function SprawdzDane($tekst){
return mysqli_real_escape_string($polaczenie, $tekst);
print_r($tekst, $polaczenie);
}
?>