解析错误:语法错误,LDAP登录表单上的意外$ end

时间:2013-09-28 19:44:35

标签: php

我想在我的网站上为我的一些管理工具创建一个LDAP登录页面,但在使用我获得的一些模板后遇到了问题。我最终选择了一个我认为可以满足我的需求的模板/教程,制作了相应的文件并调整了变量,只是为了在发布后获得Parse error: syntax error, unexpected $end error。我正在寻找一些关于如何使这个项目成功的指导。

<?php
// http://sudobash.net/?p=736
session_start();
session_destroy();

if(!isset($_POST['user'])){?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
  <!-- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -->
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>LOGIN TITLE</title>
</head>
<body>
    <table align="center" height="200px" id="content">
      <tr>
        <td valign="middle">
          <h2>TITLE Login</h2>
          <form action="login.php" method="POST">
              <tt>RAC Username:</tt>
              <input type="text" name="user" size="30" /><br />
              <tt>RAC Password:</tt>
              <input type="password" name="password" size="30" />
              <input type="submit" value="Login" name="submit" />
          </form>
        </td>
      </tr>
    </table>

</body>
</html>

<?}?>

<?if(isset($_POST['user'])){?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
  <!-- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -->
 <head>
  <title>LOGIN RESULTS TITLE</title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

 </head>
  <body>
        <?php
        include 'conf.php';
        // Don't display the warnings - we are already setup to annoy the user
        ini_set( "display_errors", 0);
        // No funny stuff!
        $user = htmlspecialchars($_POST['user']);
        $user = explode(" ", $user);
        $user = $user[0];
        $user = preg_replace("/[^a-zA-Z0-9_]/", "", $user); 

        $filter = "admin=" . $user;

        // Connect to the LDAP server.
        $ldapconn = ldap_connect($server, $port) or
        die("Could not connect to " . $server . ":" . $port . ".");

        // Bind with rootreader to the LDAP server to search and retrieve DN.
        $ldapbind = ldap_bind($ldapconn) or die("Could not bind - contact admin@adamskalicky.com");
        $result = ldap_search($ldapconn,$basedn,$filter) or die ("Search error.");
        $entries = ldap_get_entries($ldapconn, $result);
        $binddn = $entries[0]["dn"];

        // Bind again using the DN retrieved. If this bind is successful,
        // then the user has managed to authenticate.
        $ldapbind = ldap_bind($ldapconn, $binddn, $_POST['password']);
        if ($ldapbind) {
            echo "<center><h2>Successful authentication for <span style='color: #000;'>" . $user . "</span></center>";
        ?>   <table align="center" height="200px" id="content">
             <tr>
               <td valign="middle">
                 <form action="restricted.php" method="post">
                   <input type="hidden" name='user' value="<?=$user;?>" >
                   <input type="submit" value="Great, Let's go!" >
                 </form>
               </td>
             </tr>
              </table>
        <?
        } else {
            echo "<center><h2>Failed authentication for <span style='color: #000;'>" . $user . "</span><br /><br />
                  <a href='login.php'>Try again</a></center>";
        }

        ldap_close($ldapconn);
        ?>

</body>
</html>
<?}?>

1 个答案:

答案 0 :(得分:0)

当您不使用PHP短标签时,问题在http://3v4l.org/UaYh1上得到修复。 你能在自己的服务器上试试吗?

使用短标签无论如何都不是一件好事。

相关问题