我有一个表,其中存储了用户电子邮件地址和密码。当用户第一次登录其帐户时,我想在页面加载时显示用户的电子邮件。但它不起作用。数据不会出现在文本字段中。我相信我的代码理论上应该可以工作。
HTML
<section class="container">
<form id="myform " class="Form" method="post" action="Cus_Account.php" accept-charset="utf-8">
<!-- <div id="first">-->
<input type="text" id="fname" name="fname" value="" required>
<input type="text" id="lname" name="lname" value="" required>
<input type="text" id="email" name="email" value="<?php echo $email; ?>" required>
<input type="number" id="phone" name="phone" value="" required>
<input type="submit" name="Update" value="Update">
<br>
</form>
PHP
<?php
$user = $_SESSION['Cus_Email'];
$get_user = "SELECT Cus_Email FROM Cus_Register WHERE Cus_Email='$user'";
$run_user = mysqli_query($dbc, $get_user);
//check if customer is on databse
$row_customer = mysqli_fetch_array($run_user);
$email = $row_customer['Cus_Email'];
?>
告诉您我在页面上还运行了另一个查询可能会有所帮助
PHP
<?php
if (isset($_POST['Update'])) {
echo $c_fname = $_POST['fname'];
echo $c_lname = $_POST['lname'];
echo $c_phone = $_POST['phone'];
$insert_det = "INSERT INTO Cus_acc_details(CUS_Fname,CUS_Lname, CUS_Phone) VALUES (?,?,?)";
$stmt = mysqli_prepare($dbc, $insert_det);
mysqli_stmt_bind_param($stmt, 'ssi', $c_fname, $c_lname, $c_phone);
/* execute query */
$r = mysqli_stmt_execute($stmt);
if ($insert_det) {
echo " Saved";
}
} else {
echo "<b> Error </b>";
}
?>
此查询将注册页面上未收集的数据插入数据库中。
错误:
Undefined index: Cus_Email in /Applications/MAMP/htdocs/PhpProject2/customer/Cus_Account.php on line 60
最佳答案
您可以使用var_dump
来控制台记录数据以生成Cus_Email
。
如果找不到,可以检查一下你的sql是否正确。
<?php
$user = $_SESSION['Cus_Email'];
$get_user = "SELECT Cus_Email FROM Cus_Register WHERE Cus_Email='$user'";
$run_user = mysqli_query($dbc, $get_user);
//check if customer is on databse
$row_customer = mysqli_fetch_array($run_user);
// to test
var_dump($row_customer);
$email = $row_customer['Cus_Email'];
?>
关于PHP - Echo 变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36144069/