php解析错误:意外的$ end

时间:2015-06-05 12:31:59

标签: php html

我有一些PHP代码从索引中获取帖子,然后允许您登录。当我运行它时,它说:

  

解析错误:意外$ end;

如果有任何想法请尽快告诉我,因为需要在学校上课。

<?php

    $uname = $_POST["username"];

    $resultCount = 0;

    class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('users.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   }

    $sql =<<<EOF
    SELECT $uname from users;
    EOF;

    $ret = $db->exec($sql);

    foreach($ret as $uname){
            $resultCount++;
    }

    if($resultCount > 1){
        echo "failed to log in!";
        echo "please return <a href='index.php'>home</a>";
    }
    else{
        echo "logged in succesfully!";
        echo "welcome" . $_POST[username];
    }
?>

2 个答案:

答案 0 :(得分:3)

这里可能存在问题:

   $sql =<<<EOF
   SELECT $uname from users;
   EOF;

EOF;应位于该行的开头,之前不能有空格。

请参阅:https://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

  

这尤其意味着标识符可能没有缩进

$_POST[username](倒数第二行)应为$_POST["username"]。这可能只是一个警告。

答案 1 :(得分:0)

以另一种方式改变括号,加上你不必这样做 只需将此代码添加到页面顶部

<? session_start(); ?>

当你回复那里的用户名put

<?=$_SESSION['sess_user'];?><? echo $_SESSION['sess_user'];?>

或者你可以详细介绍并放置 <? $rot = $username ?> <? echo $rot ?>