【问题标题】:PHP & MySQL form. Adding empty rowPHP & MySQL 形式。添加空行
【发布时间】:2011-12-08 20:12:43
【问题描述】:

我在将数据添加到 MYSQL 数据库时遇到了 PHP 问题:

<?php require("config/connection.php"); ?>
<?php require("includes/functions.php"); ?>

<?php
$username = $_POST['username'];
$password = $_POST['password'];

$error='';// zmienna do błędów

if(isset($_POST[submit])){



 if(trim($_POST[username])=='' || strlen(trim($_POST[username])) < 6 ||strlen(trim($_POST[username])) >12){


     $error.="Name must be between 6 ad 12 chars<br />";

 }  

}if($error==''){  // if no error, do a query

    $sql = @mysql_query("INSERT INTO users SET username=\"$username\", password=\"$password\"");




}

    else {

     echo "<span style=color:red>$error</span>";

    }   

    mysql_close($connection);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>

<body>
<h2>Add user</h2>

<form action="add.php" method="post">

<p>Name: <input type="text" name="username" id="username" /></p>
<p>Password: <input type="text" name="password" id="password" /></p>
<p> <input type="submit" value="submit  " name="submit" /></p>

</form> 

<a href="index.php">Cancel</a>

</body>
</html>

主要问题是当我输入用户名和密码时,我得到的是:

http://i.padsbanger.pl/img/cdf5b5p988ga

由于未知原因,它添加了一个空行,然后将我真正输入的内容添加到我的表单中。有什么帮助吗?

【问题讨论】:

  • 离题,但您必须使用 PDO 和参数化查询来保护您的数据库。不要获取或发布数据并将其放入您的查询中。
  • 添加@TimG -> 请阅读此回复SQL injection
  • 您没有向我们展示代码的正确部分。此代码不打印编辑/删除按钮。

标签: php mysql forms row


【解决方案1】:

您正在执行两次查询,一次是在页面加载时,一次是在提交时

$error='';
if(isset($_POST[submit])){
 if(trim($_POST[username])=='' || strlen(trim($_POST[username])) < 6 ||strlen(trim($_POST[username])) >12){
     $error.="Name must be between 6 ad 12 chars<br />";
 }  
}// closes if(isset   *** move this until after the next if statement ***

//this is run everytime as its outside the if(isset block
if($error==''){  // errors is initialised as '' so this will run
    $sql = @mysql_query("INSERT INTO users SET username=\"$username\", password=\"$password\"");
}

if(isset($_POST[submit])){ 应该是if(isset($_POST['submit'])){

SQL Injection - You should read this

【讨论】:

    猜你喜欢
    • 2016-11-15
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多