【发布时间】:2015-03-24 18:58:44
【问题描述】:
所以我有一个小问题。从 GetFbId.php 我得到 Id 变量到 CheckFbId.php 跟随 session_start(); $id = $_SESSION['id']; 。检查成功后(数据库中没有用户)它重定向到RegForm.html,如下:header('Location: RegForm.html');我需要以某种方式将Id变量传递给RegForm.html并从这里(注册完成后)它应该传递所有数据+ Id变量为RegInsert.php。
总结 RegInsert.php 成功将数据插入数据库,除了 FB 用户 ID 应取自:
GetFbId.php > CheckFbId.php > RegForm.html > RegInsert.php.
我的问题是我无法成功地将该变量从 php 传递到 html 以及从 html 传递到 php。有什么帮助吗?
CheckFbId.php 看起来像:
<?php
session_start();
$id = $_SESSION['id'];
$mysqli = new mysqli("localhost","xxx","xxxx","xxxx");
$query = mysqli_query($mysqli, "SELECT * FROM users WHERE FB_Id = '".$id."'");
if (!$mysqli->set_charset("utf8"))
{
printf("Error loading character set utf8: %s\n", $mysqli->error);
}
if ($query->num_rows) {
echo "Already registered";
}
else {
$_SESSION['fb_id'] = $id;
header("Location: registration.html?id='$id'");
}
$mysqli->close();
?>
RegForm.html 看起来像:
<form class="form" method="post" action="register.php">
<h2>Registracijos forma</h2><hr/>
<label>First Name: </label>
<input type="text" name="first_name" id="first_name">
<label>Last Name: </label>
<input type="text" name="last_name" id="last_name">
<label>City: </label>
<input type="text" name="city" id="city">
<label>Email: </label>
<input type="text" name="email" id="email">
<input type="submit" name="register" id="register" value="Register">
</form>
RegInsert.php 看起来像:
<?php
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$city = $_POST['city'];
$email = $_POST['email'];
$fb_id = $_POST['id'];
$mysqli = new mysqli("localhost","xxxx","xxxx","xxxx");
if ($stmt = $mysqli->prepare("INSERT INTO users (FB_Id, First_Name, Last_Name, City, Email) VALUE (?,?,?,?,?) "))
{
if (!$mysqli->set_charset("utf8"))
{
printf("Error loading character set utf8: %s\n", $mysqli->error);
}
$stmt->bind_param('sssss', $fb_id, $first_name, $last_name, $city, $email);
$stmt->execute();
if ($stmt->error != '')
{
echo ' error:'.$stmt->error;
} else
{
echo 'success';
}
$stmt->close();
} else
{
echo 'error:'.$mysqli->error;
}
$mysqli->close();
?>
【问题讨论】:
-
将其保留在会话中,例如
$_SESSION['checked_id']。或者将您的 html 表单页面更改为 php 文件。 -
我真的不知道如何在 HTML 中使用它并将它发送到另一个 PHP。
-
所以不要,保留在会话中。
-
我不完全确定您想对
.html文件做什么。您想将会话数组显示/传递给.html文件吗?如果是这样;你不能。好吧,您可以,但这意味着指示 Apache 将.html文件视为 PHP。或者,使用 Ajax。 -
请注意,如果您将其传递给您的 html / php 表单文件,则无论如何您都必须在
RegInsert.php中再次检查它,因为您无法信任用户输入;用户可以在表单页面中更改它。
标签: php html variables session post