【发布时间】:2018-07-03 08:15:40
【问题描述】:
我目前正在开发一个带有投票系统的论坛网站。然而,有一些烦人的,可能是语法错误困扰着我。我说的是这段代码。
<?php
session_start();
include_once 'dbh_discussion.inc.php';
$conn = db_discussion_connect();
$thread_id = $_POST['upvote'];
$sql1 = $conn->prepare("SELECT * FROM users WHERE user_id = '$_SESSION['u_id']' AND thread_id = '$thread_id'");
这段代码中不清楚的地方如下:
- db_discussion_connect() 在 dbh_discussion_connect.inc.php 中声明的函数。此函数返回一个连接到我的数据库的新 PDO。
- 索引“upvote”是另一个 php 文件中将调用上述代码的按钮的名称。
- $_SESSION['u_id'] 是一个会话变量,将在用户登录网站时分配。
我在服务器上调试时遇到的错误:
解析错误:语法错误,意外'' (T_ENCAPSED_AND_WHITESPACE), 期望 '-' 或标识符 (T_STRING) 或变量 (T_VARIABLE) 或 /var/www/html/includes/thread_upvotes.inc.php 中的数字 (T_NUM_STRING) 在第 9 行
我觉得我错过了一些语法。无论如何,我非常感谢有人告诉我这里出了什么问题。
谢谢
【问题讨论】:
-
第9行是哪一行?
-
请访问bobby-tables.com,了解SQL注入以及如何使用预处理语句。现在你的代码真的很容易被注入,你的整个数据库可能会在几秒钟内被黑客入侵!!!
-
还要注意,您的代码对 SQL 注入是开放的,因此请为更多错误和问题做好准备。
-
如果您打算将变量转储到相同的位置,那么准备语句没有多大意义。
-
@WillemvanderSpek - 这就是精神 :D 是的,你应该 ;)