2015-09-14 2 views
-1

У меня есть следующий сценарий входа.Ответ JSON для скрипта входа с PHP

<?php 

include("connect.php"); 
include("functions.php"); 
$error = ""; 

$j = new stdClass(); 
$j->status = "success"; 
$j->message = "Logged In"; 

if(isset($_POST['submit'])){ 


    $email = mysqli_real_escape_string($con,$_POST['email']); 
    $password = mysqli_real_escape_string($con,$_POST['password']); 

    if(email_exists($email,$con)){ 
     $error = "Email Exists"; 

     echo json_encode($j); 
    }else{ 
     $error = "Email does not exist"; 


    } 

} 

?>

Файл functions.php есть.

<?php 
function email_exists($email,$con){ 


    $result = mysqli_query($con,"SELECT id FROM users WHERE email='$email'"); 

    if(mysqli_num_rows($result) == 1){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

?>

То, что я делаю, выбор идентификаторов из базы данных и проверить, если адрес электронной почты существует с функцией

mysqli_num_rows(query) 

. Если он возвращает один или true, тогда существует электронная почта, поэтому пользователь может войти в систему. Если не значение, мы возвращаем 0 или false, то электронной почты не существует, и, следовательно, пользователь не может войти.

Я хочу вернуться для каждого случая ответ JSON. Например, если будет найден адрес электронной почты пользователя.

{ 
    "status":"success" 
    "message:"You are now logged in" 
} 

Когда электронная почта пользователя не найден, то,

{ 
    "status":"fail" 
    "message:"email not found" 
} 

Любые идеи? Я создал следующую переменную, но только для случая успеха. Я хочу, чтобы одна и та же переменная была изменена, если не было найдено ни одного адреса электронной почты

$j = new stdClass(); 
$j->status = "success"; 
$j->message = "Logged In"; 

Спасибо.

+1

у вас есть json_encode массив, а не объект, функция является один созданием объекта для отправки на стороне клиента –

+0

Почему? Он также работает с объектом;) – l0rkaY

ответ

0

Попробуйте:

$qry ='SELECT * FROM `registration` WHERE `email`="'.$email.'" && `password`="'.$password.'"'; 
$login = mysqli_query($con, $qry) or die (mysqli_error()); 
$no_of_row=mysqli_num_rows($login); 
$row1 = mysqli_fetch_assoc($login);  
    if($no_of_row==1) 
{ 
    $response["error"] = 0; 
    $response["success"] = 1; 
    $response["email"] = $email; 
    $response["message"] = "You Logged In Successfully"; 


} 
echo json_encode($response); 
+0

Он тоже работает. Спасибо. – Theo

+0

если есть работа принимаем в качестве ответа. –

+1

Это решение для вас? Но как? : D – l0rkaY

1

И в чем проблема? :)

Может быть:

if(!email_exists($email,$con)){ 
    $j->status = "fail"; 
    $j->message = "Email does not exist"; 

} 

echo json_encode($j); 
+0

Спасибо. Он работает :) – Theo

-1

Я нашел ответ.

if(email_exists($email,$con)){ 
     $error = "Email Exists"; 
     echo json_encode(array('status' => 'success', 'message' => 'Logged in')); 


    }else{ 
     $error = "Email does not exist"; 
     echo json_encode(array('status' => 'fail', 'message' => 'Email not found')); 

    } 

В настоящий момент я ничего не могу придумать.

+0

Прочтите мой ответ ...: D – l0rkaY

Смежные вопросы