Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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 不向数据库插入值:_Php_Html_Mysql - Fatal编程技术网

Php 不向数据库插入值:

Php 不向数据库插入值:,php,html,mysql,Php,Html,Mysql,我现在正在努力注册!区域,并希望在数据库成员的members\t表中插入新成员的数据,所有成员都在localhost上运行。我使用PHP和HTML的目的。此外,我在一个单独的文件中使用javaScript进行表单验证,它工作得非常好 PHP代码: <?php $user="root"; $password=""; $database="members"; $con = mysql_connect('localhost',$user,$password); if (!$con) {

我现在正在努力注册!区域,并希望在数据库成员的members\t表中插入新成员的数据,所有成员都在localhost上运行。我使用PHP和HTML的目的。此外,我在一个单独的文件中使用javaScript进行表单验证,它工作得非常好

PHP代码:

<?php
$user="root";
$password="";
$database="members";
$con = mysql_connect('localhost',$user,$password);
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}
mysql_select_db($database, $con) or die( "Unable to select database");
if(isset($_POST['sign_up']) && !empty($_POST['sign_up']))
{
    $sql = "INSERT INTO members_t('Name', 'Email', 'Password', 'Phone', 'Address', 'Sex', 'More') VALUES('".$_POST['username']."','".$_POST['email']."','".$_POST['passid_1']."','".$_POST['zip']."','".$_POST['address']."','".$_POST['sex']."','".$_POST['desc']."');";
    $resultDI = mysql_query($sql, $con) or die(mysql_error());
    mysql_close($con);
    echo "Successfolly run database query!";
}
else 
{
    echo("Failed to update database!!!");
}
?>
块。

尝试以下操作:

<form id="register" action="" method="post" name="registration" onSubmit="return formValidation();">
    <input type="text" name="username" size="50" />
    <input type="text" name="email" size="50" />
    <input type="password" name="passid_1" size="12" />
    <input type="password" name="passid_2" size="12" />
    <input type="text" name="zip" />
    <input type="text" name="address" size="50" />
    <input type="radio" name="sex" value="Male" /><span>Male</span>
    <input type="radio" name="sex" value="Female" /><span>Female</span>
    <textarea name="desc" id="desc" cols="40" rows="4"></textarea>
    <input class="button1" type="submit"  name="sign_up" value="Sign Up!" />
</form>

<?php
if (isset($_POST['sign_up']) && !empty($_POST['sign_up'])) {
    // escape all submitted data before inserting into database
    foreach ($_POST as $key => $value) {
        $_POST[$key] = mysql_real_escape_string(strip_tags($value));
    }

    $result = mysql_query("
        INSERT INTO members_t (Name, Email, Password, Phone, Address, Sex, More)
        VALUES ('{$_POST['username']}', '{$_POST['email']}', '{$_POST['passid_1']}', '{$_POST['zip']}', '{$_POST['address']}', '{$_POST['sex']}', '{$_POST['desc']}')
    ") or die(mysql_error());

    if (mysql_affected_rows() == 1) {
        echo "Successfully run database query!";
    } else {
        echo("Failed to update database!!!");
    }
}
?>

请注意,单选按钮的名称应与代码中的msex和fsex的性别相同。我在表单标签中添加了action属性,以及一些您可以很容易注意到的其他修改。

首先,我对代码进行了一些清理,使其看起来既美观又流畅。那我就把它拆了!您制作的空零件,看不到您想要验证它在您已经使用isset时是否为空的原因。 HTML:

我编写了php代码来检查所有字段是否都填充了数据。如果不是的话,网站就会死掉,并给他们一条错误消息。它在可以将任何内容设置到数据库之前就杀死了网站


-我在评论后对代码做了更多的修改,谢谢。顺便说一句。

首先,你只需要减少ifisset$\u POST['sign\u']&&!空的$\u POST['sign\u']到ifisset$\u POST['sign\u']或者如果$\u POST['sign\u']@pekka使用或diemysql\u错误是完全可以接受的显示错误的方式。如果失败,mysql_错误将显示在页面上……我认为我们需要查看您的JavaScript代码,看看这将如何影响向PHP代码提交数据。您的JavaScript是否确实将代码提交到PHP文件?因为您的表单没有通过action=attribute设置为@Pekka我同意您的说法,是的。但对于这样的测试目的,它应该是好的。不过,这是一个有效的建议。请注意,您的SQL极易受到SQL注入攻击。您应该始终转义或更好地绑定变量,而不是简单地将它们连接到字符串中。所有检查(如ifisset$username)都将始终返回true,因为变量是在//data:之后在脚本顶部定义和初始化的。您不需要空代码块,而是使用否定:if!isset$some_variable{do somethine here}您需要修复第8行到第15行:如何确保设置了$_POST['username']、$_POST['email']……呢?@Jocelyn再次感谢,我对代码做了更多更改,你能看一下吗?我用javaScript进行表单验证,除非所有字段都填好了,否则它永远不允许提交表单,这足够了吗?还是我也需要在服务器端进行检查?@user18889654用户仍然可以将你的表单复制到他们自己的pc上,并将数据发送到php文件,然后它会再次检查数据。所以我建议两者都使用:-我给单选按钮起了不同的名字,这样如果两者都没有被选中,我就可以签入javaScript。html中有没有一种方法允许检查组中几个单选按钮中的一个?使用checked with the male单选按钮使男性成为默认性别,如下所示:。这样,您将确保至少检查其中一个男性或女性。如果用户是女性,那么她将检查女性单选按钮,而不是PHP不工作的代码让我尝试做一些更改,并检查错误是:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,了解在第1行的“名称”、“电子邮件”、“密码”、“电话”、“地址”、“性别”、“更多”值“asdf”和“a”附近使用的正确语法。代码成功运行了上述代码中的第一个,但有一些小改动!如果您使用的是MySQL v-5.5.8,请不要在单引号中使用数据库字段属性,而是按原样使用它们。就像你应该在属性列表中写名字而不是“名字”。再次非常感谢你们所有人。。。
if(isset($_POST['sign_up']) && !empty($_POST['sign_up']))
<form id="register" action="" method="post" name="registration" onSubmit="return formValidation();">
    <input type="text" name="username" size="50" />
    <input type="text" name="email" size="50" />
    <input type="password" name="passid_1" size="12" />
    <input type="password" name="passid_2" size="12" />
    <input type="text" name="zip" />
    <input type="text" name="address" size="50" />
    <input type="radio" name="sex" value="Male" /><span>Male</span>
    <input type="radio" name="sex" value="Female" /><span>Female</span>
    <textarea name="desc" id="desc" cols="40" rows="4"></textarea>
    <input class="button1" type="submit"  name="sign_up" value="Sign Up!" />
</form>

<?php
if (isset($_POST['sign_up']) && !empty($_POST['sign_up'])) {
    // escape all submitted data before inserting into database
    foreach ($_POST as $key => $value) {
        $_POST[$key] = mysql_real_escape_string(strip_tags($value));
    }

    $result = mysql_query("
        INSERT INTO members_t (Name, Email, Password, Phone, Address, Sex, More)
        VALUES ('{$_POST['username']}', '{$_POST['email']}', '{$_POST['passid_1']}', '{$_POST['zip']}', '{$_POST['address']}', '{$_POST['sex']}', '{$_POST['desc']}')
    ") or die(mysql_error());

    if (mysql_affected_rows() == 1) {
        echo "Successfully run database query!";
    } else {
        echo("Failed to update database!!!");
    }
}
?>
<?php
$hostname = "";
$user = "root";
$password = "";
$database = "members";

$desc = $_POST['desc'];

$con = mysql_connect($hostname, $user, $password);
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}
mysql_select_db($database, $con) or die( "Unable to select database");
if(isset($_POST['sign_up']))
{
    if(isset($_POST['username'])){
        $username = $_POST['username'];
    }
    else {
        echo "The username is not set"; die;
    }
    if(isset($_POST['email'])){
        $email = $_POST['email'];
    }
    else {
        echo "The email is not set"; die;
    }
    if(isset($_POST['zip'])){
        $zip = $_POST['zip'];
    }
    else {
        echo "The zip code is not set"; die;
    }
    if(isset($_POST['address'])){
        $address = $_POST['address'];
    }
    else {
        echo "The gender is not set"; die;
    }
    if(isset($_POST['sex'])){
        $sex = $_POST['sex'];
    }
    else {
        echo "The gender is not set"; die;
    }
    if(isset($_POST['passid_1'])){
        $passid = $_POST['passid_1'];
    }
    else {
        echo "The password is not set"; die;
    }
    if(isset($_POST['passid_2'])){
        $passid2 = $_POST['passid_2'];
    }
    else {
        echo "The re-entered password is not set"; die;
    }

    if($passwid == $passid2){
        $correctpid = $passwid;
    }
    else {
        echo "The passwords do not match"; die;
    }
    $sql = "INSERT INTO members_t('Name', 'Email', 'Password', 'Phone', 'Address', 'Sex', 'More') VALUES('$username', '$email','$correctpid', '$zip', '$address', '$sex', '$desc');";
    mysql_query($sql) or die(mysql_error());
    mysql_close($con);
    echo "Successfolly run database query!";
}
else 
{
    echo("Failed to update database!!!");
}
?>