送信するフォームを取得できません。私は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
- ブレークポイントを
session_start();
とif(isset($_POST['login_submit'])){
に設定し、デバッグモードで実行します。 - コードは、起動時にブレークポイントで予想どおりに停止します。
- 私は電子メールとpwdを入力し、[ログイン]ボタンをクリックします。
- 何も起こりません。最初のブレークポイントに達していません。エラー、警告、または通知は表示されません。
私は 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。
実際にあなたのコードの一部を削除したと思います。 – davejal
あなたのコードの中でもっとも関連性の高い部分です。 $ _SESSION ['logged_in'] = 1; 'を追加しているようですが、検証の結果に関係なく? – Qirel
また、 'if(isset($ _ SESSION ['logged_in'])):'がユーザーが既にサインインしている場合にのみ真となる論理エラーがあるようです。 – Qirel