2017-02-01 5 views
1

送信するフォームを取得できません。私はPHP 5.6.24とNetBeans 8.2を使用しています。どんな助けでも大歓迎です!PHP/HTMLフォームの送信が機能していません

ファイル名:

<?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>

何が起こる:

PHPのindex.php

  1. ブレークポイントをsession_start();if(isset($_POST['login_submit'])){ に設定し、デバッグモードで実行します。
  2. コードは、起動時にブレークポイントで予想どおりに停止します。
  3. 私は電子メールとpwdを入力し、[ログイン]ボタンをクリックします。
  4. 何も起こりません。最初のブレークポイントに達していません。エラー、警告、または通知は表示されません。

私は if($_POST['login_submit']){ if($_POST['login_submit'] == "Log in"){ if(filter_input(INPUT_POST,'login_submit')){ を使用して試してみたが、これらのどれも働いていません。私はまた、ファイル(<input type="file" name="datafile">)を取得するフォームで新しいページを作成しました。ファイル選択ダイアログが開きますが、[送信]ボタンはそのページにも送信されません。

楽しむために、ファイル(ビューソース、ctrl + a、ctrl + c)のHTML出力をコピーしてDreamweaverに貼り付け、HTMLファイルとして保存しました。ブラウザでそのファイルを開き、username/pwdと入力して[ログイン]をクリックすると、期待通りにindex.phpファイルが開かれました。

「私のブレークポイントは壊れているかもしれません(ページが最初に読み込まれたときに動作しますが)」と思うので、writeLogEntry関数を呼び出して行を確認します。ログインボタンをクリックすると、追加のメッセージは書き込まれませんでした。

奇妙なのは、ログイン/ログアウトコードが完全にうまく動作するNetBeansに別の(完成した)PHPプロジェクトがあることです。私は、この新しいプロジェクトのログインフォームと処理に同じコードスニペットを使用しましたが、私はこのレンガの壁に当たっていました。何を試してみるべきなの? TIA。

+1

実際にあなたのコードの一部を削除したと思います。 – davejal

+0

あなたのコードの中でもっとも関連性の高い部分です。 $ _SESSION ['logged_in'] = 1; 'を追加しているようですが、検証の結果に関係なく? – Qirel

+0

また、 'if(isset($ _ SESSION ['logged_in'])):'がユーザーが既にサインインしている場合にのみ真となる論理エラーがあるようです。 – Qirel

答えて

0

UPDATE: - if文のクリックを処理するためのNO、NO logout_submitボタン問題は欲求不満のフィット感で

を解決し、私は絶対的な最低限のコードで新しいプロジェクトを作成しました。それを実行し、それは働いた。 logout_submitボタンとコードを追加しました。不思議なことに、すべてのコードをコピーして元のプロジェクトに貼り付けましたが、現在も機能しています。

私はいくつかのPHPコードの下にの下に問題が発生していてもエラーは発生していないフォームがありました。一度それを取り除くと、フォームは魅力的に機能しました。

誰もが助けてくれてありがとう!

関連する問題