2016-06-15 12 views
1

エラーメッセージを登録フォームに返す際に問題があります。私は2つのファイル(register.phpとprocess_register.php)を持っています。 register.phpにはじめてTHER私はprocess_loginで関数を実行している間に、要求は、POSTを考え渡し、そこからフォーム(($ CONN、$ユーザ名、$パスワード)を登録)PHP - レジスタページにエラーメッセージを返す方法

ここでは、ファイルのコード

process_register.phpあります

<?php 
if((include 'db_connect.php')==TRUE){echo"OKDB";} 
if((include 'functions.php')==TRUE){echo"OKFUNCTIONS";} 

sec_session_start(); 
if(login_check($conn) == true) //Already Logged In! 
header('Location: ./index.php'); 

else{ 
if(isset($_POST['username'], $_POST['password'])) { 
    //Got username and pswd 
    $username=$_POST['username']; 
    $password = $_POST['password']; 

    $registerresult=register($conn,$username,$password); 

    if($registerresult==TRUE) //Registration success! 
    header('location: login.php'); 
    else 
    header('location: register.php'); 

    }else { 
    // Not here with a post request. 
    echo 'Invalid Request'; 
           } 
          } 

?> 

register($ conn、$ u sername、$パスワード)

function register($conn,$username,$password){ 

    //ifusernamealreadyused 

    $alreadyregister="SELECT * FROM User WHERE username='$username';"; 
    $query_alreadyregister=mysqli_query($conn,$alreadyregister); 
    $alreadyregister_rows=mysqli_num_rows($query_alreadyregister); 

    if($alreadyregister_rows!=0) //UsernameAlreadyUsed 
     return false; 
    else{ //UsernameNotAlreadyUsed 

      //RegistrationOK! 
      $registration="INSERT INTO User(username,password) VALUES('$username',sha2('$password',512));"; 
      $query_registration=mysqli_query($conn,$registration); 
     return true; 
     }//UsernameNotAlreadyUsed 

} //Register 

私の質問は:ユーザ名が「正しくない場合どのように私は、フォームにメッセージを表示することができます(falseを返す)事前に 乾杯!あなたが追加し、エラーメッセージを表示したいページで

+0

のためのあなたのregister.phpチェックでは、あなたが、それは検証の一部であるべきユーザー名の形式について話している正しくないか、「既に存在しているユーザー名」のメッセージを表示したいですあなたのデータベースにユーザー名が見つかったら? – user1234

+0

ユーザー名が既に存在する場合は、メッセージを表示したい。 –

答えて

1

これはちょうどあなたの既存のコード

にこれらの行を追加する非常に簡単です

これを変更header('location: register.php');

header('location: register.php?message=username already exist'); 

と、ユーザー名の意味は何この

<?php if(isset($_GET['message'])) {echo $_GET['message'];} ?> 
0

<?php if(isset($message)) {echo $message;} ?> 

は、あなたのレジスタの機能を変更します。

<?php 
function register($conn,$username,$password){ 

//ifusernamealreadyused 

$alreadyregister="SELECT * FROM User WHERE username='$username';"; 
$query_alreadyregister=mysqli_query($conn,$alreadyregister); 
$alreadyregister_rows=mysqli_num_rows($query_alreadyregister); 

if($alreadyregister_rows!=0) //UsernameAlreadyUsed 
    $message = 'Username already used!'; //set your error message here 
    return false; 

else{ //UsernameNotAlreadyUsed 

     //RegistrationOK! 
     $registration="INSERT INTO User(username,password) VALUES('$username',sha2('$password',512));"; 
     $query_registration=mysqli_query($conn,$registration); 
    return true; 
    }//UsernameNotAlreadyUsed 

} //Register 

?> 
+0

これはうまくいかないと思います...登録メッセージに$メッセージをどのように渡しますか? –

+0

登録フォームの上または後ろのどこかに登録ページにコードを入力してください。 –

関連する問題