0

我有 2 页。第 1 页用于用户数据输入,第 2 页类似于某种确认。我有一个名为 insert.php 的 php 文件,它的唯一工作是将数据插入到 mysql 表中,其中包含第 1 页的数据。所以在第 2 页上,我将包含第 1 页中所有数据的 $_POST 数组复制到会话中。这里是:

<script>
$(document).ready(function(e) {
    $("#PaySubmit").click(function() {
        alert("done");
        $.ajax({
            url: 'Insert.php'
        });
    });
});
</script>
<?php 
session_start();
$prev_url1 = substr($_SERVER['HTTP_REFERER'],-18);
$_SESSION = array_merge($_POST);
?>

<form id="pay" name="pay" method="post" action="RandomPage.php">
<input type="submit" name="PaySubmit" id="PaySubmit" value="Continue"/>
</form>

在插入中,代码如下:

<?php 
session_start();
try {
    $link = new PDO('mysql:host=;dbname=;charset=UTF-8','','');
    $gid = $link->prepare("SELECT MAX(Group_ID) as maxGroup FROM Conference");
    $gid->execute();
    $groupid = $gid->fetch(PDO::FETCH_ASSOC);
    $groupid = $groupid['maxGroup']+1;
    $regisid = $groupid;
    $first = $_SESSION["fname"];
    $last = $_SESSION["lname"];
    $addr = $_SESSION["address"];
    $city = $_SESSION["city"];
    $state = $_SESSION["state"];

    $stmt = $link -> prepare("INSERT INTO Conference (`Registrar_ID`, `Group_ID`, `First Name`, `Last Name`, `Address`, `City`, `State`) VALUES (:regisid, :groupid, :first, :last, :addr, :city, :state)");
    $stmt->bindParam(':regisid', $regisid);
    $stmt->bindParam(':groupid', $groupid);
        $stmt->bindParam(':first', $first);
        $stmt->bindParam(':last', $last);
        $stmt->bindParam(':addr', $addr);
        $stmt->bindParam(':city', $city);
        $stmt->bindParam(':state', $state);

    } catch(PDOException $e) {
        print "Error!: " . $e->getMessage() . "<br/>";
        die();
    }
?>

但由于某种原因,这只是不会被插入。在我刚刚在第二页中插入所有代码并且它运行良好之前,但我希望它只有在他们点击第二页上的提交时才插入,这就是我必须这样做的原因。为什么这不起作用,我做错了什么?

4

2 回答 2

0

session_start()必须在向浏览器回显任何内容之前调用

<?php
    session_start();
?>
<script>
$(document).ready(function(e) {
    $("#PaySubmit").click(function() {
        alert("done");
        $.ajax({
            url: 'Insert.php'
        });
    });
});
</script>
<?php 
$prev_url1 = substr($_SERVER['HTTP_REFERER'],-18);
$_SESSION = array_merge($_POST);
?>

<form id"pay" name="pay" method="post" action="RandomPage.php">
<input type="submit" name="PaySubmit" id="PaySubmit" value="Continue"/>
</form>

更新 您的插入文件是名为 Insert.php 还是 insert.php?linux系统上的案例问题

于 2012-09-19T19:26:10.783 回答
0

你不见了

$stmt->execute()
于 2012-09-19T19:16:59.440 回答