2016-02-16 58 views
1

我有一個簡單的登錄系統ionic,它正常運行。系統檢查用戶是否存在於mysql數據庫中。如果用戶在那裏,它將返回1。如果不是,則返回0。這個返回值是通過json發送的。如何在離子中使用ajax獲取php會話數據

我的問題是,我需要發送用戶數據到下一個屏幕,並在該數據中插入用戶註冊一些額外的信息。例如,在登錄應用程序後,用戶的latitudelongitude。我想保留它們的註冊經緯度。

這是login.php

<?php 
session_start(); 
header("Access-Control-Allow-Origin: *"); 
$mysql_host = "localhost:3306"; 
$mysql_database = "melleve"; 
$mysql_user = "root"; 
$mysql_password = ""; 
// Create connection 
$conn = new mysqli($mysql_host, $mysql_user, $mysql_password,$mysql_database); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 


$email = $_POST['email']; 
$senha = $_POST['senha']; 


$sql = "SELECT * FROM cadast WHERE email='$email' AND senha='$senha'"; 

$result = $conn->query($sql); 


$res=mysqli_fetch_array($result); 

$rs = mysqli_num_rows($result); 


if($rs>0) 
{ 

    if(!isset($_SESSION)) 
    session_start(); 

     $_SESSION['id']=$res['id'];   
     $_SESSION['nome']=$res['nome']; 
     $_SESSION['email']=$res['email']; 
     $login = 1; 
} 

else 
{ 
    $login = 0; 
} 


echo (json_encode($login)); 
?> 

這是登錄控制器:

.controller('lg', function($scope, $state) { 


$scope.logar = function(){ 


var formula = $('#formLogin').serialize(); 


$.ajax({ 


type : 'POST', 
data : formula, 
url : 'http://localhost/melleve/login.php', 
success : function(data){ 

if(data == '' || data == 0){ 

alert('Login ou senha inválidos'); 

} 


if(data == 1){ 

alert('Login realizado com sucesso'); 
//$state.go('app.atigmaps'); 



} 


} 


}) 


} 



}) 
+0

歡迎來到StackOverflow!如果您乾淨地格式化代碼,您一定會得到更多有用的建議。我建議你這樣做,這樣我們可以輕鬆理解你已經完成了什麼! –

回答

2

我認爲,問題是這一行:

if(!isset($_SESSION)) 
    session_start(); 
  1. session_start()笑可以高於$_SESSION['anywhere']的任何使用。

  2. 避免總是模糊的內涵,所以:

    if($_session) 
    

    總是檢查變量特定會話,如下所示:

    if(isset($_session['here']) 
    

    Session變量是生活在範圍一定時間,或直到你使用未設置

    ($ _ session [ 'here']) 
    
+0

感謝兄弟保羅,解決了問題,對我有很大的幫助。 –

相關問題