Regisztrációs modulba, hogy tegyek évkorellenörzést illetve azt, hogy helyes E-mail címet adott meg, tehát szerepel benne a @ és a .hu vagy .com tag?
Évkor ellenörzésnél azt értem, hogy 10 év alatt nem regisztrálhat senki.
Köszönöm a válaszokat.
Ez a feldolgozó ebbe mit tegyek?
<?php
mysql adatok
if (isset($_GET['register']))
{
if (isset($_POST['Reg_username']) && isset($_POST['Reg_password']) && isset($_POST['Reg_email']))
{
if (empty($_POST['Reg_fullname'])) $_POST['Reg_fullname'] = 'Ismeretlen';
$query = @mysql_query("SELECT * FROM `Users_login` WHERE `Username` = '".mysql_real_escape_string($_POST['Reg_username'])."'");
$row = mysql_fetch_array($query);
@mysql_free_result($query);
if (!empty($row['Id']))
{
echo "Már regisztrált név.";
}
else
{
if ($Reg_username && $Reg_password && $Reg_email && $Reg_irszam && $Reg_telepules && $Reg_fullname && $Reg_age && $Reg_adatvedelem != NULL)
{
@mysql_query("INSERT INTO `Users_login` (`Username`, `Password`, `Email`, `Fullname`, `irszam`, `telepules`, `age`, `adatvedelem`) VALUES ('".mysql_real_escape_string($_POST['Reg_username'])."', '".mysql_real_escape_string($_POST['Reg_password'])."', '".mysql_real_escape_string($_POST['Reg_email'])."', '".mysql_real_escape_string($_POST['Reg_fullname'])."', '".mysql_real_escape_string($_POST['Reg_irszam'])."', '".mysql_real_escape_string($_POST['Reg_telepules'])."', '".mysql_real_escape_string($_POST['Reg_age'])."', '".mysql_real_escape_string($_POST['Reg_adatvedelem'])."')");
echo "Regisztráltál!";
}
}
}
else
{
include ('register.php');
}
}
?>
Az email címes dolgot itt kitárgyalják, reguláris kifejezéssel oldják meg.
például használhatnád a mysql password függvényét, mert ez így kissé etikátlan.
Jó lenne tudni, hogy milyen szinten állsz a PHP-val, hogy egy ilyen egyszerű dolognál elakadtál.
Az E-mail cím ellenőrzésre amúgy van filter a php-ban, nem kell regexpel szívni...
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
echo "Az e-mail cím jó";
}
else
{
echo 'Hibás e-mail cím';
}
Amúgy rossz az egész, újra kellene írnod.
1. Nem használunk mysql_* függvényt mert deprecated
2. PDO -t használj
3. Nem írunk sql query -t natív belenyomott adatokkal, erre valók a paraméterek és a prepared statementek pdo -ban
4. A jelszót SOHA nem tároljuk le plaintextként. Szerintem a legjobb ha SHA1-el kódolod úgy, hogy kap egy public és egy hidden salt -ot. (Pl: $password = sha1('salt'.md5($password).$password);)
5. @ -al nem nyomunk el hibát, a hibát kezeljük nem pedig elrejtjük!
6. include helyett require_once -t használj, jelen esetben arra van szükség nem includeolásra
"Amúgy rossz az egész, újra kellene írnod."
Valószínűleg nem ő írta, hanem egy netről letöltött kód. Ha tisztában lenne azokkal, amit Te írsz, nem kérdezné meg, hogyan kell e-mail címet ellenőrizni. :-)
nem, saját kód.
A jelszót is átváltottam md5-be
De az évkor ellenörzést még mindig nem tudtam meg.
Hibákkal pedig annyi, hogy akármit csak ott van, nem ír hibát ha nincs ott az a @ jel.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!