【发布时间】: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_errors和error_reporting(E_ALL)? -
hmm..
button不提交表单 -
@redreggae - 确实如此。 OP,你需要在这里
<input type="submit" value="Add new user" class="whatever" />。 -
@user1830632:你初始化
$dbh对象了吗?我猜这可能在“dbsettings.php”中,但不在您提供的代码中。