ошибка в скрипте

Discussion in 'PHP' started by rubik-nerubik, 5 Apr 2009.

  1. rubik-nerubik

    rubik-nerubik Elder - Старейшина

    Joined:
    4 May 2007
    Messages:
    248
    Likes Received:
    9
    Reputations:
    -2
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in тут на 14 линии................

    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in 15 линия..................................

    ......

    PHP:
    <?
      require(
    "config.php");
      require(
    "./core/i_func.php");

      if( (!empty(
    $_REQUEST['in_login'])) && (!empty($_REQUEST['in_pass'])) ){

        
    $hDB = @mysql_connect($HOST,$USER,$PASS)
                or die(
    "Ошибка: Connect_error.");

        
    mysql_select_db($dbName)
        or die(
    "Ошибка: Select_DB");

        
    $res mysql_query("SELECT id FROM "._PREFIX_."_user WHERE name='".$_REQUEST['in_login']."' AND passw ='".md5($_REQUEST['in_pass'])."'");
         
    $row mysql_fetch_array($res); 
        
    mysql_free_result($res);
        
    mysql_close($hDB);

        if(
    $row['id'] != 1){
          
    header("location: login.php?error=invlog");
          exit;
        }
        
    session_start();
        
    session_register("IN_LOGIN");
        
    session_register("IN_PASS");

        
    $_SESSION['IN_LOGIN'] = $_REQUEST['in_login'];
        
    $_SESSION['IN_PASS'] = $_REQUEST['in_pass'];

        
    header("location: addnews.php");
        exit;
      }
    ?>
    <HTML>
    <HEAD>
          <TITLE>Вход</TITLE>
          <META http-equiv=Content-Type content="text/html; charset=windows-1251">
    </HEAD>
    <BODY bgcolor=#808080>
    <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 ALIGN="CENTER" WIDTH="50%" HEIGHT="20%">
    <TR>
        <TD ALIGN="CENTER" VALIGN="Top"><BR><BR><BR>
        <FORM ACTION="login.php" METHOD="Post">

        <table border=0 cellpadding=2 cellspacing=0 bgcolor=#ebebe4>
        <tr>
          <td bgcolor=#5297f9 colspan=2><font face="Tahoma" size=2 color=#FFFFFF>&nbsp;&nbsp;•&nbsp;<b>Авторизация</b></font></td>
        </tr><tr>
          <td colspan=2>
    <?
      
    if(!empty($_REQUEST['error'])){
        if(
    $_REQUEST['error'] == 'invlog'){
    ?>
          <table border=0 cellpadding=0 cellspacing=1 bgcolor=#5297f9 width="100%">
          <tr>
            <td bgcolor=#ebebe4>
            <table border=0 cellpadding=2 cellspacing=0>
            <tr>
              <td><img src="img/error.jpg"></td>
              <td><font color=#FF0000 size=2 face="Tahoma">&nbsp;&nbsp;Ошибка!<br>&nbsp;&nbsp;Не верный пароль или логин.&nbsp;&nbsp;</font></td>
            </tr></table>
            </td>
          </tr></table>
    <?
        
    }
      }
    ?>
          </td>
        </tr>
        <tr>
          <td><font face="Tahoma" size=2>&nbsp;&nbsp;Логин:&nbsp;</font></td>
          <td align="Left"><input type="text" size=20 name="in_login"></td>
        </tr><tr>
          <td><font face="Tahoma" size=2>&nbsp;&nbsp;Пароль:&nbsp;</font></td>
          <td align="Left"><input type="password" size=20 name="in_pass"></td>
        </tr>
        <tr>
          <td colspan=2 align="Right"><center><hr width="95%"></center><input type="submit" value="Войти"></td>
        </tr></table>
        </FORM>
        </TD>
    </TR>
    </TABLE>

    </BODY>
    </HTML>
    %) запускаю тоже самое на своём родном компьютере. т.е. стационарном..... всё работает.. а на ноутбуку не хочет... это кусок кода новостника.
     
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Попробуй это:

    $_REQUEST['in_login']

    в смысле везде, не только это, а где есть $_REQUEST

    заменить на $_POST, т.е. сделать примерно так, было:

    $_REQUEST['in_login']

    стало:

    trim($_POST['in_login'])

    плюс, чтобы понять, в чем ошибка, на стадии разработки всегда юзай при таких ошибках mysql_error(), т.е. примерно так, везде, где выполняются sql-запросы:

    $res = mysql_query("SELECT id FROM "._PREFIX_."_user WHERE name='".$_REQUEST['in_login']."' AND passw ='".md5($_REQUEST['in_pass'])."'") or DIE('ОШибка' . mysql_error());

    и сразу поймешь, в чем дело
     
  3. rubik-nerubik

    rubik-nerubik Elder - Старейшина

    Joined:
    4 May 2007
    Messages:
    248
    Likes Received:
    9
    Reputations:
    -2
    замена с рекуест не помогла.
     
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Чтож делать, остальное всё я просто так написал, чтобы самому не забывать
     
  5. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    mysql_fetch_assoc

    и проверь, существует ли таблица _PREFIX_."_user"
    и в ней поля name, id , passw

    mysql_query ('...') or die ('Error: '.mysql_error ());
    и скажи что пишет
     
    #5 eLWAux, 5 Apr 2009
    Last edited: 5 Apr 2009