2017-09-24 110 views
1

我正在使用express.js和app.post路由用於驗證用戶並使用res.redirect()將有效用戶重定向到PHP頁面。 ,而不是重定向它正在顯示找到。重定向到http://localhost/home.phpexpress.js res.redirect在app.post路由中不重定向到給定的URL

我server.js代碼如下:

app.post('/set_node_session', function(req, res){ 
    sess = req.session; 

    var usermail = req.body.field1; 
    var password = req.body.field2; 

    var sql="SELECT * FROM userInfo WHERE userEmail='"+usermail+"'";  
    con.query(sql, function (err, result, fields) { 
     if (err) throw err;  
     sess.user_id=result[0].userId; 
     sess.first_name=result[0].userFname; 
     sess.last_name=result[0].userLname; 

     if(sess.user_id) { 
      res.redirect('http://localhost/home.php'); 
     } 
     else { 
      res.redirect('http://localhost/login.php'); 
     } 
    }); 
}); 

回答

0

的NodeJS:

var resp = sess.user_id ? '1' : '0'; 
 
res.send(resp);

,並在你的PHP:

$result = curl_exec($ch); 
 

 
if(result == 1){ 
 
    header("Location: http://localhost/home.php"); 
 
} 
 
else{ 
 
    header("Location: http://localhost/login.php"); 
 
} 
 
die();

+0

它不起作用.it給出輸出:找到。重定向到http://localhost/home.php – Tanzeem

+0

你是用ajax做的嗎? –

+0

我們沒有使用Ajax,我們從php頁面發佈表單如下: $ url ='http:// localhost:3000/set_node_session'; \t \t \t $ \t字段=陣列( \t \t 'field1的'=> $ _SESSION [ 「USER_EMAIL」], \t \t 'FIELD2'=> $ _SESSION [ 「user_pwd」], \t \t); \t \t \t \t $ postvars = http_build_query($ fields); \t \t \t \t $ ch = curl_init(); \t \t \t \t curl_setopt($ ch,CURLOPT_URL,$ url); \t \t curl_setopt($ ch,CURLOPT_POST,count($ fields)); \t \t curl_setopt($ ch,CURLOPT_POSTFIELDS,$ postvars); \t \t \t \t $ result = curl_exec($ ch); – Tanzeem