2012-03-25 14 views
1

私は新しいアカウントを作成するページを持っています。フォームは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>'; 
     } 
    } 
} ?> 
+1

[新しいユーザーフォームを作成すると、MozillaとFirefoxで動作が異なる]の複製が可能です。(http://stackoverflow.com/questions/9862736/create-new-user-form-b​​ehaves-different-in-mozilla-and-firefox ) –

+2

質問を再投稿しないでください。代わりに、オリジナルを編集してコンテンツを改善してください。 –

+0

多くの混乱のため削除されています。 – harismahesh

答えて

2

、ので、ブラウザは、画像がクリックされた座標でsubmit.xsubmit.yを送信する必要があります。

代わりにif($_POST)を使用してフォームが送信されたことを確認してください。またはisset($_POST['username'])などの名前のフィールドを使用してみてください。

+0

それは仲間を働いた。どうもありがとう。あなたは私を救いました ! – harismahesh

関連する問題