проверки на полета и captcha

lqlqlq

Registered
Код:
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> 
<table> 
<tr><td>Акаунт:</td><td><input type="text" name="username"></input></td></tr> 
<tr><td>Парола:</td><td><input type="password" name="password"></input></td></tr> 

<tr><td>Е-мейл адрес:</td><td><input type="text" name="email" /></td></tr> 
<tr><td valign="top">Експанжън:</td> 
<td> 
<select name="expansion"> 
<option value="1">Wrath Of The Lich King</option> 
</select></td></tr> 

<tr><td> </td> 
<td><input type="submit" name="registration" value="Създай"></input></td></tr> 
</table> 
</form>

Искам на полетата "username", "password", "email" да има проверка дали са попълнени, и ако е възможно да има някаква проста captcha от букви и цифри, а може и само от едно от двете, само да има нещо, че тея ботове..
 
Код:
<?php
if (!$_POST['username'] | !$_POST['password'] | !$_POST['email'] ) {
 		die('Не сте попълнили задължителните полета!');
 	}
?>
Така ?
 
bobsona1 каза:
Код:
<?php
if (!$_POST['username'] | !$_POST['password'] | !$_POST['email'] ) {
 		die('Не сте попълнили задължителните полета!');
 	}
?>
Така ?

Не се пише така... с две "||" e. Тоест:

Код:
<?php
if ( (!isset($_POST['username']) || (!sset($_POST['password']) || (!isset($_POST['email'])  ) {
 		die('Не сте попълнили задължителните полета!');
 	}
?>
 
Код:
if($username == NULL || $password == NULL || $email == NULL) {
echo "Моля попълни всички полета!";
}

Така не е ли по лесно :D
 
lqlqlq каза:
и по 2-та начина нестава
Какво не става?

Код:
<?php
if(isset($_POST['registration'])){
    if ( (!isset($_POST['username'])) || (!sset($_POST['password'])) || (!isset($_POST['email']) ) ) {
       die('Не сте попълнили задължителните полета!');
    } else{
          echo 'Полетата са попълнени!';
    }
}
?>

	 <form action="" method="post">
<table>
<tr><td>Акаунт:</td><td><input type="text" name="username"></input></td></tr>
<tr><td>Парола:</td><td><input type="password" name="password"></input></td></tr>

<tr><td>Е-мейл адрес:</td><td><input type="text" name="email" /></td></tr>
<tr><td valign="top">Експанжън:</td>
<td>
<select name="expansion">
<option value="1">Wrath Of The Lich King</option>
</select></td></tr>

<tr><td> </td>
<td><input type="submit" name="registration" value="Създай"></input></td></tr>
</table>
</form>
 
При слагането на кода, формата въобще не излиза..

Пробвах, го начина след едитването - нестава..
 
<?php
if ($_POST['username'] == NULL || $_POST['password'] == NULL || !$_POST['email'] == NULL) {
echo "попълни полетата юзър, парола и имейл";
}
?>

а за captcha използвай този урок - http://web-tourist.net/login/login/view.php?st=2924
 
Karcho каза:
<?php
if ($_POST['username'] == NULL || $_POST['password'] == NULL || !$_POST['email'] == NULL) {
echo "попълни полетата юзър, парола и имейл";
}
?>

а за captcha използвай този урок - http://web-tourist.net/login/login/view.php?st=2924

нестава и по този начин.


Pavkatar каза:
Я прбвай с кода от горния пост, бях забравил няколко скоби..
не, нестава..
 
Как да стане бре човек... какво е това </input>...
Дай сложи това..

Аз въобще не съм ти гледам html-то.., чак като го сложих в зърното видях грешките..

Код:
<?php
if(isset($_POST['registration'])){
    if ( (!isset($_POST['username'])) || (!isset($_POST['password'])) || (!isset($_POST['email']) ) ) {
       echo 'Не сте попълнили задължителните полета!';
    } else{
          echo 'Полетата са попълнени!';
    }
}
?>

    <form action="" method="post">
<table>
<tr><td>Акаунт:</td><td><input type="text" name="username" /></td></tr>
<tr><td>Парола:</td><td><input type="password" name="password" /></td></tr>

<tr><td>Е-мейл адрес:</td><td><input type="text" name="email" /></td></tr>
<tr><td valign="top">Експанжън:</td>
<td>
<select name="expansion">
<option value="1">Wrath Of The Lich King</option>
</select></td></tr>

<tr><td> </td>
<td><input type="submit" name="registration" value="Създай" /></td></tr>
</table>
</form>
 
Pavkatar каза:
Как да стане бре човек... какво е това </input>...
Дай сложи това..

Аз въобще не съм ти гледам html-то.., чак като го сложих в зърното видях грешките..

Код:
<?php
if(isset($_POST['registration'])){
    if ( (!isset($_POST['username'])) || (!isset($_POST['password'])) || (!isset($_POST['email']) ) ) {
       echo 'Не сте попълнили задължителните полета!';
    } else{
          echo 'Полетата са попълнени!';
    }
}
?>

    <form action="" method="post">
<table>
<tr><td>Акаунт:</td><td><input type="text" name="username" /></td></tr>
<tr><td>Парола:</td><td><input type="password" name="password" /></td></tr>

<tr><td>Е-мейл адрес:</td><td><input type="text" name="email" /></td></tr>
<tr><td valign="top">Експанжън:</td>
<td>
<select name="expansion">
<option value="1">Wrath Of The Lich King</option>
</select></td></tr>

<tr><td> </td>
<td><input type="submit" name="registration" value="Създай" /></td></tr>
</table>
</form>

Не, нестава, не съм глупак, за да не знам как да сложа кода, дали проблема е в това, че съм под линукс и browsera да не поддръжа, това ? Но, пък в чатбокса имам една проверка и там бачка..
 
Да, сървъра ако имаш в предвид apache-то е стартирано, попринцип съм под Ubuntu 10.04 използвам за пакет обикновенния apache2 php5.3 mysql и т.н.

Код:
<?php 
define('IN_VALID', true); 
require_once ('config.php'); 
?> 

<?php 
if ($_SESSION["valid_user"]) 
{ echo "<font class=\"textshadow\"><b>Този акаунт вече съществува ?</b></font>"; } else { 

$realmd = array( 
'db_host'=> $host, 
'db_username' => $user, 
'db_password' => $pass, 
'db_name'=> $mangosrealm, 
); 

function check_for_symbols($string){ 
$len=strlen($string); 
$allowed_chars="abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789";
for($i=0;$i<$len;$i++)if(!strstr($allowed_chars,$string[$i]))return TRUE; 
return FALSE; 

} 

function sha_password($username,$password){ 
$username = strtoupper($username); 
$password = strtoupper($password); 

return SHA1($username.':'.$password); 
} 

if ($_POST['registration']){ 

$realmd_bc_new_connect = mysql_connect($realmd[db_host],$realmd[db_username],$realmd[db_password]); 
$selectdb = mysql_select_db($realmd[db_name],$realmd_bc_new_connect); 
if (!$realmd_bc_new_connect || !$selectdb){ 
echo "Something went wrong while connecting to the database. Please make sure the config.php file is correct."; 
die; 
} 

$username1 = $_POST['username']; 
$password1 = sha_password($username1,$_POST['password']); 
$email1 = $_POST['email']; 
$client = $_POST['expansion']; 

$qry_check_username = mysql_query("SELECT username FROM account WHERE username='$username1'"); 


if(mysql_num_rows($qry_check_username) != 0) 
{ 
echo 'Грешка: Този акаунт вече съществува.'; 
} 
else 
{ 
if (check_for_symbols($_POST[password]) == TRUE || check_for_symbols($username1) == TRUE){ 
echo "Грешка! Използвали сте невалидни символи при името на акаунта ви."; 
}else{ 
mysql_query("INSERT INTO account (username,sha_pass_hash,email,expansion) VALUES 
('$username1','$password1','$email1','$client')"); 
echo "Твоят акаунт <b>".$username1."</b> е създаден! Обедете се, че сте добавили нашият реалмлист: <br /><br /><b> ".$realmlist."</b><br/><br/>  Ако имате проблеми посетете нашият форум"; 
} 
} 
}else{ 
?>  

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> 
<table> 
<tr><td>Акаунт:</td><td><input type="text" name="username" /></td></tr> 
<tr><td>Парола:</td><td><input type="password" name="password" /></td></tr> 

<tr><td>Е-мейл адрес:</td><td><input type="text" name="email" /></td></tr> 
<tr><td valign="top">Експанжън:</td> 
<td> 
<select name="expansion"> 
<option value="1">Wrath Of The Lich King</option> 
</select></td></tr> 

<tr><td> </td> 
<td><input type="submit" name="registration" value="Създай" /></td></tr> 
</table> 
</form>


<?php 
} 
} 
?>
Ето го целия код, файла е php - да
 
<?php
if ($_SESSION["valid_user"])
{ echo "<font class=\"textshadow\"><b>Този акаунт вече съществува ?</b></font>"; } else {

$realmd = array(
'db_host'=> $host,
'db_username' => $user,
'db_password' => $pass,
'db_name'=> $mangosrealm,
);

function check_for_symbols($string){
$len=strlen($string);
$allowed_chars="abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789";
for($i=0;$i<$len;$i++)if(!strstr($allowed_chars,$string[$i]))return TRUE;
return FALSE;

}

function sha_password($username,$password){
$username = strtoupper($username);
$password = strtoupper($password);

return SHA1($username.':'.$password);
}

if(isset($_POST['registration'])){

$realmd_bc_new_connect = mysql_connect($realmd[db_host],$realmd[db_username],$realmd[db_password]);
$selectdb = mysql_select_db($realmd[db_name],$realmd_bc_new_connect);
if (!$realmd_bc_new_connect || !$selectdb){
echo "Something went wrong while connecting to the database. Please make sure the config.php file is correct.";
die;
}

if( (!isset($_POST['username'])) || (!isset($_POST['password'])) || (!isset($_POST['email'])) ) {
echo "Не сте попълнили задължителните полета!";
}
else
{

$username1 = $_POST['username'];
$password1 = sha_password($username1,$_POST['password']);
$email1 = $_POST['email'];
$client = $_POST['expansion'];

$qry_check_username = mysql_query("SELECT username FROM account WHERE username='$username1'");


if(mysql_num_rows($qry_check_username) != 0)
{
echo 'Грешка: Този акаунт вече съществува.';
}
else
{
if (check_for_symbols($_POST[password]) == TRUE || check_for_symbols($username1) == TRUE){
echo "Грешка! Използвали сте невалидни символи при името на акаунта ви.";
}else{
mysql_query("INSERT INTO account (username,sha_pass_hash,email,expansion) VALUES
('$username1','$password1','$email1','$client')");
echo "Твоят акаунт <b>".$username1."</b> е създаден! Обедете се, че сте добавили нашият реалмлист: <br /><br /><b> ".$realmlist."</b><br/><br/>  Ако имате проблеми посетете нашият форум";
}
}
}
}else{
?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<table>
<tr><td>Акаунт:</td><td><input type="text" name="username" /></td></tr>
<tr><td>Парола:</td><td><input type="password" name="password" /></td></tr>

<tr><td>Е-мейл адрес:</td><td><input type="text" name="email" /></td></tr>
<tr><td valign="top">Експанжън:</td>
<td>
<select name="expansion">
<option value="1">Wrath Of The Lich King</option>
</select></td></tr>

<tr><td> </td>
<td><input type="submit" name="registration" value="Създай" /></td></tr>
</table>
</form>


<?php
}
}
?>
 
Ъпдейтнах А ти какво искаш при събмит да излиза формата ли?

Код:
 <?php
define('IN_VALID', true);
require_once ('config.php');
?>

<?php
if ($_SESSION["valid_user"])
{ echo "<font class=\"textshadow\"><b>Този акаунт вече съществува ?</b></font>"; } else {

$realmd = array(
'db_host'=> $host,
'db_username' => $user,
'db_password' => $pass,
'db_name'=> $mangosrealm,
);

function check_for_symbols($string){
$len=strlen($string);
$allowed_chars="abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789";
for($i=0;$i<$len;$i++)if(!strstr($allowed_chars,$string[$i]))return TRUE;
return FALSE;

}

function sha_password($username,$password){
$username = strtoupper($username);
$password = strtoupper($password);

return SHA1($username.':'.$password);
}

if(isset($_POST['registration'])){

    $realmd_bc_new_connect = mysql_connect($realmd[db_host],$realmd[db_username],$realmd[db_password]);
    $selectdb = mysql_select_db($realmd[db_name],$realmd_bc_new_connect);
    if (!$realmd_bc_new_connect || !$selectdb){
    echo "Something went wrong while connecting to the database. Please make sure the config.php file is correct.";
    die;
    }

if( (!isset($_POST['username'])) || (!isset($_POST['password'])) || (!isset($_POST['email'])) ) {
       echo "Не сте попълнили задължителните полета!";
}
else
{

    $username1 = $_POST['username'];
    $password1 = sha_password($username1,$_POST['password']);
    $email1 = $_POST['email'];
    $client = $_POST['expansion'];

    $qry_check_username = mysql_query("SELECT username FROM account WHERE username='$username1'");


    if(mysql_num_rows($qry_check_username) != 0)
    {
        echo 'Грешка: Този акаунт вече съществува.';
    }
else
{
    if (check_for_symbols($_POST[password]) == TRUE || check_for_symbols($username1) == TRUE){
        echo "Грешка! Използвали сте невалидни символи при името на акаунта ви.";
    }else{
        mysql_query("INSERT INTO account (username,sha_pass_hash,email,expansion) VALUES
        ('$username1','$password1','$email1','$client')");
        echo "Твоят акаунт <b>".$username1."</b> е създаден! Обедете се, че сте добавили нашият реалмлист: <br /><br /><b> ".$realmlist."</b><br/><br/>  Ако имате проблеми посетете нашият форум";
    }
}
}
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<table>
<tr><td>Акаунт:</td><td><input type="text" name="username" /></td></tr>
<tr><td>Парола:</td><td><input type="password" name="password" /></td></tr>

<tr><td>Е-мейл адрес:</td><td><input type="text" name="email" /></td></tr>
<tr><td valign="top">Експанжън:</td>
<td>
<select name="expansion">
<option value="1">Wrath Of The Lich King</option>
</select></td></tr>

<tr><td> </td>
<td><input type="submit" name="registration" value="Създай" /></td></tr>
</table>
</form>


<?php

}
?>
 
Сега излиза, но при опит за създаване на акаунт - phpBB Debug] PHP Notice: in file /var/www/register/register.php on line 29: mysql_connect() expects parameter 2 to be string, object given
[phpBB Debug] PHP Notice: in file /var/www/register/register.php on line 30: mysql_select_db() expects parameter 2 to be resource, null given
Something went wrong while connecting to the database. Please make sure the config.php file is correct. също така го дава и при 1 написано поле същото.


//Накратко:
Формата я инклудвам във страница, тя е за създаване на акунт в wow, съвсем проста е пишеш си акаунт парола е-мейл и това е, но въпроса е, че дори да не е написана парола, можеш да си правиш акаунт, което не е добре, затова искам проверка, проста проверка на полетата дали са попълнени.
 
Това ти ли си го писал?

Код:
<?php
define('IN_VALID', true);
require_once ('config.php');
?>

<?php
if ($_SESSION["valid_user"])
{ echo "<font class=\"textshadow\"><b>Този акаунт вече съществува ?</b></font>"; } else {

$realmd = array(
'db_host'=> $host,
'db_username' => $user,
'db_password' => $pass,
'db_name'=> $mangosrealm,
);

function check_for_symbols($string){
$len=strlen($string);
$allowed_chars="abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789";
for($i=0;$i<$len;$i++)if(!strstr($allowed_chars,$string[$i]))return TRUE;
return FALSE;

}

function sha_password($username,$password){
$username = strtoupper($username);
$password = strtoupper($password);

return SHA1($username.':'.$password);
}

if(isset($_POST['registration'])){

    $realmd_bc_new_connect = mysql_connect($realmd['db_host'],$realmd['db_username'],$realmd['db_password']);
    $selectdb = mysql_select_db($realmd['db_name'],$realmd_bc_new_connect);
    if (!$realmd_bc_new_connect || !$selectdb){
    echo "Something went wrong while connecting to the database. Please make sure the config.php file is correct.";
    die;
    }

if( (!isset($_POST['username'])) || (!isset($_POST['password'])) || (!isset($_POST['email'])) ) {
       echo "Не сте попълнили задължителните полета!";
}
else
{

    $username1 = $_POST['username'];
    $password1 = sha_password($username1,$_POST['password']);
    $email1 = $_POST['email'];
    $client = $_POST['expansion'];

    $qry_check_username = mysql_query("SELECT username FROM account WHERE username='$username1'");


    if(mysql_num_rows($qry_check_username) != 0)
    {
        echo 'Грешка: Този акаунт вече съществува.';
    }
else
{
    if (check_for_symbols($_POST[password]) == TRUE || check_for_symbols($username1) == TRUE){
        echo "Грешка! Използвали сте невалидни символи при името на акаунта ви.";
    }else{
        mysql_query("INSERT INTO account (username,sha_pass_hash,email,expansion) VALUES
        ('$username1','$password1','$email1','$client')");
        echo "Твоят акаунт <b>".$username1."</b> е създаден! Обедете се, че сте добавили нашият реалмлист: <br /><br /><b> ".$realmlist."</b><br/><br/>  Ако имате проблеми посетете нашият форум";
    }
}
}
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<table>
<tr><td>Акаунт:</td><td><input type="text" name="username" /></td></tr>
<tr><td>Парола:</td><td><input type="password" name="password" /></td></tr>

<tr><td>Е-мейл адрес:</td><td><input type="text" name="email" /></td></tr>
<tr><td valign="top">Експанжън:</td>
<td>
<select name="expansion">
<option value="1">Wrath Of The Lich King</option>
</select></td></tr>

<tr><td> </td>
<td><input type="submit" name="registration" value="Създай" /></td></tr>
</table>
</form>


<?php

}
?>
 

Back
Горе