За последние 24 часа нас посетили 18979 программистов и 1635 роботов. Сейчас ищут 840 программистов ...

В чем ошибка, при работе с формой?

Тема в разделе "PHP для новичков", создана пользователем EX_VIK, 25 июн 2008.

  1. EX_VIK

    EX_VIK Активный пользователь

    С нами с:
    25 июн 2008
    Сообщения:
    3
    Симпатии:
    0
    Вот мой index.php. Это страница регистрации будет.
    -------------------------------------------------------------
    <html>
    <head><title>REG</title></head>
    <body>
    <h1>Register for an Account:</h1>
    <form action="" method="POST">
    Username: <input type="text" name="ac"><br>
    Email: <input type="text" name="email"><br>
    Password: <input type="password" name="pword"><br>
    <input name="Namerad" type="radio" value="2112" checked>
    <input type="submit" value="GO">
    </form>
    </body>
    </html>

    <?php
    $host="localhost";
    $user="MyBD";
    $pwd="qwerty";
    $db=mysql_connect($host,$user,$pwd);
    mysql_select_db("table1",$db);

    $ac_name=$_POST['ac'];

    $select_ac=mysql_query("SELECT id FROM account where username='"+$ac_name+"'");
    $m=mysql_num_rows($select_ac);

    if ($m > 0){
    echo "NO!!!";
    }
    else
    {
    echo "YES!!!";
    }

    ?>

    -------------------------------------------------------------
    Вроде, все понятно, но почему-то ошибка!

    Notice: Undefined index: ac in Z:\home\127.0.0.1\www\index.php on line 22

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\127.0.0.1\www\index.php on line 25

    Как мне их избежать?
     
  2. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    PHP:
    1. <?
    2. $select_ac=mysql_query("SELECT id FROM account where username='"+$ac_name+"'");
    3.  
    конкатинация строк через точку
    PHP:
    1. <?
    2. $select_ac=mysql_query("SELECT id FROM account where username='".$ac_name."'");
    3.  
     
  3. EX_VIK

    EX_VIK Активный пользователь

    С нами с:
    25 июн 2008
    Сообщения:
    3
    Симпатии:
    0
    Во! Одна ошибка (предупреждение) исчезло!
    Осталось
    Notice: Undefined index: ac in Z:\home\127.0.0.1\www\index.php on line 22.

    nimistar, спасибо!
     
  4. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    EX_VIK, сначало когда форма тока выводится входящий массив $_POST - будет пустым , а ты пытаешся забрать с него данные - вот тебя и предупреждают что это невыйдет....

    возможный путь решения

    PHP:
    1.  
    2. <?php
    3. if($_SERVER['REQUEST_METHOD']==='POST'){
    4.   $host="localhost";
    5.   $user="MyBD";
    6.   $pwd="qwerty";
    7.   $db=mysql_connect($host,$user,$pwd);
    8.   mysql_select_db("table1",$db);
    9.  
    10.   $ac_name=$_POST['ac'];
    11.  
    12.   $select_ac=mysql_query("SELECT id FROM account where username='"+$ac_name+"'");
    13.   $m=mysql_num_rows($select_ac);
    14.  
    15.   if ($m > 0){
    16.     echo "NO!!!";
    17.   }else{
    18.     echo "YES!!!";
    19.   }
    20. }else{
    21.   echo 'ждем данные с формы!';
    22. }
    23.  
    24. ?>
     
  5. EX_VIK

    EX_VIK Активный пользователь

    С нами с:
    25 июн 2008
    Сообщения:
    3
    Симпатии:
    0
    Спасибо! Помогло! Будут вопросы, буду задвать!!!
     
  6. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    EX_VIK - лучше почитай книжечки более плотно! :)
     
  7. mclaud

    mclaud Активный пользователь

    С нами с:
    15 фев 2007
    Сообщения:
    97
    Симпатии:
    0
    Адрес:
    Одесса