1

我正在尝试将 page1.php(将数据添加到 DB 的表单)中的表单的值带到 page2.php(将 IMG 添加到 DB 的表单)。我读了一大堆关于如何做到这一点的页面,但仍然无法弄清楚。

<form name="formBrokerTour" class="login-form-addproperty" method="post"
  action="insertPropertyInfoWITHgeocode.php" onsubmit="return validateForm()">

然后我需要添加几个字段,地址,城市,邮政编码状态。这里是 4 个中的一个:

<td  width="125" class="formLable">Address</td>
<td width="269" class="formSquare">
   <input type="text" class="general_input" 
     name="address" id="nameText" width="269" >
</td>

page2.php(相关部分)——如你所见,如果我写了一个地址,那个地址就会添加到数据库中,所以我们不用担心sql出错。如果我尝试通过会话(因为我有用户名可以在数据库中添加信息)或发布/获取将信息从第 1 页传递到第 2 页,则不会添加地址。有趣的是,正在添加用户名。

$username = htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8');
$address = "123 abec st"; 

$query = "
  INSERT INTO my_image
  (name, size, type, file_path, username, address) 
  VALUES(?,?,?,?,?,?)";
$conn = $db->prepare($query);
if ($conn == TRUE) {
    $conn->bind_param("sissss", $myfile, $fileSize, $fileType, $path, $username,  $address);
    if (!$conn->execute()) {
      echo 'error insert';
    } else {
      echo 'Success!<br/>';
      echo '<img src="' . DISPLAY_PATH . $myfile . '"/>';
    }
}

正如我们在其他问题中看到的那样,我试图 echo$_session等,但这是一个新计算机人的问题......我在哪里添加这个信息?我已将它添加session_start到顶部,就在 SQL 查询之前,它在查询中不接受它。

page1.php 具有带有 DB 和地理编码内容的提交按钮。它发送到 page3.php,询问用户是否要添加图像。如果是,page2.php,如果不是索引。我对传递信息感到困惑。

4

4 回答 4

3

表单中的所有字段都在 $_POST 中。您将提取地址

$address = $_POST['address'];

如果您使用 GET 表单操作或通过 URL 传递变量,您将使用 $_GET。

我真的建议您查看教程网站或 PHP 书籍,因为这是您将学习的基本内容之一。

于 2013-09-03T17:49:03.050 回答
1

因为您?在查询中使用而不是变量,所以 bindParam 的正确用法就像$conn->bindParam(number_of_param, the_value);number_of_param 是?您要替换的数量一样。

您还可以将一组参数传递给$conn->execute()调用,如下所示,以?一次替换所有 ':

        $conn = $db->prepare("INSERT INTO my_image(name, size, type, file_path, username, address) VALUES(?,?,?,?,?,?)");
        if ($conn == TRUE) {
            $result = $conn->execute(array($myfile, $fileSize, $fileType, $path, $username,  $address));
            if (!$result) {
                echo 'error insert';
            } else {
                echo 'Success!<br/>';
                echo '<img src="' . DISPLAY_PATH . $myfile . '"/>';
            }
        }

旁注:我建议使用 PDO::EXCEPTION 样式的错误处理并用try {} catch块包围您的数据库代码,因为它可以帮助标准化错误处理,但这完全取决于您。

于 2013-09-03T17:54:14.233 回答
0

利用

$_POST['form input name']

所以

VALUE ($_POST['myfile'], $_POST['fileSize'],ect.)
于 2013-09-03T17:52:03.827 回答
0

对于那些在同一个问题上苦苦挣扎的人:我在所有相关文件中添加了这个

<?php session_start();
$_SESSION['address']=$address;
$_SESSION['city']=$city;
$_SESSION['zip_code']=$zip_code;
?>

我在查询之前添加了这个:

$username = htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8');
$address= htmlentities($_SESSION['address']);
$city= htmlentities($_SESSION['city']);
$zip_code= htmlentities($_SESSION['zip_code']);

然后查询:

 $query =
              "INSERT INTO my_image(name, size, type, file_path, username, address, city, zip_code) VALUES(?,?,?,?,?,?,?,?)";
            $conn = $db->prepare($query);
            if ($conn == TRUE) {
                $conn->bind_param("sissssss", $myfile, $fileSize, $fileType, $path, $username, $address, $city, $zip_code);
.......etc.

可能有一点魔法,我的意思是,也许不需要一些步骤。经过长时间的尝试,它正在工作。

于 2013-09-03T21:34:46.317 回答