2013-03-13 80 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);打印出您的会话数组并确保其中包含正确的信息。