我有一些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];
}
?>
答案 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 ?>