Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单的php表单将“1”插入所有字段,而不是varchar_Php_Mysql - Fatal编程技术网

简单的php表单将“1”插入所有字段,而不是varchar

简单的php表单将“1”插入所有字段,而不是varchar,php,mysql,Php,Mysql,所以我有一个简单的数据库,有两个字段,名字和电子邮件。varchars和数据库都是MyISAM。我让它工作并保存到数据库,但输入字段自动填充数字1。。。无论我在输入字段中输入什么,数据库都会在名称和电子邮件字段中保存1。这是因为php已经过时了吗?谢谢你,很抱歉,格式太糟糕了 这是我惊人的代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT

所以我有一个简单的数据库,有两个字段,名字和电子邮件。varchars和数据库都是MyISAM。我让它工作并保存到数据库,但输入字段自动填充数字1。。。无论我在输入字段中输入什么,数据库都会在名称和电子邮件字段中保存1。这是因为php已经过时了吗?谢谢你,很抱歉,格式太糟糕了

这是我惊人的代码:

<!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>Subscribe to our Newsletter</title>
</head>

<body>
    <?php
       $name = $_POST["name"] || "";
       $email = $_POST["email"] || "";
    ?>

<h2>Subscribe to our Newsletter</h2>

<form action="<?php echo htmlentities($_SERVER["PHP_SELF"]); ?>" method="post">
<p><strong>Name: </strong><input name="name" type="text" width="50" value="             
<?php echo $name; ?>" /></p>
<p><strong>Email: </strong><input name="email" type="text" width="50" value="<?php echo $email; ?>"/></p>
<p><input type="submit" name="submit" value="Submit" /></p>
</form>

<?php
if ($name == "" || $email == "") return;

$dbc = mysql_connect("localhost", "username", "password");

$db = mysql_select_db("databaseName");

$query = 'SELECT * FROM subscribers WHERE email = "' .     mysql_real_escape_string($email) . '"';

$result = mysql_query($query) || die("Could not run select query!");

if (mysql_num_rows($result) > 0) {

echo $email . " already exists in the subscriber database!";

}

else {

$query = 'INSERT INTO subscribers (id, name, email) VALUES (null,"' .     mysql_real_escape_string($name) . '", "' . mysql_real_escape_string($email) .    '")';

$result = mysql_query($query) || die("Error adding " . $email . " to the  database!");

echo $name . " at " . $email . " was successfully added to the database!";

}

?>

</body>

</html>
以下是教程:

试一试,麦克:

<!doctype html>
<head></head>
<title></title>

<body>
    <form action="<?php echo htmlentities($_SERVER["PHP_SELF"]); ?>" method="post">
    <p><strong>Name: </strong>
    <input name="name" type="text" width="50">     
    </p>
    <p><strong>Email: </strong>
    <input name="email" type="text" width="50" /></p>
    <p><input type="submit" name="submit" value="Submit" /></p>
    </form>
</body>
</html>

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$con = mysqli_connect('localhost', 'xxx', 'xxx', 'db');

if (!$con) {
    die('Connect Error: ' . mysqli_connect_error());
}

if( isset($_POST['submit']) 
    && !empty($_POST['name']) 
    && !empty($_POST['email']) ){

$checkemail = mysqli_real_escape_string($con, $_POST['email']);

$query = "SELECT * FROM subscribers WHERE email = '".$checkemail."'";

$result = mysqli_query($con, $query) or die(mysqli_error($con));

if (mysqli_num_rows($result) > 0) {

   echo $checkemail . " already exists in the subscriber database!";
   exit;
}



    $name = mysqli_real_escape_string($con, $_POST['name']);
    $email = mysqli_real_escape_string($con, $_POST['email']);

$sql = mysqli_prepare($con, "INSERT INTO subscribers 
                         (id, name, email)
                          VALUES (null,?,?)");
    $sql->bind_param("ss", $name, $email);
    $sql->execute();

if($sql){
   echo "Success!";
}

}
试一试,迈克:

<!doctype html>
<head></head>
<title></title>

<body>
    <form action="<?php echo htmlentities($_SERVER["PHP_SELF"]); ?>" method="post">
    <p><strong>Name: </strong>
    <input name="name" type="text" width="50">     
    </p>
    <p><strong>Email: </strong>
    <input name="email" type="text" width="50" /></p>
    <p><input type="submit" name="submit" value="Submit" /></p>
    </form>
</body>
</html>

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$con = mysqli_connect('localhost', 'xxx', 'xxx', 'db');

if (!$con) {
    die('Connect Error: ' . mysqli_connect_error());
}

if( isset($_POST['submit']) 
    && !empty($_POST['name']) 
    && !empty($_POST['email']) ){

$checkemail = mysqli_real_escape_string($con, $_POST['email']);

$query = "SELECT * FROM subscribers WHERE email = '".$checkemail."'";

$result = mysqli_query($con, $query) or die(mysqli_error($con));

if (mysqli_num_rows($result) > 0) {

   echo $checkemail . " already exists in the subscriber database!";
   exit;
}



    $name = mysqli_real_escape_string($con, $_POST['name']);
    $email = mysqli_real_escape_string($con, $_POST['email']);

$sql = mysqli_prepare($con, "INSERT INTO subscribers 
                         (id, name, email)
                          VALUES (null,?,?)");
    $sql->bind_param("ss", $name, $email);
    $sql->execute();

if($sql){
   echo "Success!";
}

}

$name=$_POST[name]| |;只要名称字段中有内容,则等于1。电子邮件也是如此。我不认为这是PHP版本,我认为这只是一个糟糕/不完整的教程。您需要做的是$name=$\u POST[name];等等,但首先使用isset将可执行文件包装在一个条件语句中,并对照提交按钮检查是否有任何元素被填充/保留为空。我几乎想用准备好的语句来完成一次完全重写。lolI重写了Mike。我在下面贴了一个答案。使用mysqli.$name=$_POST[name]||;只要名称字段中有内容,则等于1。电子邮件也是如此。我不认为这是PHP版本,我认为这只是一个糟糕/不完整的教程。您需要做的是$name=$\u POST[name];等等,但首先使用isset将可执行文件包装在一个条件语句中,并对照提交按钮检查是否有任何元素被填充/保留为空。我几乎想用准备好的语句来完成一次完全重写。lolI重写了Mike。我在下面贴了一个答案。用过mysqli_u2;。我们是金色的。非常感谢,先生@迈克,不客气,迈克。不过我犯了一个小错误,当我在发布后测试它时,给了我一个未定义的索引。“我会马上把它修好,让你知道的。”迈克,请重新装好;我用更正重写了这一切,不客气。我们是金色的。非常感谢,先生@迈克,不客气,迈克。不过我犯了一个小错误,当我在发布后测试它时,给了我一个未定义的索引。“我会马上把它修好,让你知道的。”迈克,请重新装好;我把它全部重写了一遍,不客气。