2017-04-18 124 views
0

我有一些用戶在我的分貝。 PHP腳本準確地選擇用戶,但重定向不起作用。WordPress的重定向問題與PHP

請幫助任何一個我的腳本如下:

if($sqlquery==1) 
{ 
    $_SESSION['email']=$email; 
    $_SESSION['password']=$password; 
    wp_redirect('https://mcqpage.com/somepage', 301); 
    exit; 
} 
else 
{ 
    header("location:http://www.mcqpage.com/index.php"); 
} 
+0

哪一個是工作頭()或wp_redirect() – hassanzeb

+0

你正在使用哪個鉤子? – vel

+1

您是否收到任何錯誤?告訴我們,如果是這樣的話......它是在'if'條件還是'else'條件下進行......請更加清楚。 –

回答

0

我的詳細情況如下

login page

<form onsubmit='return formValidator()' action='https://mcqpage.com/connection/' method='post'> 
     <h2>Enter Your Details</h2><hr/> 
     <label>Name :</label> 
     <input type='text' name ='addr1' id='addr' /><br /> 

     <label>Password :</label> 
     <input type="password" name="password" id="password"> 



     <input type='submit' value='Check Form' /> 

connection page

> [insert_php] 

session_start(); 

if($_POST['addr1']!="" && $_POST['password']!=""){ 

session_start(); 

[email protected]_connect("") or 
mysql_error(); 

     if (!$connec) { 

    die('Could not connect: ' . mysql_error()); 

} 

    $email=$_POST['addr1']; 

//echo"$email"; 

$password= $_POST['password']); 

if ($email=="") 
{ 
    echo "Enter User Name......."; 
} 

else 


    $result = mysql_query("SELECT * FROM `database`.`table` WHERE 

password='$password' and name='$email'"); 

    $data = mysql_num_rows($result); 



    if($data==1) 
     { 
     $_SESSION['email']=$email; 

      $_SESSION['password']=$password; 

wp_redirect('https://mcqpage.com/page', 301); 

exit; 

     } 
    else 
    { 
     header("location:http://www.mcqpage.com/index.php"); 
    } 
} 

//connection closed 
mysql_close ($connec);} 
else{ 
     header("location:http://www.mcqpage.com/index.php"); 
} 
[/insert_php] 
0

你執行你的重定向頭已經發送後? 如果是這樣,它將無法正常工作。請確保您的代碼在發送標題之前運行,最好是Wordpress提供的template_redirect hook的一部分。

如果你不確定代碼的加載位置,我建議你在template_redirect鉤子期間運行的函數中加入代碼。例如,您可以添加以下主題functions.php文件:

function handle_session_data() 
{ 
    //Your code here. 
} 
add_action('template_redirect', 'handle_session_data'); 
+0

我是新手,我向你展示了我的兩頁上面請檢查它 – hassanzeb

+0

我用一個例子更新了答案。 – Nadav

+0

你的意思是「你的代碼」?我想你是說我把重定向代碼放在這裏 – hassanzeb

0

@Nadav我error_log中顯示以下錯誤:

[02-May-2017 07:29:06 UTC] PHP Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/mysite/public_html/wp/wp-includes/class.wp-styles.php:237) in /home/mysite/public_html/wp/wp-content/plugins/insert-php/insert_php.php(47) : eval()'d code on line 2

[02-May-2017 07:29:06 UTC] PHP Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/mysite/public_html/wp/wp-includes/class.wp-styles.php:237) in /home/mysitec/public_html/wp/wp-content/plugins/insert-php/insert_php.php(47) : eval()'d code on line 2

[02-May-2017 07:29:06 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/mysitec/public_html/wp/wp-includes/class.wp-styles.php:237) in /home/mysite/public_html/wp/wp-content/plugins/insert-php/insert_php.php(47) : eval()'d code on line 25

0

下面的代碼解決我的問題

`功能register_my_session()

{

如果(!SESSION_ID())

{

session_start(); 

}

}` 在function.php

,並沒有任何錯誤啓動會話,爲頭,我使用的Java腳本重定向,這解決了我的問題