2016-06-01 6 views
1

メールがすでに受信されているかどうかを確認する方法は?私はスクリプトを見つけましたが、それは "チェック.."だけを表示し、電子メールが存在すれば正確な結果を得ることはできません。あなたはコードを持っている以下:あなたのPHPファイルで送信する前にメールを確認しない

<span id="usernamestatus"></span> 
<input type="text" onblur="checkusername()" id="sign_up_email_input_first" name="email_sign_up" placeholder="E-Mail"> 

     function checkusername() { 
       var status = document.getElementById("usernamestatus"); 
       var u = document.getElementById("sign_up_email_input_first").value; 
       if (u !="") { 
        status.innerHTML = 'checking...'; 
        var hr = new XMLHttpRequest(); 
        hr.open("POST", "name_check.php", true); 
        hr.setRequestHeader("Content-type", "application/x-www-form-urlendcoded"); 
        hr.onreadystatechange = function(){ 
         if (hr.readyState == 4 && hr.status ==200) { 
          status.innerHTML = hr.responseText; 
         } 
        } 
        var v = "name2check="+u; 
        hr.send(v); 
       } 
      } 

name_check.php

if(isset($_POST['sign_up_email_input_first']) && $_POST['sign_up_email_input_first'] != "") { 
     $username = $_POST['sign_up_email_input_first']; 
     $sql_name_check = mysql_query("SELECT id FROM users WHERE email = '$username' LIMIT 1"); 
     $uname_check= mysql_num_rows($sql_name_check); 
     if(strlen($username)<4){ 
      echo "You have invalid e mial adress"; 
      exit(); 
     } 
     if($uname_check <1){ 
      echo "<strong>". $username. "</strong> Is OK"; 
      exit(); 
     }else{ 
      echo "<strong>" .$username. "</strong> is taken!"; 
      exit(); 
     } 
    }               
+4

*具体的には*このコードは期待どおりに機能していませんか?デバッガでステップバイステップを実行すると、観測された動作と期待される動作との違いはどこですか?何が起こったときのランタイム値ですか?また、このコードは** SQLインジェクション**への*オープンなオープンなので、文字通りデータベース内の* anything *を実行することができます。また、データベース問合せを実行した後に常に行うべきエラーをチェックしていません。データベース*は、問題の内容を伝えているかもしれません。 – David

答えて

1

を、と

$_POST['sign_up_email_input_first'] 

を置き換える:基本的に

$_POST['email_sign_up'] 

あなたはGR IDの名前ではなく名前付きのab値

+0

フォームではなく、ajaxリクエストです。 – Khaleel

0

あなたはフォームを送信していません。フィールド名が「u」のname_check.phpにデータを送信するのはxmlhttprequestです。

$_POST['sign_up_email_input_first']の代わりに$_POST['u']をPHPファイルに入れてみてください。

関連する問題