| |
|
|
| | У меня в переменной $name_usr - имя пользователя . В переменной $pas_usr -пароль , скрипт проверяет сначала имя , потом пароль , и если эти данные не введены то выдает ошибку .. значит тут все нормально , а вот когда заходит дело до проверки пароля , то не зависимо от того какой пароль введен оно ничего не выдает , хотя должно выдавать или же пароль не верный или же верный .
подскажите что сдесь не так , где ошибка ???
if ($_POST[name_usr]=='')
{
echo "Вы не ввели имя.";
}
else
{
if ($_POST[pas_usr]=='')
{
echo "Вы не ввели пароль.";
}
else
{
$new=$_POST['name_usr'];
$file = fopen("name.dat","r");
if(!file)
{
echo("ошибка открытия файла ");
}
$file = file ('name.dat');
$name = $new;
$flag = true;
for ($i=0; $i<count($file); $i++)
{
if (trim($file[$i]) == $name)
{
//-------------------------------------------------------------------
$new=$_POST['pas_usr'];
$file = fopen("password.dat","r");
if(!file)
{
echo("ошибка открытия файла ");
}
$file = file ('password.dat');
$name = $new;
$flag = true;
for ($i=0; $i<count($file); $i++)
{
if (trim($file[$i]) == $name)
{
print "Здравствуйте : $name_usr на вашем счете : $count условных единиц ";
//break;
$flag= false;
break;
}
if($flag)
{
print "Неверный пароль.";
}
}
}
}
$flag = false;
if($flag)
{
print "Такого пользователя нет в базе данных .";
}
}
} | |
| |
|
|
| |
|
|
| |
для: dima2207
(21.02.2007 в 23:25)
| | |
$flag= false;
break;
}
if($flag)
{
|
if($flag) - если я не ошибаюсь, проверяет на то, равна ли переменная TRUE и если да, то выводит, то что вам надо, но в вашем коде получается, что если пользователь всё введёт правильно, то ему наоборот переменная $flag будет равна FALSE | |
| |
|
|
| |
|
|
| |
для: dima2207
(21.02.2007 в 23:25)
| | |
<?php
if (empty($_POST[name_usr]) && empty($_POST[pas_usr])) {
exit("Вы не ввели имя.");
} else {
$new=$_POST['name_usr'];
$file = fopen("name.dat","r");
if(!$file) {
echo ("Ошибка открытия файла ");
}
$file = file('name.dat');
$name = $new;
$flag = true;
for ($i=0; $i<count($file); $i++)
{
if (trim($file[$i]) == $name)
{
//-------------------------------------------------------------------
$new=$_POST['pas_usr'];
$file = fopen("password.dat","r");
if(!$file){
echo("ошибка открытия файла ");
}
$file = file ('password.dat');
$name = $new;
$flag = true;
for ($i=0; $i<count($file); $i++){
if (trim($file[$i]) == $name)
{
print "Здравствуйте : $name_usr на вашем счете : $count условных единиц ";
//break;
$flag= false;
break;
}
if($flag)
{
print "Неверный пароль.";
}
}
}
}
$flag = false;
if($flag)
{
print "Такого пользователя нет в базе данных .";
}
}
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: SnooPI
(22.02.2007 в 00:53)
| | | да нет - же не работает !!! и к томуже мне надо что-бы пароль проверялся с текушей позицией переменной $i а не проверять весь массив паролей , у меня ксинхронно записываются имена , пароли , т.е если имя совпало в масиве $file[$i] где $i=5 , то пароль нужно проверять в ячейке масива $file1[$i] , где $i=5. вот примерный код , только он не работает так как надо !!! помогите разобраться !!!
<?
if (empty($_POST[name_usr]) && empty($_POST[pas_usr])) {
exit("Вы не ввели имя.");
} else {
$new=$_POST['name_usr'];
$file = fopen("name.dat","r");
if(!$file) {
echo ("Ошибка открытия файла ");
}
$file = file('name.dat');
$name = $new;
$flag = true;
for ($i=0; $i<count($file); $i++)
{
if (trim($file[$i]) == $name)
{
//-------------------------------------------------------------------
$new=$_POST['pas_usr'];
$file = fopen("password.dat","r");
if(!$file){
echo("ошибка открытия файла ");
}
$file = file ('password.dat');
$name = $new;
$flag = true;
//for ($i=0; $i<count($file); $i++){
if ($file[$i] == $name)
{
print "Здравствуйте : $name_usr на вашем счете : $count условных единиц ";
//break;
$flag= false;
break;
}
if($flag)
{
print "Неверный пароль.";
}
}
}
}
$flag = false;
if($flag)
{
print "Такого пользователя нет в базе данных .";
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: dima2207
(22.02.2007 в 03:10)
| | | Ответил в такой же теме, привел рабочий код конкретно для вашего случая смотрите, у меня код работает | |
| |
|
|