文本框中未定义的变量


Undefined variable inside textbox

我在其中4个文本框中遇到了这样的错误
<b/><b>Notice</b>: Undefined variable: fname in <b>C:'xampp'htdocs'webpage'phpmyadmin'db'form.php</b> on line <b>..</b><br />

我从这里读到类似的问题,但它对我不起作用。
我在哪里犯了错误?

<?php
if(isset($_POST['name']) && isset($_POST['password'])&& isset($_POST['fname'])
&& isset($_POST['lname']) && isset($_POST['email'])){
$name = $_POST['name'];
$pass = $_POST['password'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$passhash = md5($pass);
}
?>
<form action="#" method="POST">
Name:<br>
<input type="text" name="name" value="<?php echo $name ?>"><br>
Password:<br>
<input type="password" name="password"><br>
Firstname:<br>
<input type="text" name="fname" value="<?php echo $fname ?>">  <br>
Lastname:<br>
<input type="text" name="lname" value="<?php echo $lname ?>"> <br>
Email:<br>
<input type="text" name="email" value="<?php echo $email ?>"><br>
<input type="submit" value="Submit">
</form>

检查isset,然后回显,因为在发布数据之前,您不会得到所有数据:

<form action="#" method="POST">
Name:<br>
<input type="text" name="name" value="<?php if(isset($name)) echo $name; ?>"><br>
Password:<br>
<input type="password" name="password"><br>
Firstname:<br>
<input type="text" name="fname" value="<?php if(isset($fname)) echo $fname; ?>">  <br>
Lastname:<br>
<input type="text" name="lname" value="<?php if(isset($lname)) echo $lname; ?>"> <br>
Email:<br>
<input type="text" name="email" value="<?php if(isset($email)) echo $email; ?>"><br>
<input type="submit" value="Submit">
</form>

使用<?php if(isset($name )) echo $name; ?>而不是<?php echo $name ?>,所有都相同。。

您可以使用$name = isset($_POST['name']) ? $_POST['name']: "";而不是$name = $_POST['name'];,并且对所有人都一样。。

初始化$name = $pass = $fname = $lname = $email = $passhash ='';

本线前'if(isset($_POST['name']) && isset($_POST['password'])&& isset($_POST['fname'])' ;

你的代码会很好。

我遇到了您的问题,您正试图访问不是decare的变量。你可以试试下面的代码,它工作得很好。

<?php
if(isset($_POST['name']) && isset($_POST['password'])&& isset($_POST['fname'])
&& isset($_POST['lname']) && isset($_POST['email'])){
$name = $_POST['name'];
$pass = $_POST['password'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$passhash = md5($pass);
}
?>
<form action="#" method="POST">
Name:<br>
<input type="text" name="name" value="<?php echo isset($name)?$name:"" ?>"><br>
Password:<br>
<input type="password" name="password"><br>
Firstname:<br>
<input type="text" name="fname" value="<?php echo isset($fname)?$fname : "" ?>">  <br>
Lastname:<br>
<input type="text" name="lname" value="<?php echo isset($lname)?$lname:"" ?>"> <br>
Email:<br>
<input type="text" name="email" value="<?php echo  isset($email) ? $email : "" ?>"><br>
<input type="submit" value="Submit">
</form>

这里我用isset函数检查,如果变量被设置,那么打印值,否则为空。