2011-12-22 54 views
-1

我寫這個劇本,但沒有重定向,所以有什麼問題 請幫助我儘快如何重定向用戶如果的linkID屬於特定CATID

<?php 
include('config.php'); 

$number = intval($_POST['catid']); 
$query = mysql_query("SELECT * FROM sound_link WHERE linkid =$linkid"); 
$check = $rows["catid"]; 
if ($check = 3) 
    { 
     echo '<B>..You will go to audio.php page.....................'; 
    echo "<META HTTP-EQUIV='refresh' CONTENT='0; URL=AUDIO.php?linkid=$linkid'>"; 
    echo mysql_error(); 

     }else{ 
echo '.... You will stay text.php page'; 

    } 
?> 
<php include 'text.php' ;?> 

,我問,如果我想用頭功能而不是元的刷新

請kidly找到一個錯誤,我在代碼所做

THANKS

+0

你是哪裏人? – Zeyad

+0

沒有身體喜歡幫忙?? !! – Zeyad

+0

我希望能找到答案 – Zeyad

回答

1

首先,我看不見$linkid變量設置在您的腳本上,並且您在if ($check = 3)行上發生了錯誤。你只是將$ check變量定義爲3。用if ($check == 3)更改該行,您在哪裏設置$ rows變量?

1

爲了重定向工作,最好的方法是通過HTTP重定向,這意味着您必須重新定義HTTP標頭。另外請注意,爲了使頭文件的功能沒有問題,你應該在輸出任何html代碼給用戶之前做重定向,所以,這必須發生在任何「回聲」之前,或PHP結束標籤?>後跟任何html內容。

你應該也不會輸出這之後的任何內容,這意味着你應該做到以下幾點:

header('Location: http://www.example.com/'); 
exit; // this makes sure your script execution ends here 

你提的問題不夠清晰,但如果我的理解,重定向是不是你唯一的問題,你是在SQL查詢中使用$ linkid變量而無需首先定義它。

您的代碼段也存在潛在的SQL注入缺陷,您應該在使用SQL查詢插入變量之前閱讀它。 mysql_real_escape_string可能會有一些幫助,請在將代碼投入生產之前閱讀它:http://php.net/manual/en/function.mysql-real-escape-string.php

相關問題