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

Форум PHP

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

 

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

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

тема: Куда теряются данные ?
 
 автор: dima2207   (22.02.2007 в 01:46)   письмо автору
 
 

куда теряются значение переменной $name2? $name -есть !!!

                     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)
    {
     $flag = false;
    break;
    }
    }
//-------------------------------------------------------------------

       if ($flag)
       {
            $new2=$_POST['pas_usr'];
             $file2 = fopen("password.dat","r");

  $file2= file ('password.dat');
  $flag = false;
    if ($file2[$i] == $new2)
    {

       print "Здравствуйте : $name_usr на вашем счете : $count условных единиц ";
    }
    else
    {
      print "Неверный пароль";
    }


      }

       else
       {
       print "Такого пользователя нет в базе данных!!!!!!!";
       print $name;
       print $name2;
       }
                              }

                                               }
?>

   
 
 автор: NovikovMA   (22.02.2007 в 02:26)   письмо автору
 
   для: dima2207   (22.02.2007 в 01:46)
 

а что такое $name2? и вообще вы уверены, что есть $_POST['name_usr']?

   
 
 автор: dima2207   (22.02.2007 в 02:31)   письмо автору
 
   для: NovikovMA   (22.02.2007 в 02:26)
 

да , переменная есть , но только я ошибся не $name2 a $new2 !!!

   
 
 автор: NovikovMA   (22.02.2007 в 02:48)   письмо автору
 
   для: dima2207   (22.02.2007 в 02:31)
 

а у тя, случаем, нет какой-нить глобальной переменной $name, попробуй просто поменяй имя на $aaa. Просто не видно остального кода, так что это только предположение.

   
 
 автор: retsoul   (22.02.2007 в 03:05)   письмо автору
 
   для: dima2207   (22.02.2007 в 02:31)
 

а что такое - $file2[$i]?
и откуда это берётся и почему так обращается?

   
 
 автор: dima2207   (22.02.2007 в 03:17)   письмо автору
 
   для: retsoul   (22.02.2007 в 03:05)
 

Это переменная куда считывается массив пароля , и сравнивается введенный с тем что в масиве !!!

   
 
 автор: retsoul   (22.02.2007 в 03:21)   письмо автору
 
   для: dima2207   (22.02.2007 в 03:17)
 

это понятно, но существует ли значение $i?
ведь оно, как видно из листинга, объявлено только в цикле, а значит и живёт, пока живёт цикл, может поможет, если добавить $i = 0 перед циклом?

   
 
 автор: dima2207   (22.02.2007 в 03:32)   письмо автору
 
   для: retsoul   (22.02.2007 в 03:21)
 

ну да , в этом то и весь смысл что-бы пароль по адресу масива который находится в переменной $i , так это что-э получается что нужно дублироавать эту переменную ???а что если я сделаю вот так $k=$i в теле цыкла до brake; а брашатся потом к $k .

   
 
 автор: retsoul   (22.02.2007 в 03:43)   письмо автору
 
   для: dima2207   (22.02.2007 в 03:32)
 

так тоже можно попробовать

   
 
 автор: dima2207   (22.02.2007 в 03:45)   письмо автору
 
   для: retsoul   (22.02.2007 в 03:43)
 

да , но по моему переменная у меня находится в теле цыкла !!!

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


?>

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

да, в теле, поэтому и требуется объявить его вне цикла

   
 
 автор: dima2207   (22.02.2007 в 05:08)   письмо автору
 
   для: retsoul   (22.02.2007 в 03:51)
 

Все бесполезно !!!!!!!!

<?
        
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)
    {
       
$k=$i;
      
$flag false;
      break;
    }
  }

  if(
$flag)
  {
$new2=$_POST['pas_usr'];
  
$file2 fopen("password.dat","r");
  if(!
file)
  {
    echo(
"ошибка открытия файла ");
  }
  
$file file ('password.dat');
  
$flag true;
  if (
$file2[$k] == $new2)
    {
      print 
"Здравствуйте: $new";
      
$flag false;
      break;
    }
  }
else{
  if(
$flag)
  {

   print 
$new;
        }
        else{

                         echo 
$new,$new2," Такого пользователя нет в базе данных";

              }



//}

}

}
                            }

?>

   
 
 автор: KPETuH   (22.02.2007 в 09:11)   письмо автору
 
   для: dima2207   (22.02.2007 в 05:08)
 

1. Блин ну вы же код выставляете не для себя, а для других, поэтому пожалуйста готовте его получше читать такой код совершенно не возможно.
2. Помоему вся заморочка у вас из-за переменной $flag.Зачем она вообще вам нужна легко можно обойтись без нее.

   
 
 автор: KPETuH   (22.02.2007 в 09:23)   письмо автору
 
   для: dima2207   (22.02.2007 в 05:08)
 

Попробуйте вот так

<? 
if ($_POST[name_usr]==''
    { 
        echo 
"Вы не ввели имя."
    } 
else 
    { 
        if (
$_POST[pas_usr]==''
            { 
                echo 
"Вы не ввели пароль."
            } 
        else 
            { 
                
$name=$_POST['name_usr']; 
                
$file file ('name.dat');
                if (!
$file) {echo "Файл базы не найден"; die;} 
                for (
$i=0$i<=count($file); $i++) 
                { 
                    if (
trim($file[$i]) == $name
                        { 
                            
$pass=$_POST['pas_usr'];
                            
$file2 file ('password.dat');
                            if (!
$file2) {echo "Файл базы не найден"; die;}
                            if (
trim($file2[$i]) == $pass)
                                {
                                    echo 
"Здравствуйте: $name";
                                    break;   
                                }
                            else
                                {
                                    echo 
"Пароль неверен поробуйте еще раз";   
                                }    
                          }
                   else
                          {
                                echo 
"Такого пользователя нет в базе данных. Пожалуйста зарегистрируйтесь";
                          }
             
                } 
         
          
            } 
         
    } 
?>

   
 
 автор: KPETuH   (22.02.2007 в 10:06)   письмо автору
1.8 Кб
 
   для: dima2207   (22.02.2007 в 05:08)
 

Вот в прикрепленном файле смотрите немного подправил предыдуший скрипт + добавил форму все работает, так что я думаю вся заморочка была из-за пременной $flag вы с ней просто запутались :)

   
Rambler's Top100
вверх

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