Php表单提交 - 错误

时间:2014-04-11 12:04:53

标签: php html mysql phpmyadmin

<?php

include ("db.php");

if (isset($_POST['register'])) {

echo $name = ($_POST["name"]);
echo $email = ($_POST["email"]);
echo $uname = ($_POST["uname"]);
echo $password = ($_POST["pass"]);


 $result =  mysql_query($con,'SELECT * from company_profile where user_name = "'.$uname.'" or email = "'.$email.'"');
       if(mysql_num_rows($result) > 0){
          echo "Username or email already exists.";
       }else{
           $query = mysql_query($con,"INSERT INTO company_profile(user_name, password, company_name, email, phone, country, activation_string) VALUES ('$uname','$password','$name','$email','','','')");

         if($query){
            echo "data are inserted succesfully.";
         }else{
          echo "failed to insert data.";
         }
     }

}


  ?>    

HTML表单

<form action="register.php" method="post" id="reg" onsubmit='return validate();'>
                 Company Name: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                 <input type="text"  class="inputs" name="name" id="name" /><br />
                 Email:     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                 <input type="text" class="inputs" name="email" id="txtEmail" /><br />
                 User name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                 <input type="text"  class="inputs"  name="uname" id="uname"/><br />
                  Password:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                  <input type="password" class="inputs" name="pass" id="pass1"/><br />
                  Conferm Password: &nbsp;&nbsp;&nbsp;
                  <input type="password" class="inputs" name="cpass"  id="pass2"/><br /><br /> 
                 <input type="submit" value="Register" class="button" />
                  </form>

如果没有对db的插入值,则尝试检查数据库中是否存在用户名或电子邮件。代码对我不起作用。没有错误没有回声没有插入。任何解决方案?

7 个答案:

答案 0 :(得分:4)

您没有名称为register

的字段

关于这个

if (isset($_POST['register'])) {

永远不会评估为真。

<input type="submit" value="Register" class="button" />

需要名称属性name="register"

另外:

http://php.net/mysql_query

您的参数顺序错误。但是,强烈建议不要使用mysql_ *。它是一个具有很多漏洞的obsolette数据库API。切换到mysqli或PDO而不是

答案 1 :(得分:1)

您的首次检查isset($_POST['register'])始终为false,因为您的表单中没有name="register"

的输入

并且你也可以修复你的查询,$ con应该是第二个参数。

并请记住,您的代码非常容易受到攻击,除了您的localhost外,不会在服务器上发布此代码

答案 2 :(得分:0)

试试这个: -

$result =  mysql_query('SELECT * from company_profile where user_name = "'.$uname.'" or email = "'.$email.'"',$con);

mysql_query

答案 3 :(得分:0)

当你使用mysql_query时,链接标识符应该是第二个参数

$result =  mysql_query('SELECT * from company_profile where user_name = "'.$uname.'" or email = "'.$email.'"', $con);

答案 4 :(得分:0)

你自己太复杂了......

首先,要检查用户,只需在表单提交时执行此操作:

var_dump(mysql_num_rows(mysql_query("select bla bla where username=`{$_GET['username']}`")));
//by bla bla i mean primary key, don't select *, affects performance.

另外,请看这个,你的语法有错误...看一下mysql_query的正确参数

http://ro1.php.net/mysql_query

在您设置查询并进行上述测试并确定其是否良好之后,如果像这样的行,您可以将上面的3-4行切成1行

if(mysql_num_rows(mysql_query("select bla bla where username=`{$_GET['username']}`"))) { //code here
}

答案 5 :(得分:0)

在INSERT查询中尝试不使用$ con

$query = mysql_query("INSERT INTO company_profile
                        (
                         user_name,    password, 
                         company_name, email,     
                         phone,        country, 
                         activation_string
                         ) 
                      VALUES 
                        (
                         '$uname',  '$password',
                         '$name',   '$email',
                         '',        '',
                         ''
                         )");

答案 6 :(得分:0)

您需要为输入字段指定名称并检查: -

<input type="submit" name="register" value="register">

OR

<button type="submit" name="register">Register</buton>
相关问题