2015-08-08 49 views
0

我一直在这个问题上停留了3天,任何帮助都将非常感激。 请注意,我现在有一个页面的PHP和HTML,直到我得到它的工作,然后一旦它已被修复,我会将PHP连接脚本放入其通常的文件夹。 当我登录注册页面时,我可以看到我已连接到我的,我可以填写我的表单并提交它没有任何错误,但是数据库不会更新,当我刷新数据库时没有找到新用户。 以下是我的代码到目前为止,如果任何人都可以告诉我我做错了什么,或者我可以改善,以解决这个错误,我会非常感谢。 提前谢谢!表单信息未更新到我的数据库中

<?php 
    $host="localhost"; 
    $dbuser="root"; 
    $pass="********"; 
    $dbname="amsadler"; 
    $con = mysqli_connect ($host, $dbuser, $pass, $dbname); 
    if (mysqli_connect_errno()) 
    { 
     die ("Connection Failed!" . mysqli_connect_error()); 
    } 
    else 
    { 
    echo "Connected to database {$dbname} "; 
    } 

    if(isset($_POST['submit'])) 
    { 
     $fname = mysqli_real_escape_string($con, $_POST ['fname']); 
     $lname= mysqli_real_escape_string($con, $_POST ['lname']); 
     $email= mysqli_real_escape_string($con, $_POST ['email']); 
     $pswrd= mysqli_real_escape_string($con, $_POST ['pswrd']); 

     $sql = $con->query("INSERT INTO users (fname, lname, email, pswrd,) 
        VALUES (' {$fname} ' , ' {$lname} ' , ' {$email} ' , ' {$pswrd} ')"); 

    } 
?> 


<!DOCTYPE html> 
<html lang="en-US"> 
<head> 
    <title>Signup</title> 
    <meta charset="utf-8"> 
    <meta name="description" content="description of webpage"> 
    <meta name="keywords" content="keywords go here"> 
    <meta name="author" content="amsadler"> 
    <link rel="stylesheet" href="css/style.css"> 
    <link rel="stylesheet" href="css/signup.css"> 
    <link rel="index" href="index.php"> 
    <link rel="icon" href="img/favicon.png" sizes="16x16" type="image/png"> 
</head> 
<body> 

    <div class="header"> 
     <div id="logo"> 
       <a href="index.php"><img src="img/logo.png" alt="logo" title="blah blah"/></a> 
     </div> 
    </div> 

    <div id="signupform"> 
     <form method="post"><br> 
      <input type="text" id="fname" name="fname" placeholder="First name"> 
      <input type="text" id="lname" name="lname" placeholder="Last name"><br><br> 
      <input type="text" id="email" name="email" placeholder="Email address"> 
      <input type="password" id="pswrd" name="pswrd" placeholder="Password"><br><br> 
      <input id="button" type="submit" value="Submit"> 
     </form> 
    </div> 

<?php 
    include ("inc/footer.php"); 
?> 

</body> 
</html> 

回答

1

这里有几个问题。

他们中的一个与你的条件语句是:

if(isset($_POST['submit'])){...} 

没有在那里会火,因为缺少name属性“提交”的了。

名称您的提交按钮:

<input name="submit" id="button" type="submit" value="Submit"> 
     ^^^^^^^^^^^^^ 

然后在你的查询后面的逗号:

(fname, lname, email, pswrd,) 
          ↑ 

删除

(fname, lname, email, pswrd) 

添加or die(mysqli_error($con))mysqli_query()

使用错误的查询检查会表现出另一种语法错误,只要你会说出提交按钮:

没有错误你说什么?您很可能不会检查它们,或者您的系统未安装并显示它们。

error reporting添加到您的文件的顶部,这将有助于发现错误。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// rest of your code 

旁注:显示错误应该只在分期完成,并且从不生产。

  • 它会发出一个未定义的索引提交通知。

为了绝对确保这是一个成功的查询,请使用affected_rows()


我注意到你可以在明文存储密码。如果是这样的话,它是非常不鼓励的。

我建议你使用CRYPT_BLOWFISH或PHP 5.5的password_hash()函数。对于PHP < 5.5使用password_hash() compatibility pack

确保在使用安全散列方法时以及何时使用安全散列方法,以确保您的密码列足够长以容纳散列。

安全的赌注是PHP.net推荐使用的VARCHAR(255)。细节在他们的网站上列出。

+1

人太感谢你了,我新在此,我使用notepadd ++我没有看到看到(FNAME,LNAME,电子邮件,pswrd)和我命名提交 ↑ 它现在正在工作我在YouTube上学习如何做到这一点,当我陷入困境时,如果我无法修复它,我会来专家的建议! 再次感谢人可能你有一个美好的一天。 –

+0

@AnthonySadler最受欢迎的是安东尼,很高兴得到了帮助,*欢呼声*而且你也有一个美好的一天,谢谢。 –

+0

感谢cryptfish河流以及我还没有那么远,但我目前正在观看这个系列的youtube。 https://www.youtube.com/watch?v=InmQaOENDhA 和我一起去学习 –

相关问题