Допълване на код

pechkata

Registered
Здравeйте,


Бихте ли могли да добавите проверка на email (смисъл дали е валиден).

PHP:
<?php
if (!$logged[username]){
if ($_POST[register]) {
$username = $_POST[username];
$password = $_POST[pass];
$cpassword = $_POST[cpass];
$email = $_POST[emai1];
$skype = $_POST[skype];
if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL|$skype==NULL) {
echo "Има празни полета<meta http-equiv=\"Refresh\" content=\"3; URL=./register.php\"/>";
}else{
if($password != $cpassword) {
echo "Паролите не съвпадат <meta http-equiv=\"Refresh\" content=\"3; URL=./register.php\"/>";
}else{
$password = md5($password);
$checkname = mysql_query("SELECT username FROM smslogin WHERE username='$username'");
$checkname= mysql_num_rows($checkname);
$checkemail = mysql_query("SELECT email FROM smslogin WHERE email='$email'");
$checkemail = mysql_num_rows($checkemail);
if ($checkemail>0|$checkname>0) { 
echo "Nicknamът/Имейла са заети !<meta http-equiv=\"Refresh\" content=\"3; URL=./register.php\"/>"; 
}else{ 
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$email = mysql_real_escape_string($email);
$skype = mysql_real_escape_string($skype);
$query = mysql_query("INSERT INTO smslogin (username, password, email, skype) VALUES('$username','$password','$email','$skype')");
echo "Вие се регистрирахте успешно";
}
}
}
}
else
{
echo ("<form method=\"post\" action=\"\">
                    <table cellspacing=\"5\" cellpadding=\"5\">
                        <tr><td><h4 class=\"text2\">Потребител:</h4></td><td><input type=\"text\" name=\"username\" autocomplete=\"off\" size=\"25\"/></td></tr>
                        <tr><td><div style=\"font-size: 10px; font-family: Verdana; text-align: left;\">Разрешени са символите от английската азбука, както и <b>_-[]{}/| <>()^*@!.:;'#</b> и празно място.
                           </div></td></tr>
                        <tr><td><h4 class=\"text2\">Парола:</h4></td><td><input type=\"password\" autocomplete=\"off\" name=\"pass\" size=\"25\" /></td></tr>
                        <tr><td><div style=\"font-size: 10px; font-family: Verdana; text-align: left;\">Паролата, с която ще се оторизирате. Уверете се, че не пишете на КИРИЛИЦА или с главни букви.<br /><br /><b>ВАЖНО:</b> Ника и паролата, които въведохте по-горе се използват и за сървърите!</div></td></tr>
                        <tr><td><h4 class=\"text2\">Повтори паролата:</h4></td><td><input type=\"password\" autocomplete=\"off\" name=\"cpass\" size=\"25\" /></td></tr>
                        <tr><td><h4 class=\"text2\">E-Mail:</h4></td><td><input type=\"text\" autocomplete=\"off\" name=\"emai1\" size=\"25\" /></td></tr>
                        <tr><td><h4 class=\"text2\">Skype:</h4></td><td><input type=\"text\" autocomplete=\"off\" name=\"skype\"  size=\"25\" /></td></tr>
						
                    </table>
					<input name=\"register\" type=\"submit\" class=\"button1\" value=\"Регистрирай се\">
                </form>
");
}
}else{
header('Location:index.php');
exit();
}
?>
 
PHP:
$regex = '^((?:(?:(?:\w[\.\-\+]?)*)\w)+)\@((?:(?:(?:\w[\.\-\+]?){0,62})\w)+)\.(\w{2,6})$^';
		if (!preg_match($regex, $email)) {
			//кода който да изпълнява ако емайла е невалиден
		}
 
goshkoy каза:
PHP:
$regex = '^((?:(?:(?:\w[\.\-\+]?)*)\w)+)\@((?:(?:(?:\w[\.\-\+]?){0,62})\w)+)\.(\w{2,6})$^';
		if (!preg_match($regex, $email)) {
			//кода който да изпълнява ако емайла е невалиден
		}

Мерси , но идея си нямам къде да го сложа
 
Код:
<?php
if (!$logged[username]){
if ($_POST[register]) {
$username = $_POST[username];
$password = $_POST[pass];
$cpassword = $_POST[cpass];
$email = $_POST[emai1];
$skype = $_POST[skype];
$regex = '^((?:(?:(?:\w[\.\-\+]?)*)\w)+)\@((?:(?:(?:\w[\.\-\+]?){0,62})\w)+)\.(\w{2,6})$^';
		if (!preg_match($regex, $email)) {
			еcho "Невалиден Email";
		}
if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL|$skype==NULL) {
echo "Има празни полета<meta http-equiv=\"Refresh\" content=\"3; URL=./register.php\"/>";
}else{
if($password != $cpassword) {
echo "Паролите не съвпадат <meta http-equiv=\"Refresh\" content=\"3; URL=./register.php\"/>";
}else{
$password = md5($password);
$checkname = mysql_query("SELECT username FROM smslogin WHERE username='$username'");
$checkname= mysql_num_rows($checkname);
$checkemail = mysql_query("SELECT email FROM smslogin WHERE email='$email'");
$checkemail = mysql_num_rows($checkemail);
if ($checkemail>0|$checkname>0) { 
echo "Nicknamът/Имейла са заети !<meta http-equiv=\"Refresh\" content=\"3; URL=./register.php\"/>"; 
}else{ 
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$email = mysql_real_escape_string($email);
$skype = mysql_real_escape_string($skype);
$query = mysql_query("INSERT INTO smslogin (username, password, email, skype) VALUES('$username','$password','$email','$skype')");
echo "Вие се регистрирахте успешно";
}
}
}
}
else
{
echo ("<form method=\"post\" action=\"\">
                    <table cellspacing=\"5\" cellpadding=\"5\">
                        <tr><td><h4 class=\"text2\">Потребител:</h4></td><td><input type=\"text\" name=\"username\" autocomplete=\"off\" size=\"25\"/></td></tr>
                        <tr><td><div style=\"font-size: 10px; font-family: Verdana; text-align: left;\">Разрешени са символите от английската азбука, както и <b>_-[]{}/| <>()^*@!.:;'#</b> и празно място.
                           </div></td></tr>
                        <tr><td><h4 class=\"text2\">Парола:</h4></td><td><input type=\"password\" autocomplete=\"off\" name=\"pass\" size=\"25\" /></td></tr>
                        <tr><td><div style=\"font-size: 10px; font-family: Verdana; text-align: left;\">Паролата, с която ще се оторизирате. Уверете се, че не пишете на КИРИЛИЦА или с главни букви.<br /><br /><b>ВАЖНО:</b> Ника и паролата, които въведохте по-горе се използват и за сървърите!</div></td></tr>
                        <tr><td><h4 class=\"text2\">Повтори паролата:</h4></td><td><input type=\"password\" autocomplete=\"off\" name=\"cpass\" size=\"25\" /></td></tr>
                        <tr><td><h4 class=\"text2\">E-Mail:</h4></td><td><input type=\"text\" autocomplete=\"off\" name=\"emai1\" size=\"25\" /></td></tr>
                        <tr><td><h4 class=\"text2\">Skype:</h4></td><td><input type=\"text\" autocomplete=\"off\" name=\"skype\"  size=\"25\" /></td></tr>
                                                
                    </table>
                                        <input name=\"register\" type=\"submit\" class=\"button1\" value=\"Регистрирай се\">
                </form>
");
}
}else{
header('Location:index.php');
exit();
}
?>
 
Сега вече е ОК +1 , само , че се като всички полета са празни ми излиза това : Невалиден E-mail !Има празни полета
 
защо не използваш при проверките else if а и ще ти препоръчам тази цялата форма да я изкараш от echo то и да си е във html вариант
 

Back
Горе