2017-02-01 5 views
1

Я не могу получить свою форму для отправки. Я использую PHP 5.6.24 и NetBeans 8.2. Любая помощь будет принята с благодарностью!PHP/HTML form submit не работает

файла: index.php

PHP:

<?php 
session_start(); 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

date_default_timezone_set('America/New_York'); 

if(isset($_POST['login_submit'])){ 
    $email = filter_input(INPUT_POST,'email'); 
    $email = filter_var($email, FILTER_VALIDATE_EMAIL); 
    $password = filter_input(INPUT_POST,'password'); 

    //process log in stuff here 

    $_SESSION['logged_in'] = 1; 

} 

//LOG OUT 
if(isset($_POST['logout_submit'])){ 
    session_destroy(); 
    if (isset($_SESSION['logged_in'])) 
     unset($_SESSION['logged_in']); 
    //process additional log out stuff here 
} 

?> 

HTML:

<h4>Dashboard</h4> 
 
<form action="index.php" method="post"> 
 
\t <?php if(!isset($_SESSION['logged_in'])) : ?> 
 
\t <label>Email: </label><br /> 
 
\t <input type="text" name="email" placeholder="[email protected]"/><br /> 
 
\t <label>Password: </label><br /> 
 
\t <input type="password" name="password" placeholder="Your secret code"/><br /> 
 
\t <br /> 
 
\t <input type="submit" value="Log in" name="login_submit" /> 
 
\t <?php else : ?> 
 
\t <input type="submit" value="Log out" name="logout_submit" /> 
 
\t <?php endif; ?> 
 
</form>

Что происходит:

  1. Я установил точки останова на session_start(); и на if(isset($_POST['login_submit'])){ и запустил в режиме отладки.
  2. Код останавливается в точках останова при запуске, как ожидалось.
  3. Я ввожу адрес электронной почты и пароль и нажмите кнопку «Вход».
  4. Ничего не происходит; первая точка останова даже не достигнута. Ошибок, предупреждений или уведомлений не отображается.

Я попытался с помощью if($_POST['login_submit']){ if($_POST['login_submit'] == "Log in"){ if(filter_input(INPUT_POST,'login_submit')){ , но ни один из них не работал. Я также создал новую страницу с формой, которая получает файл (<input type="file" name="datafile">). Откроется диалоговое окно выбора файлов, но кнопка «Отправить» также не отправится на эту страницу.

Для удовольствия я скопировал вывод HTML для файла (посмотреть источник, ctrl + a, ctrl + c) и вставить его в Dreamweaver, а затем сохранить в виде файла HTML. Когда я открыл этот файл в браузере и набрал имя пользователя/pwd и нажал «Вход в систему», он открыл файл index.php, как и ожидалось.

Я подумал: «Возможно, мои точки останова сломаны (хотя они работают, когда страница изначально загружена)», поэтому я застрял в некоторых вызовах функции writeLogEntry, чтобы увидеть, какие строки выполняются. Когда нажата кнопка входа в систему, никаких дополнительных сообщений не было написано.

Странно, что у меня есть еще один (завершенный) проект PHP в NetBeans, код входа/выхода из которого работает отлично. Я использовал те же фрагменты кода для формы входа и обработки в этом новом проекте, и все же я ударил эту кирпичную стену. Любые идеи о том, что попробовать? ТИА.

+1

Я думаю, что вы удалили части своего кода, нам на самом деле нужно помочь вам – davejal

+0

'// обрабатывать журнал здесь, это самая важная часть вашего кода. И вы, кажется, добавляете '$ _SESSION ['logged_in'] = 1;' независимо от результата вашей проверки? – Qirel

+0

У вас также есть логическая ошибка, где как 'if (isset ($ _ SESSION ['logged_in']):' будет только true, если пользователь уже выполнил вход. – Qirel

ответ

0

UPDATE: Проблема решаемого

В порыве отчаяния, я создал новый проект с абсолютным голым минимальным кодом - нет кнопки logout_submit, нет, если оператор для обработки щелчка. Рань, и это сработало. Добавлена ​​кнопка logout_submit и код, и теперь это работает. Любопытно, что я скопировал весь код и вложил его в свой оригинальный проект, и теперь он работает.

Оказалось, что у меня был код PHP ниже, который вызывал проблему, но не вызывал ошибку. Как только я удалил его, форма работала как шарм.

Спасибо всем, кто помог!

 Смежные вопросы

  • Нет связанных вопросов^_^