【问题标题】:PHP Prepared statements from web form issues [duplicate]来自 Web 表单问题的 PHP 准备语句 [重复]
【发布时间】:2018-08-12 22:09:46
【问题描述】:

最近才开始使用 mysql,所以我正在慢慢掌握它,但尝试使用 PHP 准备好的语句用于 webform,并且在提交 webform 时,它只是显示 php 代码。有什么建议?

谢谢

<?php

$link = mysqli_connect("localhost", "root", "", "contactform");

if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}

$sql = "INSERT INTO contactform (firstname, surname, address1, address2, 
towncity, county, postcode) VALUES (?,?,?,?,?,?,?)";

if($stmt = mysqli_prepare($link, $sql)){
mysqli_stmt_bind_param($stmt, "sssssss", $firstname, $surname, $address1, 
$address2, $towncity, $county, $postcode);

$firstname = $_REQUEST['firstname'];
$surname = $_REQUEST['surname'];
$address1 = $_REQUEST['address1'];
$address2 = $_REQUEST['address2'];
$towncity = $_REQUEST['towncity'];
$county = $_REQUEST['county'];
$postcode = $_REQUEST['postcode'];


if(mysqli_stmt_execute($stmt)){
    echo "Records inserted successfully.";
} else{
    echo "ERROR: Could not execute query: $sql. " . mysqli_error($link);
}
} else{
echo "ERROR: Could not prepare query: $sql. " . mysqli_error($link);
}

mysqli_stmt_close($stmt);

mysqli_close($link);
?>    

【问题讨论】:

  • 所以是显示源代码?
  • 嗨,西蒙,没错。在使用准备好的语句之前,我让它运行良好。
  • 我能想到的显示 PHP 源代码的唯一原因是一个不可靠的开始标签,或者您的网络服务器设置不正确。
  • 您应该删除此问题,因为代码似乎没有可重现的问题。或者有吗?然后你应该发布一个真实的答案。

标签: php mysql webforms prepared-statement statements


【解决方案1】:

使用eval( $text ); 会将您的字符串作为PHP 代码执行。 这就是你要找的吗?

PHP eval() function

警告 eval() 语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要传递任何用户提供的数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 2011-06-02
    • 2012-08-29
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多