Проверка при логин

FreeStylerz

Registered
Въпроса ми е как ще стане когато потребителят се логва ако си сгреши паролата или потребителското име или и двете да му излиза Captcha
 
да речем имаш си форма имаш си всичко, след проверка за правилно име, или парола, ако е грешно вместо да слагаш името е грешно слагаш нова форма с допълнителното поле за captcha а началната ти форма няма да седи над php кода ами след последния иф, след последната проверка за натиснат бутон.
 
Това скалъпих набързо, незнам дали работи трябва да си го настроиш ..


Код:
<?
if (isset($_POST['submit']))
{
$username=$_POST['username'];
$password=$_POST['password'];
if (empty($username) || empty($password))
{
echo "Попълнете полетата !";
}
else
{
$query=mysql_query("SELECT * FROM `users` WHERE `username` = '$username'") or die(mysql_error());
$row=mysql_fetch_array($query);

if ($username == $row['username'] && $password == $row['password'])
{
echo "Успешно влязохте !";
}
else
{
echo '

<form method="POST" action="">

Потребител : <input type="text" name="username"><br />
Парола : <input type="password" name="password"><br />
Код : <input type="password" name="password"><br />
<input type="submit" name="submit" value="Влез"> 

</form>

';
}
}
}
else
{
echo '

<form method="POST" action="">

Потребител : <input type="text" name="username"><br />
Парола : <input type="password" name="password"><br />
<input type="submit" name="submit" value="Влез"> 

</form>

';
}
?>
 
несам сигорен със сесии или бисквитки как ще стане, но може да стане, като след error съобщението, че е въвел грешно име или парола да създадеш променлива със стойност 0 и при всеки еррор да покачва с едно и когато станат 3 да излиза друга форма ? ето как

Код:
$errors=0;
$errors++;
if ($errors >= 3)
{
//Формата 
}

Може би така ? :D
 
Ще го пробвам след малко сега си играя с това:
session_start();
if(!isset($_SESSION['num'])){
$_SESSION['num'] = 0;
}

if($pass==$pass1){
//tuka koda
unset($_SESSION['num']; //destroy $_SESSION
} else {
if($_SESSION['num']>=3){
//кода за антиспам
} else {
$_SESSION['num'] = $_SESSION['num']+1;
}
}

Но с това постояно ми стои 0 :(
 
Може би така ?

Код:
<?
session_start();
if(!isset($_SESSION['num'])){
$_SESSION['num'] = 0;
}

if($pass==$pass1){
//tuka koda
unset($_SESSION['num']; //destroy $_SESSION
} else {
$s=$_SESSION['num']+1;
if ($s >= 3)
{
//Код за антиспам
}
}
?>
 
justspy каза:
Може би така ?

Код:
<?
session_start();
if(!isset($_SESSION['num'])){
$_SESSION['num'] = 0;
}

if($pass==$pass1){
//tuka koda
unset($_SESSION['num']; //destroy $_SESSION
} else {
$s=$_SESSION['num']+1;
if ($s >= 3)
{
//Код за антиспам
}
}
?>

Нестава
 
Код:
<? 
session_start(); 
if(!isset($_SESSION['num'])){ 
$_SESSION['num'] = 0; 
} 

if($pass==$pass1){ 
//tuka koda 
unset($_SESSION['num']); //destroy $_SESSION 
} else { 
$_SESSION['num'] += 1; 
if ($_SESSION['num'] >= 3) 
{ 
//Код за антиспам 
} 
} 
?>
 
hrvladev каза:
Код:
<? 
session_start(); 
if(!isset($_SESSION['num'])){ 
$_SESSION['num'] = 0; 
} 

if($pass==$pass1){ 
//tuka koda 
unset($_SESSION['num']); //destroy $_SESSION 
} else { 
$_SESSION['num'] += 1; 
if ($_SESSION['num'] >= 3) 
{ 
//Код за антиспам 
} 
} 
?>

Нестава даже нз закакво го слагаш това = след +
 
Ами спестяваш време :wink:

$_SESSION['num'] += 1;

е еквивалентно на

$_SESSION['num'] = $_SESSION['num'] + 1;

И незнам как го пробваш и какво правиш, но при мен кодът си работи перфектно.

Едит: Добави това:

<?php
session_start();
if(!isset($_SESSION['num'])){
$_SESSION['num'] = 0;
}

$pass="asd";
$pass1="as";


if($pass==$pass1){
echo "Паролите съвпадат!";//tuka koda
unset($_SESSION['num']); //destroy $_SESSION
} else {
$_SESSION['num'] += 1;
if ($_SESSION['num'] >= 3)
{
echo $_SESSION['num'];//Код за антиспам
}
}
?>

Презареди 3-4 пъти страницата и виж резултата, след което направи двете променливи с една и съща стойност и повтори да видиш резултата.
 
hrvladev каза:
Ами спестяваш време :wink:

$_SESSION['num'] += 1;

е еквивалентно на

$_SESSION['num'] = $_SESSION['num'] + 1;

И незнам как го пробваш и какво правиш, но при мен кодът си работи перфектно.

Ем и тей не става други ? :?
 
Едитнах си предишния пост.
 
То и при мене така тръгва но я виж това как ще стане пробвах всички начино просто без коментар...
Оправих се :)
 

Back
Горе