私は新しいアカウントを作成するページを持っています。フォームはRegister.phpという名前のページにあり、一度ユーザーがそれを送信すると、Confirm.phpに行きます。ここで、すべてが正しい場合にフィールドを検証し、「Account Created」メッセージを表示します。ChromeとMozillaブラウザでPHPコードが異なる動作
Chrome。エラーメッセージはRegister.phpに表示され、 フィールドがすべて満たされるとconfirm.phpだけが表示されます。しかしMozillaでは、 はConfirm.phpに行き、空白のページを表示します。
Register.phpのための私のコードは次のとおりです。
<div class="signup_form">
<form action="confirm.php" method="post" >
<?php
session_start();
if(isset($_SESSION['error']))
{
echo '<p>'.$_SESSION['error']['username'].'</p>';
echo '<p>'.$_SESSION['error']['email'].'</p>';
echo '<p>'.$_SESSION['error']['password'].'</p>';
unset($_SESSION['error']);
}
?>
<p>
<font size="3" face="arial" color="gray"> <label for="username"><b> UserName*</b> </label> </font>
<input name="username" type="text" id="username" input style="height:33px" size = "50" size="30"/>
</p>
<p>
<font size="3" face="arial" color="gray"> <label for="email"><b> E-mail Address*</b> </label> </font>
<input name="email" type="text" id="email" input style="height:33px" size = "50" size="30"/>
</p>
<p>
<font size="3" face="arial" color="gray"> <label for="password"><b> Password*</b> </label> </font>
<input name="password" type="password" id="password" input style="height:33px" size = "50" size="30"/>
</p>
<p>
<input name="submit" type="image" src="images/submit.gif" value="submit"/> </p>
</form>
</div>
とConfirm.phpコードです:期待どおりに動作しませんinput type="image"
と組み合わせるif(isset($_POST['submit']))
を使用して
<?php
session_start();
include('configdb.php');
if(isset($_POST['submit']))
{
if($_POST['username'] == '')
{
$_SESSION['error']['username'] = "User Name is required.";
}
if($_POST['email'] == '')
{
$_SESSION['error']['email'] = "E-mail is required.";
}
else
{
if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $_POST['email']))
{
$email= $_POST['email'];
$sql1 = "SELECT * FROM user WHERE email = '$email'";
$result1 = mysqli_query($mysqli,$sql1) or die(mysqli_error($mysqli));
if (mysqli_num_rows($result1) > 0) {
$_SESSION['error']['email'] = "This Email is already used.";
}
}
else
{
$_SESSION['error']['email'] = "Your email is not valid.";
}
}
if($_POST['password'] == '')
{
$_SESSION['error']['password'] = "Password is required.";
}
if(isset($_SESSION['error']))
{
header("Location: register.php");
exit;
}
else
{
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$sql2 = "INSERT INTO users (username, email, password) VALUES ('$username', '$email', '$password')";
$result2 = mysqli_query($mysqli,$sql2) or die(mysqli_error());
if($result2)
{
echo '<div>Your account is now active. You may now <a href="login.php">Log in</a></div>';
}
}
} ?>
[新しいユーザーフォームを作成すると、MozillaとFirefoxで動作が異なる]の複製が可能です。(http://stackoverflow.com/questions/9862736/create-new-user-form-behaves-different-in-mozilla-and-firefox ) –
質問を再投稿しないでください。代わりに、オリジナルを編集してコンテンツを改善してください。 –
多くの混乱のため削除されています。 – harismahesh