我是PHP新手,在尝试创建注册页面时遇到了这个错误。
注意:未定义的索引:C:''examplep''htdocs''phptest''index.php中第7行的注释
这是index.php 的代码
<form name="reg" action="code_exec.php" onsubmit="return validateForm()" method="post">
<table width="274" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td colspan="2">
<div align="center">
<?php
$remarks=$_GET['remarks'];
if ($remarks==null and $remarks=="")
{
echo 'Register Here';
}
if ($remarks=='success')
{
echo 'Registration Success';
}
?>
</div></td>
</tr>
<tr>
<td width="95"><div align="right">First Name:</div></td>
<td width="171"><input type="text" name="fname" /></td>
</tr>
<tr>
<td><div align="right">Last Name:</div></td>
<td><input type="text" name="lname" /></td>
</tr>
<tr>
<td><div align="right">Gender:</div></td>
<td><input type="text" name="mname" /></td>
</tr>
<tr>
<td><div align="right">Address:</div></td>
<td><input type="text" name="address" /></td>
</tr>
<tr>
<td><div align="right">Contact No.:</div></td>
<td><input type="text" name="contact" /></td>
</tr>
<tr>
<td><div align="right">Picture:</div></td>
<td><input type="text" name="pic" /></td>
</tr>
<tr>
<td><div align="right">Username:</div></td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td><div align="right">Password:</div></td>
<td><input type="text" name="password" /></td>
</tr>
<tr>
<td><div align="right"></div></td>
<td><input name="submit" type="submit" value="Submit" /></td>
</tr>
</table>
</form>
我可以知道哪一部分错了吗?一切都运行得很好,但注册页面界面会弹出错误消息。我该如何删除它,还是我的代码有问题?
这是因为您的$_GET
数组没有任何带有备注键的值。
我看到了你的表格,没有看到任何使用这个名字的输入。我想您正在向它传递一个querystring变量(yourfile.php?comments=value)
为了避免警告,您应该在之前测试备注是否在$_GET
中
$remarks=isset($_GET['remarks'])?$_GET['remarks']:"";
在从请求中获取任何数据之前,您应该使用isset()
。
所以你的代码应该是
$remarks=(isset($_GET['remarks']))?$_GET['remarks']:"";
一切都将保持原样。
尝试类似的东西
<form name="reg" action="code_exec.php" onsubmit="return validateForm()" method="post">
<table width="274" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td colspan="2">
<div align="center">
<?php
if (!isset($_GET['remarks']))
{
echo 'Register Here';
}
if ($remarks=='success')
{
echo 'Registration Success';
}
?>
</div></td>
</tr>
<tr>
<td width="95"><div align="right">First Name:</div></td>
<td width="171"><input type="text" name="fname" /></td>
</tr>
<tr>
<td><div align="right">Last Name:</div></td>
<td><input type="text" name="lname" /></td>
</tr>
<tr>
<td><div align="right">Gender:</div></td>
<td><input type="text" name="mname" /></td>
</tr>
<tr>
<td><div align="right">Address:</div></td>
<td><input type="text" name="address" /></td>
</tr>
<tr>
<td><div align="right">Contact No.:</div></td>
<td><input type="text" name="contact" /></td>
</tr>
<tr>
<td><div align="right">Picture:</div></td>
<td><input type="text" name="pic" /></td>
</tr>
<tr>
<td><div align="right">Username:</div></td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td><div align="right">Password:</div></td>
<td><input type="text" name="password" /></td>
</tr>
<tr>
<td><div align="right"></div></td>
<td><input name="submit" type="submit" value="Submit" /></td>
</tr>
</table>
</form>
当您的页面加载时,它没有任何Get参数,这就是未定义索引的意思,Get['remarks']没有声明为
你可以试试这样的
<?php
if (!isset($_GET['remarks']) && $remarks=="")
{
echo 'Register Here';
}
else if($_GET['remarks']=='success')
{
echo 'Registration Success';
}
?>
试试这个代码。
<?php
$remarks=isset($_GET['remarks'])?$_GET['remarks']:"";
if ($remarks==null and $remarks=="")
{
echo 'Register Here';
}
if ($remarks=='success')
{
echo 'Registration Success';
}
?>