2013-03-13 114 views
0

我是php的新手。這是一個代碼,用於檢查用戶是否使用會話登錄並允許用戶登錄。在php中顯示超鏈接

驗證

<?php 

session_start(); 

$uname = $_POST['uname']; 
$pass = $_POST['pass']; 

if($uname == "admin" && $pass == "admin") 
{ 
    $_SESSION['uname'] = $uname; 
    $_SESSION['auth'] = 1; 
    echo "Welcome Mr ".$uname.". You are now logged in "; 
    echo "<br>"; 
    echo "<a href='TakeMeHome.html'>Click here to access the application </a>"; 
} 
else 
{ 
    echo "Invalid username or password"; 
} 

?> 

<?php 

session_start(); 


if($_SESSION['auth'] != 1) 
{ 
    echo "You are not logged in! "; 
    echo "<a href = \"TakeMeHome.html\">"; 
    echo "Access Application"; 
    echo "</a>"; 
    exit(); 
} 

?> 

<html> 
You are now logged in 
</html> 

但鏈接標記與HTML數據一起顯示

"; echo "Access Application"; echo ""; exit(); } ?> 

。沒有驗證完成。我知道有很多更好的方法來驗證用戶是否登錄。但我正在學習會議,因此我正在使用會議。 你能告訴我我要去哪裏嗎?
關於。

+0

我養成了一個習慣,在echo中使用單引號,在HTML中使用雙引號。它也適用於這種情況。我想通過增加一個「之後」將修復它...... – CaptainCarl 2013-03-13 14:02:07

+2

您的HTML無效。通常所有的HTML位於''和''之間...... – Simone 2013-03-13 14:03:27

+0

@simone。我沒有明白。哪個html?在最後還是在的鏈接? – user1263375 2013-03-13 14:07:13

回答

1

使用單引號在你的迴音代碼是這樣的:

<html> 
    <head> 
    </head> 
    <body> 
    <?php 
     echo "<a href='pageToGoTo.html' title='Page to go to' class='whatEver'>Anchor text</a>"; 
    ?> 
    </body> 
</html> 

什麼已經告知,HTML應放在身體...

+0

但我想獲得會話詳細信息。根據W3schools的說法,「注意:session_start()函數必須在標籤」 – user1263375 2013-03-13 16:12:59

0

我不知道爲什麼@Andy曾建議你把你的PHP放在你的head標籤中 - 這不是javascript。你有2種方式,你可以格式化你的PHP和HTML,首先是把所有的PHP您打開HTML標記上面,像這樣

<?php 
    session_start(); 
    if($_SESSION['auth'] != 1) { 
     $message = 'You are not logged in! <a href="TakeMeHome.html">Access Application</a>'; 
    } else { 
     $message = 'You are logged in!'; 
    } 
?> 
<html> 
    <head>  
    </head> 
    <body> 
    <?php echo $message; ?> 
    </body> 
</html> 

或者,把它放在你的頁面的主體,像這樣:

<?php 
    session_start(); 
?> 
<html> 
    <head>  
    </head> 
    <body> 
    <?php 
     if($_SESSION['auth'] != 1) { 
     echo 'You are not logged in! <a href="TakeMeHome.html">Access Application</a>'; 
     } else { 
     echo 'You are logged in!'; 
     } 
    ?> 
    </body> 
</html> 

如果您仍然沒有收到預期的結果,請使用var_dump($_SESSION);打印出您的會話數組並確保其中包含正確的信息。