2014-11-06 46 views
0

沒有人關心解釋爲什麼這個php方法總是把用戶發送給granted.htm。當網站用戶輸入正確的單詞時,在這種情況下:Shadow,php將用戶發送給granted.htm。如果其他任何內容被輸入到網站的文本字段中,PHP會將它們發送到denied.htm。這兩個頁面都已上傳到網頁空間。謝謝。發送網頁用戶到正確的頁面

<?php 
$check = "Shadow"; 
if($check === "Shadow"){ 
    echo 'Perfect Match!'; 
    header('Location: granted.htm'); 
} 
else { 
    echo 'Wrong Password!'; 
    header('Location: denied.htm'); 
} 
exit(); 
?> 
+1

怎麼一回事,因爲你已經設置'$檢查= 「影子」;',將其刪除正如@RamSharma所說的 – 2014-11-06 12:16:18

+0

; '$ check =「Shadow」;如果($ check ===「Shadow」)...'將始終返回true – Stu 2014-11-06 12:17:00

+0

如何將文本字段的值發送到此PHP文件?我希望看到像'$ check = $ _POST [「Shadow」];'的東西。因爲它代表這個代碼是沒有意義的 – Steve 2014-11-06 12:28:49

回答

1

您可能錯過了提交密碼的部分?

<?php 
$check = $_GET['check']; 
if($check === "Shadow"){ 
    echo 'Perfect Match!'; 
    header('Location: granted.htm'); 
} 
else { 
    echo 'Wrong Password!'; 
    header('Location: denied.htm'); 
} 
exit(); 
?> 

現在你只需訪問該網頁是這樣的:

example.com/thisfile.php?check=Shadow

1

IF條件

之前刪除

$check = "Shadow"; 

它設置$檢查 「影子」,如果條件永遠爲TRUE

+0

只是做了這個改變......刪除了第一個$ check語句,現在它不會讓我用正確的密碼訪問授權頁面。它現在只送我到denied.htm? – user4163554 2014-11-06 12:23:32

+0

僅當用戶密碼正確時才設置$ check =「shadow」。無論您在哪裏檢查密碼是否正確,只需在其中設置$ check =「shadow」即可。 – Deepak 2014-11-06 12:25:39

+0

作爲一個例子,因爲php對我來說比較新,你說過「只有當用戶傳遞的時候設置$ check是正確的,我纔會相信thos方法會檢查tje字符串是否正確?那麼,我要檢查用戶字符串是否匹配我設置的字符串? – user4163554 2014-11-06 12:33:00

0

你已經設置$檢查=「陰影「;。因此,如果($ check ===「Shadow」)總是返回true,並且它始終將用戶發送到granted.htm

刪除:

$check = "Shadow"; 
0

我上傳此代碼,以我的服務器,並給它一個旋轉。 當您更改$check到的東西比「陰影」

不同的你在做什麼在這裏是要granted.htm時$check等於「影子」它工作得很好。 因此,當我更改$check時,它對我被重定向到denied.htm的其他東西有價值。

腳本沒有什麼錯,它完全是它應該做的。

試一試,更改$check其他並看到魔術發生。 :)