【问题标题】:Adding a new user, will not enter in database or display results添加新用户,不会进入数据库或显示结果
【发布时间】:2013-03-19 16:53:38
【问题描述】:

我正在尝试使用用户名和密码字段以及按钮向系统输入新用户。当我输入凭据时,我根本没有得到任何响应,甚至没有错误消息。

代码如下:

<?php
    session_start();
    $logged_in = isset($_SESSION['USERNAME']) && $_SESSION['USERNAME'] ?    
    $_SESSION['USERNAME'] : null;
    if(!$logged_in) {
    header("location:index.php");   
    }
    include 'dbsettings.php';

    // username and password sent from form in login.php
    $username=$_POST['username'];
    $password=$_POST['password'];

   // encrypting password
    $encrypted_password=md5($password);

    $stmt = $dbh->prepare("SELECT * FROM user_info WHERE username = ?");
    $stmt->execute(array($username)); 
    $row = $stmt->fetch(PDO::FETCH_ASSOC);

    if (! $row){

  //add new user to database
  $stmt = $dbh->prepare("INSERT INTO user_info(username, password) VALUES (?,?)");
  $params1 = array($username, $encrypted_password);

  if (!$stmt ->execute($params1)){
echo "user has not been entered on the database check with administrator of the system.    
<span class='label label-important'>Important</span>";

}else{
echo $username." has been added to the database as admin. <span class='label  
label-success'>Success</span>";

//send an email to the user


session_start();
$_SESSION['USERNAME']=$username;
$_SESSION['PASSWORD']=$encrypted_password;

}

}else{
        echo $username." is already a supervisor register in the PPM tool. <span class='label label-warning'>Warning</span>";

}
$dbh = null; 
?>

这是表单的目标和表单本身:

 <form name="form1" method="post" action="adduser.php" >


 <input type="text"  placeholder="Username" name="username" id="username">
 <input type="password"  placeholder="Password" name="password" id="password"> 
 <button class="btn btn-primary addSupervisor" type="button">Add new  
 user</button>

  </form>

你能看出这不起作用的任何原因吗?

【问题讨论】:

  • 调试它 - 作为开始 - var_dump($row);everytime 你使用它。除此之外,md5 不被认为是一种安全的方法,你会在 SO 上找到一些高质量的文章。
  • 您是否启用了display_errorserror_reporting(E_ALL)
  • hmm..button 不提交表单
  • @redreggae - 确实如此。 OP,你需要在这里&lt;input type="submit" value="Add new user" class="whatever" /&gt;
  • @user1830632:你初始化$dbh对象了吗?我猜这可能在“dbsettings.php”中,但不在您提供的代码中。

标签: php mysql database forms


【解决方案1】:

添加到顶部以强制错误,以防您的设置以某种方式禁用它:

error_reporting(E_ALL);
ini_set('display_errors', 1);

另外,您似乎正在第二次调用 session_start()(在评论发送电子邮件给用户之后),也应该看看。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 2011-01-30
    • 2011-12-16
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 2022-11-07
    相关资源
    最近更新 更多