【问题标题】:How do I store session information in a multipage form and send the information to mySQL table如何以多页形式存储会话信息并将信息发送到 mySQL 表
【发布时间】:2020-04-20 05:42:25
【问题描述】:

在我一直从事的项目中,我遇到了最长的障碍。我有一个多页表单,我在其中通过多个页面从最终用户那里收集数据,并在最后将它们提交到我的数据库中,但是当我检查表格时没有显示任何数据。

第 1 页的表单看起来像

<?php
session_start();
// If the user is not logged in redirect to the login page...
if (!isset($_SESSION['loggedin'])) {
    header('Location: login.html');
    exit();
}
?>

Form 2 看起来是这样的..

<?php
session_start();
// If the user is not logged in redirect to the login page...
if (!isset($_SESSION['loggedin'])) {
    header('Location: login.html');
    exit();
}
//Fetching values from form 1
foreach ($_POST as $key => $value) {
 $_SESSION['post'][$key] = $value;
 }

?>

Form 3 的样子

<?php
session_start();
// If the user is not logged in redirect to the login page...
if (!isset($_SESSION['loggedin'])) {
    header('Location: login.html');
    exit();
}
//Fetching values from form 2
foreach ($_POST as $key => $value) {
 $_SESSION['post'][$key] = $value;
 }

?>

完成表格的样子

<?php
 code.
session_start();
// If the user is not logged in redirect to the login page...
if (!isset($_SESSION['loggedin'])) {
    header('Location: login.html');
    exit();
}
//Fetching values from form 3
foreach ($_POST as $key => $value) {
 $_SESSION['post'][$key] = $value;
 }

 extract($_SESSION['post']); // Function to extract array.

 $DATABASE_HOST = 'localhost';
 $DATABASE_USER = 'root';
 $DATABASE_PASS = '';
 $DATABASE_NAME = 'qraccounts';
 // Try and connect using the info above.
 $con = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME);
 if (mysqli_connect_errno()) {
     // If there is an error with the connection, stop the script and display the error.
     die ('Failed to connect to MySQL: ' . mysqli_connect_error());
 }
    if ($stmt = $con->prepare('INSERT INTO logindata (database_value1, database_value2, database_value3, database_value4, database_value5) VALUES (?, ?, ?, ?, ?)')) {
 $stmt->bind_param('sssss', $_POST['value1'], $_POST['value2'], $_POST['value3'], $_POST['value4'], $_POST['value5']);
 $stmt->execute();
}

?>

您是否有任何问题会阻止我在多个会话中将用户数据存储在我的 SQL 表中?

我的数据库是一个带有 id、email、密码(散列)、database_value1、database_value2、database_value3、database_value4、database_value5 的表。我需要像在注册页面中那样存储之前的数据吗?

【问题讨论】:

  • 在你的数据库查询中你应该使用$_SESSION['post']['value1']而不是$_POST['value1']。并使用extract(...) 删除该行,因为它没有达到您的预期。
  • 如果我可以问,这个问题是怎么回事?下面有答案。你试过了吗?它解决了问题吗?

标签: php mysql session mysqli


【解决方案1】:

看起来您已经将值传递给会话。 您可以使用以下会话:

$_SESSION['database_value1'];
$_SESSION['database_value2'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    相关资源
    最近更新 更多