gpt4 book ai didi

从 URL 参数获取 MySQL 行的 PHP 代码

转载 作者:行者123 更新时间:2023-11-29 12:37:38 27 4
gpt4 key购买 nike

有人可以帮我吗?

我一直在我的一些 WordPress 页面中使用下面的代码,但我很久以前就看过它,以至于我真的不记得如何调试它 - 想想吧。 ..唯一改变的是数据库。

它的工作原理如下:

  1. URL 具有名为 id 的参数,格式如下:http://example.com/post?id= ...
  2. 代码检查参数是否存在,否则重定向至主页。
  3. 如果参数存在,代码将获取 ID 并将其与我的 ISP 托管的 MySQL 数据库中的记录进行比较。
  4. Match 在 echo 语句中使用。
  5. 页面上的 div 已激活。

数据库布局:.+--------+------------+------------+------------ -+------------+----------------+
|编号 |纳姆 |梅特格塞尔 |种类1 |种类2 |电子邮件 |
+--------+------------+------------+------------+-- ----------+----------------+
| ABC12 |鲍比|凯莉 | * | * | b@example.com |
| ... | ... | ... | ... | ... | ... |
+--------+------------+------------+------------+-- ----------+----------------+

遇到错误:

警告:mysql_real_escape_string() 期望参数 1 为字符串,数组在/home/.../public_html/wp-content/plugins/insert-php-code-snippet/shortcode-handler.php( 32) : 第 4 行 eval() 代码
无效或没有安全 key !

代码:

<script>
function invite(){
document.getElementById('invite').style.display=(document.getElementById('invite').style.display=='block')?'none':'block';
}
</script>

<script>
function returnHome(){
setTimeout(function () {window.location.href = 'http://example.com';},2000);
}
</script>

$part = $_REQUEST['id'];

if(isset($_GET["id"])){
$query = sprintf("SELECT * FROM `DATABASE`.`TABLE`
WHERE idquack='$part'",
mysql_real_escape_string($query));

$result = mysql_query($query);
if (!$result) {
$message = 'Invalid or no security key';
die($message);
} else {
while ($row = mysql_fetch_assoc($result)) {
if ($row['Metgesel'] != "*"){
if ($row['Metgesel'] == "#"){
if ($row['Kind1'] != "*"){
if ($row['Kind2'] != "*"){
echo '<h1>' . $row['Naam'] . ", " . "Metgesel" . ", " . $row['Kind1'] . " en " . $row['Kind2'] . "</h1>";
} else {
echo '<h1>' . $row['Naam'] . ", " . "Metgesel" . " en " . $row['Kind1'] . "</h1>";
}
} else {
echo '<h1>' . $row['Naam'] . " en " . "Metgesel" . "</h1>";
}
} else{
if ($row['Kind1'] != "*"){
if ($row['Kind2'] != "*"){
echo '<h1>' . $row['Naam'] . ", " . $row['Metgesel'] . ", " . $row['Kind1'] . " en " . $row['Kind2'] . "</h1>";
} else {
echo '<h1>' . $row['Naam'] . ", " . $row['Metgesel'] . " en " . $row['Kind1'] . "</h1>";
}
} else {
echo '<h1>' . $row['Naam'] . " en " . $row['Metgesel'] . "</h1>";
}
}
} else {
echo '<h1>' . $row['Naam'] . "</h1>";
}

echo '<script>invite();</script>';
}
}

mysql_free_result($result);
} else{
echo 'Hold on tight - we're taking you home!';
echo '<script>returnHome();</script>';
}

最佳答案

您需要更改此行:

$query = sprintf("SELECT * FROM `DATABASE`.`TABLE`
WHERE idquack='$part'",
mysql_real_escape_string($query));

到这一行:

$query = sprintf( "SELECT * FROM DATABASE.TABLE WHERE idquack='%s'", mysql_real_escape_string( $part ) );

您的错误是由于您将整个查询本身传递到 mysql_real_escape_string 函数中,并且 sprintf() 正在寻找变量...该行实际上没有任何意义,因为您拥有它,但我提到的方式是调用它的正确方法。

我没有查看其余代码以查看是否存在任何其他问题,但请先尝试删除您给出的错误。

关于从 URL 参数获取 MySQL 行的 PHP 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26537713/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com