在PHP中显示超链接

时间:2013-03-13 13:59:37

标签: php html session

我是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>

但链接标签正在显示

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

以及html数据。没有进行验证。我知道有很多更好的方法来验证用户是否已登录。但我正在学习课程,因此我正在使用课程。 你能告诉我哪里出错了吗? 问候。

2 个答案:

答案 0 :(得分:1)

在回波代码中使用单引号,如下所示:

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

已经说过,html应该放在身体......

答案 1 :(得分:0)

我不知道为什么@Andy建议你将PHP放在头部标签中 - 它不是javascript。你有两种方法可以格式化你的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);打印出会话数组,并确保其中包含正确的信息。