| 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: 12 let
|
|||
0