Как да проверя за непозволени знаци в username.

bankera1990

Registered
В предната тема става дума за забрана на символи от сорта на #@$%@#%^ та искам да проверява username дали съдържа тези символи и следователно да изкарва грешка че името съдържа не позволени знаци пробвах се аз ама нищо не постигнах

Код:
<?php 
ob_start(); 
// allows you to use cookies 
include("settings.php"); 
//gets the config page 
if ($_POST[register]) { 
// the above line checks to see if the html form has been submitted 
$ip = $_SERVER["REMOTE_ADDR"];
$today = date("d-m-Y / H:i:s");
$username = $_POST[username]; 
$password = $_POST[pass]; 
$cpassword = $_POST[cpass]; 
$sex = $_POST[sex]; 
$email = $_POST[emai1]; 
//the above lines set variables with the user submitted information 
if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL) { 
//checks to make sure no fields were left blank 
echo "Полето е оставено празно."; 
die('<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php?m=register">'); 
}else{ 
//none were left blank! We continue... 
if($password != $cpassword) { 
// the passwords are not the same! 
echo "Паролите не съвпадат"; 
die('<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php?m=register">'); 
} 
elseif (!preg_match('/[a-z0-9_\.]+@[a-z0-9]+\.[a-z]{2,4}$/', $email)) 
{ 
echo "Моля въведете валиден имейл адрес !"; 
die('<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php?m=register">'); 
} 
else 
{ 
// the passwords are the same! we continue... 
// encrypts the password 
$checkname = mysql_query("SELECT username FROM users WHERE username='$username'"); 
$checkname= mysql_num_rows($checkname); 
$checkemail = mysql_query("SELECT email FROM users WHERE email='$email'"); 
$checkemail = mysql_num_rows($checkemail); 
$checksex = mysql_query("SELECT sex FROM users WHERE sex='$sex'"); 
$checksex = mysql_num_rows($checksex); 
$checkip = mysql_query("SELECT ip FROM users WHERE ip='$ip'"); 
$checkip = mysql_num_rows($checkip);
if ($checkemail>0|$checkname>0) { 
// oops...someone has already registered with that username or email! 
echo "Потребителското име имейл или IP адреса вече се използва"; 
die('<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php?m=register">'); 
}else{ 
// noone is using that email or username! We continue... 
$username = htmlspecialchars($username); 
$password = htmlspecialchars($password); 
$email = htmlspecialchars($email); 
$sex = htmlspecialchars($sex);
$ip = htmlspecialchars($ip); 
// the above lines make it so that there is no html in the user submitted information. 
//Everything seems good, lets insert. 
$query = mysql_query("INSERT INTO users (username, password, email, sex, ip, datenareg) VALUES('$username','$password','$email','$sex','$ip','$today')"); 
// inserts the information into the database. 
echo "<center>Вие успешно се регистрирахте!</center><br /> <center>Вашата парола е </center><br /><center><div class='input' style='width: 40%; height: 16%;'>$password</div></center><br /><center> можете да я смените като влезете в Промени Профил</center><br /> 
<br /> 
<center> 
Вход</center><br> 
<form name='login' method='post' action='modules/login1.php' onsubmit='return validate()' style='padding:0; margin:0'> 
         <center>Потребител:</b><br> 
        <input name='username' type='text' size='15' id='username' class='loginuser'><br></center><center> 
        Парола:</b><br> 
        <input name='password' type='password' size='15' id='password' class='loginpass'></center> 
        <br> 
<center><input type='submit' name='login' class='button' value='Влизане'></center> 
            </form><center>";    
      
} 
} 
} 
}
:)
 
Код:
	<?php
ob_start();
// allows you to use cookies
include("settings.php");
//gets the config page
if ($_POST[register]) {
// the above line checks to see if the html form has been submitted
$ip = $_SERVER["REMOTE_ADDR"];
$today = date("d-m-Y / H:i:s");
$username = $_POST[username];
$password = $_POST[pass];
$cpassword = $_POST[cpass];
$sex = $_POST[sex];
$email = $_POST[emai1];
//the above lines set variables with the user submitted information
if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL) {
//checks to make sure no fields were left blank
echo "Полето е оставено празно.";
die('<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php?m=register">');
}else{
//none were left blank! We continue...
if($password != $cpassword) {
// the passwords are not the same!
echo "Паролите не съвпадат";
die('<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php?m=register">');
}
elseif (!preg_match('/[a-z0-9_\.]+@[a-z0-9]+\.[a-z]{2,4}$/', $email))
{
echo "Моля въведете валиден имейл адрес !";
die('<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php?m=register">');
}
elseif (!preg_match('/^[a-z0-9\_ ]+$/i', $username))
{
echo "Въвеждате непозволени символи в полето username";
die('<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php?m=register">');
}
else
{
// the passwords are the same! we continue...
// encrypts the password
$checkname = mysql_query("SELECT username FROM users WHERE username='$username'");
$checkname= mysql_num_rows($checkname);
$checkemail = mysql_query("SELECT email FROM users WHERE email='$email'");
$checkemail = mysql_num_rows($checkemail);
$checksex = mysql_query("SELECT sex FROM users WHERE sex='$sex'");
$checksex = mysql_num_rows($checksex);
$checkip = mysql_query("SELECT ip FROM users WHERE ip='$ip'");
$checkip = mysql_num_rows($checkip);
if ($checkemail>0|$checkname>0) {
// oops...someone has already registered with that username or email!
echo "Потребителското име имейл или IP адреса вече се използва";
die('<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php?m=register">');
}else{
// noone is using that email or username! We continue...
$username = htmlspecialchars($username);
$password = htmlspecialchars($password);
$email = htmlspecialchars($email);
$sex = htmlspecialchars($sex);
$ip = htmlspecialchars($ip);
// the above lines make it so that there is no html in the user submitted information.
//Everything seems good, lets insert.
$query = mysql_query("INSERT INTO users (username, password, email, sex, ip, datenareg) VALUES('$username','$password','$email','$sex','$ip','$today')");
// inserts the information into the database.
echo "<center>Вие успешно се регистрирахте!</center><br /> <center>Вашата парола е </center><br /><center><div class='input' style='width: 40%; height: 16%;'>$password</div></center><br /><center> можете да я смените като влезете в Промени Профил</center><br />
<br />
<center>
Вход</center><br>
<form name='login' method='post' action='modules/login1.php' onsubmit='return validate()' style='padding:0; margin:0'>
         <center>Потребител:</b><br>
        <input name='username' type='text' size='15' id='username' class='loginuser'><br></center><center>
        Парола:</b><br>
        <input name='password' type='password' size='15' id='password' class='loginpass'></center>
        <br>
<center><input type='submit' name='login' class='button' value='Влизане'></center>
            </form><center>";   
     
}
}
}
}
 

Back
Горе