文本框中的未定义变量

时间:2016-05-12 07:41:25

标签: php

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

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

<?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>

4 个答案:

答案 0 :(得分:0)

检查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>

答案 1 :(得分:0)

使用<?php if(isset($name )) echo $name; ?>代替<?php echo $name ?>,并使用相同的所有..

OR

您可以使用$name = isset($_POST['name']) ? $_POST['name']: "";代替$name = $_POST['name'];并使用相同的所有..

答案 2 :(得分:0)

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

在此行之前'if(isset($_POST['name']) && isset($_POST['password'])&& isset($_POST['fname'])' ;

你的代码没问题。

答案 3 :(得分:0)

我遇到了你的问题,你正试图访问不是decalre的变量。你可以尝试下面的代码,它的工作正常。

<?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函数检查如果设置了变量然后打印值,否则为空白。