【发布时间】:2015-08-20 09:53:04
【问题描述】:
我有一些 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];
}
?>
【问题讨论】:
-
$_POST[username](倒数第二行)应该是$_POST["username"]。可能还有更多语法错误。 -
@Halcyon 这不是语法错误...
-
halcyon 我这样做了,然后我说了意外的 '"',期待 T_STRING 或 T_VARIABLE 或 T_NUM_STRING
-
请改用
$sql = "SELECT $uname from users";。注意力!闻起来像 SQL 注入问题... -
SELECT $uname from users;这会咬你的。您可能希望为特定用户而不是特定列选择列。而且heredocEOF;前面不能有空格,必须在行首。