Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Идентификация пользователя !
 
 автор: dima2207   (21.02.2007 в 23:25)   письмо автору
 
 

У меня в переменной $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 "Такого пользователя нет в базе данных .";
}
}
}

   
 
 автор: DEM   (21.02.2007 в 23:55)   письмо автору
 
   для: dima2207   (21.02.2007 в 23:25)
 


$flag= false;
break;
}
if($flag)
{

if($flag) - если я не ошибаюсь, проверяет на то, равна ли переменная TRUE и если да, то выводит, то что вам надо, но в вашем коде получается, что если пользователь всё введёт правильно, то ему наоборот переменная $flag будет равна FALSE

   
 
 автор: SnooPI   (22.02.2007 в 00:53)   письмо автору
 
   для: 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;


$flagfalse;
break;
}
if(
$flag)
{

print 
"Неверный пароль.";
}
}

}
}
$flag false;
if(
$flag)
{
print 
"Такого пользователя нет в базе данных .";
}
}
}
?>

   
 
 автор: dima2207   (22.02.2007 в 03:10)   письмо автору
 
   для: 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;


$flagfalse;
break;
}
if(
$flag)
{

print 
"Неверный пароль.";
}
}

}
}
$flag false;
if(
$flag)
{
print 
"Такого пользователя нет в базе данных .";
}


?>

   
 
 автор: KPETuH   (22.02.2007 в 09:51)   письмо автору
 
   для: dima2207   (22.02.2007 в 03:10)
 

Ответил в такой же теме, привел рабочий код конкретно для вашего случая смотрите, у меня код работает

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования