За последние 24 часа нас посетили 17576 программистов и 1301 робот. Сейчас ищут 1780 программистов ...

Самая тупая ошибка поможте пожалуйста

Тема в разделе "Прочие вопросы по PHP", создана пользователем Manvel, 12 сен 2015.

  1. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    В чем проблема друзья ?

    Notice: Undefined index: login

    Код (PHP):
    1. <form method="post" action="" id="registr_form">
    2. <label>Login</label>
    3. <input type="text" maxlength="255" name="login" class="registr_input"/>
    4. </form> 
    Код (PHP):
    1. $login = $_POST['login']; 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.244
    Адрес:
    там-сям
    Вангую, что в этот момент форма не отправлена. Можешь обернуть кусок где обрабатываются данные формы в такой блок:
    Код (PHP):
    1. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    2. //  только в этом случае что-то делаешь c login и т.п.
    3. } 
     
  3. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    Нее это у меня есть глянь
    Код (PHP):
    1. include("engine/php_forms/dbconnect.php");
    2. $login = $_POST['login'];
    3. $name = $_POST['name'];
    4. $surname = $_POST['surname'];
    5. $email = $_POST['email'];
    6. $password = $_POST['password'];
    7. $conpassword = $_POST['conpassword'];
    8. if($password == $conpassword && $login = $_POST['login'] && $name = $_POST['name'] && $surname = $_POST['surname'] && $email = $_POST['email'] && $password = $_POST['password'] && $conpassword = $_POST['conpassword']){
    9.     $result = $mysqli_query("SELECT id FROM users WHERE login = '$login' && email = '$email', $DBC") ;
    10.     $myrow = mysqli_fetch_array($result);
    11.     if (!empty($myrow['id'])) {
    12.     exit ("Sory but this login is already registered! Please type other login ");
    13.     }
    14.     $query = "INSERT INTO users (login, name, surname, email, password) VALUES('$login', '$name', '$surname', '$email', '$password')";
    15.     mysqli_query($query);
    16.     if ($query=='TRUE'){
    17.     echo "You are successfully registered! Now you can visit the website. <a href='index.php'>Home Page</a>";
    18.     }
    19.  else {
    20.     echo "Mistake! You aren't registered.";
    21.     }
    22.     
    23. }else; 
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.244
    Адрес:
    там-сям
    Не понял, что "это" у тебя есть? Прочитай еще раз и сравни со своим. Что не понятно — спроси.

    Добавлено спустя 1 минуту 46 секунд:
    Ктати, есть и другие косяки. Твой код ужасен.
     
  5. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    Ну ты про if не говариш ? или про $_SERVER ? Если $_SERVER зачем мне это так как я хочу форму регистрации создать зачем мне $_SERVER ?
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.244
    Адрес:
    там-сям
    Затем, что если форма еще не отправлена, никаких $_POST['login'] не существует. Об этом написано в ошибке.

    Когда форма еще не отправлена, нам ничего не надо делать с данными. Их нет! Моя проверка нужна чтобы эта ошибка не возникала. Теперь понял?
     
  7. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    Да понял но вот еше вопрос я не понел что прописать тут или что делать ? (// только в этом случае что-то делаешь c login и т.п.)
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.244
    Адрес:
    там-сям
    Манвел-джан, туда надо прописать все твои присваивания типа $login = $_POST['login'] и всё, что идет потом, всю обработку данных.

    ВСЁ КРОМЕ САМОЙ ФОРМЫ
     
  9. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    Спасибо большое братан ты помог мне но вот что случилось код сделал так
    Код (PHP):
    1. <?php
    2. include("engine/php_forms/dbconnect.php");
    3. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    4. $login = $_POST['login'];
    5. $name = $_POST['name'];
    6. $surname = $_POST['surname'];
    7. $email = $_POST['email'];
    8. $password = $_POST['password'];
    9. $conpassword = $_POST['conpassword'];
    10.  
    11. if($password == $conpassword && $login = $_POST['login'] && $name = $_POST['name'] && $surname = $_POST['surname'] && $email = $_POST['email'] && $password = $_POST['password'] && $conpassword = $_POST['conpassword']){
    12.     $result = $mysqli_query("SELECT id FROM users WHERE login = '$login' && email = '$email', $DBC") ;
    13.     $myrow = mysqli_fetch_array($result);
    14.     if (!empty($myrow['id'])) {
    15.     exit ("Sory but this login is already registered! Please type other login ");
    16.     }
    17.     $query = "INSERT INTO users (login, name, surname, email, password) VALUES('$login', '$name', '$surname', '$email', '$password')";
    18.     mysqli_query($query);
    19.     if ($query=='TRUE'){
    20.     echo "You are successfully registered! Now you can visit the website. <a href='index.php'>Home Page</a>";
    21.     }
    22.  else {
    23.     echo "Mistake! You aren't registered.";
    24.     }
    25.     
    26. }else;
    27. } 
    28.  
    29.  
    30.  
    31.  
    32.  
    33. ?>
    а вот сейчас при нажатии на кнопки регистрации напишет вот эту ошибку

    Notice: Undefined variable: mysqli_query in C:\xampp\htdocs\blog\engine\php_forms\registr_user.php on line 14

    Fatal error: Function name must be a string in C:\xampp\htdocs\blog\engine\php_forms\registr_user.php on line 14
     
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.244
    Адрес:
    там-сям
    $mysqli_query это имя переменной, т.к. переменные в PHP начинаются со знака доллара. а тебе нужен вызов функции: mysqli_query
    есть и другие косяки, но давай ты уже сам будешь разбираться.

    учебник тебе нужен и постепенное изучение. шаг за шагом. не бери в рот больше, чем можешь проглатить — народная мудрость.
     
  11. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    ладно только вот последный вопрос и все мой php файл регистрации находится здесь ("engine/php_forms/registr_user.php") мне в action="" написать этот строка чтобы цепить или просто в начале страници include сделать ?
    Код (Text):
    1. <form method="post" action="" id="registr_form">
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.244
    Адрес:
    там-сям
    Когда action пустая строка или вобще нет такого параметра в <form>, то данные отправляются по тому же адресу, по которому располагается сама форма.
    Если форма и скрипт-обработчик находятся в разных файлах — тогда адрес обработчика необходимо написать в action.
     
  13. Manvel

    Manvel Новичок

    С нами с:
    10 янв 2015
    Сообщения:
    48
    Симпатии:
    0
    ладно спасибо большое
     
  14. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37