私はHTMLで認証フォームを作成し、それをPHPにリンクさせようとしています。HTMLコードは次のとおりです。
<!DOCTYPE html>
<html>
<head>
<title>Authorized logged in</title>
</head>
<div id = "adminBoard">
<form method = "POST" action = "auth.php">
<input type="text" class = "credentialInputL" name="loginInput" value = "login" size = 30>
<input type="password" class = "credentialInputP" name="passwordInput" value = "pass" size = 30>
<input class="loginLogoutButton" type = "submit" value = "Sign in" name="loginLogout">
</form>
</div>
</body>
</html>
対応する auth.php ファイル (拡張する前に POST メソッドの基本的な動作を確認するために作成したもの) は次のとおりです。
<?php
if (isset($_POST['loginInput']) && isset($_POST['passwordInput'])){
$username = $_POST['loginInput'];
$password = $_POST['passwordInput'];
echo "The username is :" . $username;
echo "The password is :" . $password;
}
?>
しかし、Chrome で HTML ファイルを開いて [サインイン] ボタンをクリックすると、auth.php ファイルがダウンロードされるだけです。何もアクションは実行されません。html ファイルと php ファイルの両方が同じフォルダーにあります。
構文/演算子/メソッドが不足していますか?
答え1
Web サーバーは、ファイルの種類を認識できない場合、実行ではなくダウンロードする傾向があります。
まず、php5module がインストールされ、有効になっていることを確認します。コマンドラインから確認できます:
$ a2enmod -l
アクション エイリアス auth_basic authn_file authz_host authz_groupfile authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl socache_shmcb userdir reqtimeout authn_core mcrypt mod_rewritephp5認証コア
次に、httpd.confまたはdefault-server.confをチェックして、次の内容が含まれていることを確認します。追加タイプ
ドキュメントルート "/srv/www/htdocs"
ディレクトリインデックス index.html index.htm index.php index.php5 index.php4 index.php3
アプリケーション/x-httpd-php .php .php3 .php4 .php5 にタイプを追加します
UbuntuのWebサーバーを再起動することを忘れないでください: sudo service apache2 restart