在php中获取标签的选定索引值

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了在php中获取标签的选定索引值脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图从< select>中获取所选值在 PHP标记,但我收到错误.

这就是我所做的,

HTML

<select name="gender">
<option value="select">  Select </option>
<option value="male">    Male   </option>
<option value="female">  Female </option>
</select>

PHP脚本

$Gender  = $_POST["gender"];

但我得到这些错误

Notice: Undefined index: gender in C:\xampp\htdocs\omnama\signup.PHP on line 7

PHP脚本

$Gender  = isset($_POST["gender"]); ' IT returns a empty string ? why ?

HTML

<form name="signup_form"  action="./signup.PHP" onsubmit="return validateForm()"   method="post">
<table> 
  <tr> <td> First Name    </td><td> <input tyPE="text" name="fname" size=10/></td></tr>
  <tr> <td> Last Name     </td><td> <input type="text" name="lname" size=10/></td></tr>
  <tr> <td> Your Email    </td><td> <input type="text" name="email" size=10/></td></tr>
  <tr> <td> Re-type Email </td><td> <input type="text" name="remail"size=10/></td></tr>
  <tr> <td> Password      </td><td> <input type="password" name="paswod" size=10/> </td></tr>
  <tr> <td> Gender        </td><td> <select name="gender">
  <option>                Select </option>    
  <option value="male">   Male   </option>
  <option value="female"> Female </option></select></td></tr> 
  <tr> <td> <input type="submit" value="Sign up" id="signup"/> </td> </tr>
 </table>
 </form>

这是我的PHP脚本

<?PHP
  $con     = MysqL_connect("localhost","root","");
  $fname   = $_POST["fname"];
  $lname   = $_POST["lname"];
  $email   =  $_POST["email"];
  $paswod  = $_POST["paswod"];
  $Gender  = $_POST["gender"];
  MysqL_select_db("homepage");

  if(MysqL_num_rows(MysqL_query("SELECT Email From users WHERE Email = '$email'",$con)))
  {
  echo "userid is already there";
  }
  else
  { 
  $sql= "INSERT INTO users (FirstName,LastName,Email,Password,Gender)
  VALUES
  ('$fname','$lname','$email','$paswod','$Gender')";

  if (!MysqL_query($sql,$con))
  {
  die('Error: ' . MysqL_error());
  }
  echo "created";
  }
 ?>

请帮帮我.我必须在PHP获取所选的索引值.

我已阅读此link以使用< select>用PHP标记.

解决方法

您的表格有效.在我看到你的完整HTML之后,我想到的只是你传递了你的“认”值(没有设置!)而不是选择一些东西.
尝试@Vina在评论中的建议,即给它一个选定的选项,或者一个认值

<select name="gender">
<option value="default">Select </option>    
<option value="male">   Male   </option>
<option value="female"> Female </option>
</select>

要么

<select name="gender">
<option value="male" selected="selected">   Male   </option>
<option value="female"> Female </option>
</select>

当你获得$_POST VARs时,检查它们是否被设置;你可以分配一个认值,或者只是一个空字符串,以它们不存在.

重要的是,避免sql注入:

//....
$fname   = isset($_POST["fname"]) ? MysqL_real_escape_string($_POST['fname']) : '';
$lname   = isset($_POST['lname']) ? MysqL_real_escape_string($_POST['lname']) : '';
$email   = isset($_POST['email']) ? MysqL_real_escape_string($_POST['email']) : '';
you might also want to validate e-mail:
if($mail = filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
  $email = MysqL_real_escape_string($_POST['email']);
}
else
{
  //die ('invalid email address');
  // or whatever,a default value? $email = '';
}
$paswod  = isset($_POST["paswod"]) ? MysqL_real_escape_string($_POST['paswod']) : '';
$gender  = isset($_POST['gender']) ? MysqL_real_escape_string($_POST['gender']) : '';

$query = MysqL_query("SELECT Email From users WHERE Email = '".$email."')";
if(MysqL_num_rows($query)> 0)
{
  echo 'userid is already there';
}
else
{
 $sql = "INSERT INTO users (FirstName,Gender)
         VALUES ('".$fname."','".$lname."','".$email."','".paswod."','".$gender."')";
$res = MysqL_query($sql) or die('Error:'.MysqL_error());
echo 'created';

脚本宝典总结

以上是脚本宝典为你收集整理的在php中获取标签的选定索引值全部内容,希望文章能够帮你解决在php中获取标签的选定索引值所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。