Phpでユーザー/パスと送信ボタンのあるフォームを作成する最も簡単な方法は何だと思いますが、送信した後、別のphpページに移動するのではなく、同じページに戻ります。
If/elseステートメントを考えていますが、何度も試行しても設定方法が少し混乱していますが、それでも望みどおりの結果が得られません。
奇妙な私が投稿する前に君たちが言ったすべてのことをした..しかし...>。<"このような単純なものを言いましょう...
何も入力されていない場合は設定したいですが、sumbitをクリックするとエラーが発生します...簡単なはずですが、なぜそれを理解できないのかわかりません
<?php
function userPass()
{
echo "<form method='post' action=" . $_SERVER['PHP_SELF'] . ">";
echo "<input type='text' name='user' /><br/>";
echo "<input type='text' name='pass' /><br/>";
echo "<input type='submit' value='Login' />";
}
if(empty($_POST["user"]))
{
userPass();
}
if(!(empty($_POST["user"])))
{
if($_POST["user"] == "comp")
{
echo "Welcome comp";
}
else
{
echo "Wrong user";
}
}
?>
他の答えは正しいです。 "action
"プロパティでユーザーを現在のページに送り返すだけです。 「isset
」を使用して、そうしたかどうかをテストできます。
私が驚いたのは、まだ言及されていないことですが、あなたの入力はサニタイズされておらず、災害に備えています。 巨大アクション属性のインジェクションの脆弱性:
_$_SERVER['PHP_SELF']
_
これをサニタイズしない場合、誰かが表示するURLを変更するだけで、あなたの貧弱なPHPスクリプトは、それをSELF
として処理するよりもよく知ることができません。絶え間ない。
つまり、絶対にmusthtmlspecialchars()
関数を使用して、そのパラメーターをHTMLエンコードします。これで、action
はhtmlspecialchars($_SERVER['PHP_SELF'])
のようになります。
現在のページがindex.phpの場合、フォームタグのindex.phpをアクションの値として使用します。
このような:
<form action="index.php" method="post">
</form>
次のように入力することで、送信されたフォームを確認できます。
if(isset($_POST)){
...
}
ページ上部
以下の構文を使用してください
<form method="post" action="">
Isset()メソッドを使用して、投稿が設定されているかどうかを確認できます。
<?php function userPass() {
echo "<form method='post' action=" . $_SERVER['PHP_SELF'] . ">";
echo "<input type='text' name='user' /><br/>";
echo "<input type='text' name='pass' /><br/>";
echo "<input type='submit' value='Login' />"; }
if(empty($_POST["user"]))
{
userPass();
}
*if(!(empty($_POST["user"])))*
{
if($_POST["user"] == "comp")
{
echo "Welcome comp";
}
else
{
echo "Wrong user";
}
}
?>
コードのこの部分は間違っています。次のように入力してください:if(!empty($ _ POST ["user"]))
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
これは、このフォーム内の送信ボタンをクリックしたときにフォームを使用してページをリロードする方法とまったく同じです。
ADDITIONAL:必要なすべての入力にrequired
を追加するか、空かどうかを確認します。
このコードはあなたを助けます
<form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post">
またはあなたはこれを行うことができます:
<form action="" method="post">
ありがとうございました ....
これは、必要な入力フィールドの学習を制御するために作成したコードで、要件を満たしています。この場合、データはデータベースに送信されます。要件を満たしていない場合は、ページの上部にメッセージが表示される場合があります
<?php
if (!isset($_POST['submitform'])) {
}
else
{
$_SESSION['firstname'] = $_POST['firstname'];
$_SESSION['lastname'] = $_POST['lastname'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['mobile'] = $_POST['mobile'];
$_SESSION['telephone'] = $_POST['telephone'];
$_SESSION['place'] = $_POST['place'];
$_SESSION['street'] = $_POST['street'];
$_SESSION['housenumber'] = $_POST['housenumber'];
$_SESSION['gender'] = $_POST['gender'];
if (empty($_POST['firstname']) or empty($_POST['lastname']) or empty($_POST['email']) or empty($_POST['mobile'])or empty($_POST['telephone']) or empty($_POST['place'])
or empty($_POST['street']) or empty($_POST['housenumber']) or !isset($_POST['gender']))
{
echo "Sending denied";
}
else
{
require 'database.php';
header('Location: succes.php');
} ?>
これがあなたにとって役立つ情報であることを願っています
私はすべて、実際の質問を見逃していると思います。つまり、フォームの送信後に同じページにとどまるする方法がある場合です。答えは[〜#〜] no [〜#〜]です。フォームを送信したら-POSTまたはGETメソッドを使用するかどうか、そしてもちろん$ _SERVER ['PHP_SELF']または空のアクションなどを使用していると想定します。-- 新しいページが自動的に開きます。これは少なくともPHPに当てはまります(XAMPPを使用してさまざまな方法を試しました)他のスクリプト言語については説明しません。
フォーム送信で定義できます:
<form method=get action=index.php >
アクションを完全に省略することもでき、同じファイルに自動的に投稿/取得されます。