
PHP - Registrace
Zdravím, věřím, že mi někdo pomůže. Potřeboval bych vědět jak bych měl napsat kód aby jsem zjistil jestli již uživatel existuje. Pokud ano vypsat nějakou hlášku a pokud ne tak ho uložit do databáze.
if (!empty($_POST['email']) AND !empty($_POST['password']) AND !empty($_POST['password_confirm'])) {
$match = FALSE;
$email = $_POST['email'];
$password = $_POST['password'];
$password = md5(sha1($password));
SetLocale(LC_ALL, "Czech");
$date = StrFTime("%d/%m/%Y %H:%M");
$ip_adress = $_SERVER["REMOTE_ADDR"];
$system = $_SERVER['HTTP_USER_AGENT'];
$language = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
if ($_POST['password'] == $_POST['password_confirm']) {
echo "Registrace proběhla úspěšně";
$match = TRUE;
} elseif ($_POST['password'] != $_POST['password_confirm']) {
echo "Hesla se neshodují <br>";
$match = FALSE;
}
if ($match == TRUE ) {
$check_exist = "SELECT * FROM db_users WHERE email='$email'";
$register = "INSERT INTO db_users(id, email, password, date, ip_adress, system, language) VALUES ('', '$email', '$password', '$date', '$ip_adress', '$system', '$language')";
$db->exec($register);
}
}
Povedal by som ze si otestujes navratovu hodnotu volania $db->exec($check_exist) ktore das za ten riadok $check_exist = "SELECT * FROM db_users WHERE email='$email'";
T.j. nieco taketo
if($db->exec($check_exist))
echo "Uzivatel uz existruje <br>";
else
{
$register = "INSERT INTO db_users(id, email, password, date, ip_adress, system, language) VALUES ('', '$email', '$password', '$date', '$ip_adress', '$system', '$language')";
$db->exec($register);
}
Jaj sorry trepem
SELECT sa musi vykonavat pomocou query, t.j. $neco = $db->query($check_exist)
a potom testujes ci to $neco obsahuje SQLite3Result alebo ak neni ziadna hodnota na vratenie malo by to vratit TRUE alebo FALSE, si to otestuj, neviem zhlavy (nerobim aktivne PHP)
samozrejme je to velmi zjednodusene. mal by si pouzit triedu mysqli namiesto mysql a nejak to upratat. aj ten tvoj kod je cisty bordel :)
Sice offtopic, ale nedá mi to tě neupozornit, kód je nebezpečný a lze snadno napadnout. Přečti si něco o SQL injection.