Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > DBase + PHP


Автор: Dr.Drunk 6.1.2005, 23:23
Доброго времени суток.

Собственyо сабж.

код:
Код


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<link rel=StyleSheet type=text/css href="./Login.css">
<title> -- Авторизация</title>
</head>

<body>
<?
$FlagErr=0;
$User='';
$PWD='';
$Reg=0;
$CurRec=array();
if (isset($_POST['Reg']))
 {
   $Reg=$_POST['Reg'];
 }
if (isset($_POST['User'])&&($_POST['User']<>''))
 {
   $User=$_POST['User'];
 }
else
 {
   echo("<p>Введите имя.</p>");
   $FlagErr=1;
 }

if (isset($_POST['PWD'])&&($_POST['PWD']<>''))
 $PWD=$_POST['PWD'];
else
 {
   echo("<p>Введите пароль.</p>");
   $FlagErr=1;
 }

if ($FlagErr==0)
{
 if ($Reg==0)
  {
     ...
  }
 elseif ($Reg==1)
  {
    $idUsr=dbase_open('./User.dbf',2);
    if ($idUsr)
     {
       $FlFind=0;
       $NumRec=dbase_numrecords($idUsr);
       for ($i=1;$i<=$NumRec;$i++)
           {
             $CurRec=dbase_get_record($idUsr,$i);
             $MaxKey=$CurRec[0];
             if ((strcasecmp(Trim($CurRec[1]),Trim($User))==0)&&
                 ($CurRec['deleted']==0))
               {
                 print("Имя - {$User} -уже используется");    
                 $FlFind=1;
                 $FlagErr=1;
                 break;
               }
           }
       if ($FlFind==0)
         {
           $CurRec[0]=$MaxKey+1;
           $CurRec[1]=Trim($User);
           $CurRec[2]=Trim($PWD);
           $CurRec['deleted']=0;
           if (dbase_add_record($idUsr,$CurRec)
            {
                echo "Регистрация прошла успешно";
             }
           else
             echo "Ошибка записи.";
         }
     }
    else
     {
       echo("Ошибка открытия файла.");
     }
    dbase_close($idUsr);
  }
}

if($FlagErr==1)
{
  $FileForm=fopen('./Form.txt','r');
  if (!$FileForm)
    {
      echo ("Ошибка открытия формы");
    }
  else
    {
      fpassthru($FileForm);
      fclose($FileForm);
    }
}
?>

</body>
</html>



Ошибку выдает при добавлении записи, файл User.dbf - существует.

Автор: Mal Hack 6.1.2005, 23:33
Дай точный текст ошибки, которую пишет PHP.

Автор: Dr.Drunk 7.1.2005, 10:55
Mal Hack, в том то и дело что РНР ни чего не пишет smile smile smile

Проблема решилась:

Нужно было вместо этого
Код

if (dbase_add_record($idUsr,$CurRec)

Написать вот так
Код

if (dbase_add_record($idUsr,array($CurRec[0],$CurRec[1],$CurRec[2]))


Если у кого-то такие траблы возникли посмотрите http://www.realcoding.net/part.php?id=2200

Автор: Mal Hack 7.1.2005, 14:12
По логике он должен был первый вариант воспринять...
Попробуй ради интереса в самаом начале сделать
$CurRec = array();

Автор: Dr.Drunk 7.1.2005, 17:11
Цитата(Mal @ 7.1.2005, 14:12)
По логике он должен был первый вариант воспринять...
Попробуй ради интереса в самаом начале сделать
$CurRec = array();

Вообще-то я так сначала и сделал, строка №4 в РНР скрипте, а оно не сработало. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)