2015-05-26 69 views
-1

在php中,我試圖從數據庫查詢時將用戶重定向到鏈接。登錄結果後,只顯示url而不是重定向到它。IN php試圖重定向用戶從數​​據庫登錄後重定向

<?php 
    if(isset($_POST['submitMain'])) 
    { 
    $username= $_POST['username']; 
    $password = $_POST['password']; 

    $_POST['username'] = $_SESSION['username']; 
    $_POST['password'] = $_SESSION['password']; 

    $sql = "SELECT * FROM user WHERE username='$username' and password='$password'"; 

    $result = mysql_query($sql); 

    // Mysql_num_row is counting table row 
    $count = mysql_num_rows($result); 

    if($count == 1){ 
     $result = mysql_fetch_contents($result); // get the result set from the query 

     $url = trim($result['url']); // get the url column's value 

     if ($url == '') { 
     echo "No url value was set!"; 
     } else { 
     $ob_get_contents = 'admin.php'; 
     echo "$ob_get_contents "; 
     exit; 
     } 
    } else { 
     echo "Wrong Username or Password"; 
    } 
    } 
+0

use header('Location:xyz.php');更多檢查鏈接http://php.net/manual/en/function.header.php –

+0

你似乎在學習PHP。如果是這樣,最好不要了解'mysql_ *'函數。他們已被棄用。更好地使用'mysqli'或'PDO'。關於任何'mysql_ *'函數的[每個文檔頁面](http://php.net/manual/en/function.mysql-query.php)在頂部都有一個很大的紅色框,它提供了更多信息。 – GolezTrol

回答

1
$ob_get_contents = 'admin.php'; 
echo "$ob_get_contents "; 
exit; 

這部分不工作。它只是回聲'admin.php'。你似乎試圖用​​函數做一些事情,但它不能像這樣工作。在你的代碼中,你只需要一個名爲​​的變量,它與函數無關。

此外,​​不是從另一個頁面獲取信息或執行重定向到另一個頁面的正確功能。

重定向到另一個頁面,使用Location頭:

header('Location:' . $url); 
exit; 

這將導致一個小的往返到瀏覽器。基本上你發送一個小的結果給瀏覽器,告訴它對另一個url執行第二個請求。但別擔心。這是一個常見的解決方案,尤其是在發佈信息之後查看更多有關Post/Redirect/Get的信息。

+0

但是這個url對每個用戶都是唯一的 –

+0

啊,然後在位置標題中使用你的'$ url'變量(參見修復答案)。我在你的代碼中被這個硬編碼的'admin.php'弄糊塗了,我不明白你試圖在那裏做什麼。 – GolezTrol

+0

當我使用那一個時,我收到此錯誤消息 警告:無法修改頭文件信息 - 已在C:\ xampp \ htdocs \中發送(在C:\ xampp \ htdocs \ alchemist \ index.php:210中輸出的頭文件) alchemist \ index.php在線238 –

0

要重定向用戶,您需要設置重定向標頭。

要做到這一點,你需要使用header功能:

header("location: your location goes here"); exit(); 

例如,如果你的網站是在http://www.example.com託管,然後重定向到管理區,你將用戶:

header("location: http://www.example.com/admin.php"); exit(); 

您還需要在重定向標頭後退出。