Autor | Zpráva | ||
---|---|---|---|
martin5504 Profil |
#1 · Zasláno: 1. 5. 2014, 10:45:38
Ahojte, prosim vas potrebujem malicku radu urobil som si jednoduchu funkciu pri ktorej sa neda registrovat ak uz v DB napr. meno alebo email uz zapisane je, bohuzial ked sa registrujem stale vypisuje, ze uz taky zaznam existuje ale neexistuje. Co som urobil zle? Vopred diki.
$overenie = mysqli_query($con,"SELECT * FROM users WHERE user= '$user' OR email = '$email' "); if(mysqli_num_rows($overenie) != '0'){ echo "<br />Zvolené uživ. meno alebo e-mail je už použité. <p>[<a href='registracia'>Vrátiť sa naspäť</a>]</p> "; }else{ |
||
sorry Profil * |
#2 · Zasláno: 1. 5. 2014, 10:50:30
Záleží na tom kde mas daný zápis do db. Tady nikde není uvedenej :-)
|
||
Micruss Profil |
#3 · Zasláno: 1. 5. 2014, 13:49:44
tipnul bych, že je chyba v tom != '0', zkus bez uvozovek
|
||
juriad Profil |
#4 · Zasláno: 1. 5. 2014, 14:11:10
Není to náhodou tím, že nejsou povolené Regsiter globals? Odkud se berou proměnné $user a $email?
Zkus si je před dotazem vypsat a zkontroluj, že obsahují to co mají. Micruss: Přestože je to prasárna, tohle PHP zvládne. |
||
martin5504 Profil |
#5 · Zasláno: 2. 5. 2014, 13:01:40
Ono to orig. bolo v mysql avsak ja to chcem zmenit na mysqli. Hodim vam sem cely kod.
<?php $heslo_ov = md5($_POST['heslo_ov']); $user = $_POST['user']; $meno = $_POST['meno']; $priezvisko = $_POST['priezvisko']; $telefon = $_POST['telefon']; $ulica = $_POST['ulica']; $mesto = $_POST['mesto']; $psc = $_POST['psc']; $stat = $_POST['stat']; $heslo = md5($_POST['heslo']); $heslo2 = ($_POST['heslo']); $email = $_POST['email']; $con= mysqli_connect("localhost","root","heslo","meno"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $overeni = mysqli_query($con,"SELECT * FROM users WHERE user= '$user' OR email = '$email' "); if(mysqli_num_rows($overeni) != '0'){ echo "<br />Zvolené uživ. meno alebo e-mail je už použité. <p>[<a href='registracia'>Vrátiť sa naspäť</a>]</p> "; }else{ $sql="INSERT INTO users (user, password, email, osoba, meno, priezvisko, firma, telefon, ulica, mesto, psc, stat, ic, dic) VALUES ('$_POST[user]','$heslo','$_POST[email]','$_POST[osoba]','$_POST[meno]','$_POST[priezvisko]','$_POST[firma]','$_POST[telefon]','$_POST[ulica]','$_POST[mesto]','$_POST[psc]','$_POST[stat]','$_POST[ic]','$_POST[dic]')"; if($user == false || $heslo == false || $heslo_ov == false || $email == false || $meno == false || $priezvisko == false || $telefon == false || $ulica == false || $mesto == false || $psc == false || $stat == false){ echo '<br />Vaša registrácia je neúspešná, nezadali ste všetky potrebné údaje, skúste to znovu prosím. <p>[<a href="registracia">Vrátiť sa naspäť</a>]</p> '; } else{ if($heslo != $heslo_ov){ echo 'Vaša registrácia je neúspešná.<br>'; echo 'Heslá sa nezhodujú.'; }else{ if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } echo "<br /> Registrácia bola úspešná. <p>Na zadaný e-mail vám boli odoslané všetky údaje.</p> <p>[<a href='index.php'>Vrátiť sa na prihlásenie</a>]</p> "; } } mysqli_close($con); } ?> |
||
lionel messi Profil |
mysqli_query 2 povinné parametre?Pardon, určite som mimo, nevšimol som si, že martin5504 všade má 2 parametre |
||
martin5504 Profil |
#7 · Zasláno: 2. 5. 2014, 13:08:07
Ja som dlho pracoval so starym MySQL a teraz mi MySQLi trošku robí problémy aby som to premenil na mysqli.
|
||
Tori Profil |
martin5504:
Tady musí být číslo nula, ne řetězec: mysqli_num_rows($overeni) != 0) Pokud SQL dotaz selže, tak porovnání s řetězcem vyjde stejně, jako kdyby to nějaké záznamy našlo. (A asi logičtější by bylo porovnávat mysqli_num_rows($overeni) > 0) .)
|
||
Okolojdouci Profil * |
#9 · Zasláno: 3. 5. 2014, 18:05:43
martin5504:
Nějak jsi zapomněl escapovat data, které vkládáš do databáze. Možná by jsi měl jednodušší použít nějakou knihovnu, třeba dibi. |
||
Časová prodleva: 11 let
|
0