2011-08-13 6 views
0

情報を入力して「インストール」をクリックすると、「install_submit.php」という名前のファイルに移動します。不足している情報が表示された場合は、「情報がありません」というメッセージが表示されるので、フォームページにリダイレクトされています。リダイレクト時にメッセージを表示しますか?

これは私の現在のコード "install_submit.php"です。

<?php 
$dbname = $_POST['db_name']; 
$dbuser = $_POST['db_user']; 
$dbpass = $_POST['db_pass']; 
$username = $_POST['username']; 
$password = $_POST['password']; 

if(empty($dbname) || empty($dbuser) || empty($dbpass) || empty($username) || empty($password)) 
{ 
header("Location: install.php"); 
Echo("Missing Information!"); 
}else{ 
Echo("Success!"); 
} 
?> 
+1

なぜ_を示さない_メッセージinstall.php' 'の? – Shef

答えて

1

あなたは、あなたの "install_submit.php" であなたは情報

if($_GET['submit'] == 'false') { 
    echo("Missing Information!"); 
} 
1

あなたを得ることができますヘッダにURLを変更し、例えば

header("Location: install.php?submit=false");

をパラメータを渡すことができます次のようにセッション変数を使用する必要があります。

session_start(); 
if(empty($dbname) || empty($dbuser) || empty($dbpass) || empty($username) || empty($password)) 
{ 
    $_SESSION["error_message"] = "Missing Information!"; 
    header("Location: install.php"); 
}else{ 
    unset($_SESSION["error_message"]); 
    echo "Success!"; 
} 

その後、どこかにこのようなinstall.phpを参照のセッション変数:

<?php 
if (isset($_SESSION["error_message"])) { 
    echo $_SESSION["error_message"]; 
} 
?> 
0

あなたがリダイレクトした後、あなたは、もはや現在のページから出力することはできません。これはあなたのエコー( "情報がありません!")です。現時点では何もしません。

あなたは、セッション中にエラーメッセージを設定してみてください、その後、エラー・セッションは、フォームページに移入されているかどうかを確認できます。あなたのinstall.phpを内

session_start(); 
$_SESSION['errmsg'] = "Missing information!"; 
header("Location: install.php"); 

、その後:

session_start(); 
if(isset($_SESSION['errmsg'])) { 
echo $_SESSION['errmsg']; 
unset($_SESSION['errmsg']); 
} 
+0

助けていただきありがとうございます。 –

+0

"リダイレクトした後は、現在のページから出力できなくなります。 - 真実ではなく、あなたが出力することができます、Webサーバーはクライアントにそれを送信しますが、彼はそれを見ることはありません。 –

+0

ダンカン - それを聞いてうれしいです!正しい答えの1つを解決策としてマークすることを忘れないでください。 @yi_H - 私はOPのためにそれを簡素化していました、あなたの入力をありがとう。 – w0bni

1

リダイレクトを行わず、処理に別のURLを使用しないでください。同じページにフォーム送信を処理します。ユーザーがすべての情報をに戻すことは望ましくありません。

install.php?error=true&db_name=...&db_user=...にリダイレクトできますが、それはもっと複雑です。

2

セッションで保存し、フォームの場所に表示します。

$_SESSION['error_message'] = "Missing Information!"; 

そして、あなたのフォームの場所に: "!欠落情報"

<p class="errors"><?php if (!empty($_SESSION['error_message']) echo $_SESSION['error_message']; ?></p> 
関連する問題