Обработката на регистрационна форма не работи както трябва

anonimen

Super Moderator
Здравейте!
Направих си една регистрационна форма и сега прява един обработващ файл, който не работи както трябва :(
Първо, някъде греша в провeрката за валиден мейл:
Код:
if($email!=$email_two){$not.="Несъвпадение между въведените пощи"."<br />";}
else{
if(!preg_match('/^[a-z0-9\.]+@[a-z0-9-]+\.[a-z](2,4)$/', $email)){
$not .= "Моля, въведете валиден e-mail"."<br />";
};
}
Кода го преписах от един урок за регулярните изрази, но не ми работи.


При проверката за име (да съдържа главна и след това малки букви) и потребителско име също не тръгва:
Код:
if(!preg_match('/^[A-Z]?[a-z]$/', '$ime')){echo "Името може да съдържа само малки и главни букви"."<br />";}

if(!preg_match('/^[a-zA-Z0-9-]$/', '$username')){
$not .= "Потребителското име може да съдържа само букви a-z и A-Z, тире и цифри."."<br />";
}
И ако може някой да каже кои са специалните символи в mysql, пред които трябва да се сложи "\", за да знам кои символи да разреша за използване на потребителското име.
Също така ако в някъде в таблицата е използвана кирилица, ми излизат на маймунки.. и не знам как да го оправя :idea:
И като се опитах да променя една колона, направих така:
[sql]SELECT * FROM `users`;
alter table `users` change `id` `id` int not null auto_increment;[/sql]
Всъщност на колоната id бях забравил да й сложа auto_increment и затова пробвах така.
 
PHP:
if($email!=$email_two){$not.="Несъвпадение между въведените пощи"."<br />";}
else{
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*"."@([a-z0-9]+([\.-][a-z0-9]+))*$",$email)){
$not .= "Моля, въведете валиден e-mail"."<br />";
};
}
Пробвай така за Email-a ;)
 
Стана!
Всъщност, трябваше да го променя малко, защото ми даваше грешка (че ereg е прекалено стара функция) и го направих така:
Код:
if($email!=$email_two){$not.="Несъвпадение между въведените пощи"."<br />";}
else{
if(!preg_match("/^[a-z0-9]+([_\\.-][a-z0-9]+)*"."@([a-z0-9]+([\.-][a-z0-9]+))*$/",$email))
{$not .= "Моля, въведете валиден e-mail"."<br />";};
}
И прочетох едни неща за регулярните изрази и ми се получи и за usename-а, но сега се мъча да направя проверка дали вече съществува потребител с такъв username:
[sql]
mysql_connect("aaa","aaa","aaa") or die('Неуспешно свързване към базата данни.');
mysql_select_db("users");
$prov = "select username from users where username == '$username'";
$proverka = mysql_query($prov);
if ($proverka!=""){echo "Вече съществува потребител $username";}
else {
$query = mysql_query("INSERT INTO users (username, password) VALUES ('$username', '$password')");
if(!$query){echo "Не сте записан";}
else {echo "Няма никакви забележки. Регистрацията е успешна!";}
}
mysql_close();
[/sql]
Променливите $username и $password съдържат желаното потребителско име и парола. Но проблемът май е с кавичките, защото уж проверява дали има такъв потребител, ама е само уж. И не мога да разбера защо не ме изхвърля щом вече има такъв потребител? :idea:
 

Back
Горе