<?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:
<input type="text" class="inputs" name="name" id="name" /><br />
Email:
<input type="text" class="inputs" name="email" id="txtEmail" /><br />
User name:
<input type="text" class="inputs" name="uname" id="uname"/><br />
Password:
<input type="password" class="inputs" name="pass" id="pass1"/><br />
Conferm Password:
<input type="password" class="inputs" name="cpass" id="pass2"/><br /><br />
<input type="submit" value="Register" class="button" />
</form>
如果没有对db的插入值,则尝试检查数据库中是否存在用户名或电子邮件。代码对我不起作用。没有错误没有回声没有插入。任何解决方案?
答案 0 :(得分:4)
您没有名称为register
关于这个
if (isset($_POST['register'])) {
永远不会评估为真。
<input type="submit" value="Register" class="button" />
需要名称属性name="register"
另外:
您的参数顺序错误。但是,强烈建议不要使用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);
答案 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>