我在其中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函数检查,如果变量被设置,那么打印值,否则为空。