【问题标题】:I cannot insert my form information into my database I keep getting a 404 error我无法将表单信息插入我的数据库中,我不断收到 404 错误
【发布时间】:2015-10-31 14:50:25
【问题描述】:

您好,我在将表单信息插入数据库时​​遇到了一些问题。 我正在接收连接到数据库的回显,但是当单击提交时,我收到 404 错误。 任何帮助将不胜感激。提前谢谢!

<?php
    $host="localhost";
    $dbuser="root";
    $pass="******";
    $dbname="learn";
    $con = mysqli_connect ($host, $dbuser, $pass, $dbname);
    if (mysqli_connect_errno ())
    {
        die ("Connection Failed!" . mysqli_connect_error());
    }
    else
    {
    echo "Connected to database {$dbname} ";
    }

            if(isset($_POST['submit']))
        {
        $fname=$_POST ['fname'];
        $lname=$_POST ['lname'];
        $email=$_POST ['email'];
        $pswrd=$_POST ['pswrd'];

            $sql = $con->query ("INSERT INTO users ( fname, lname, email, pswrd,)
                     VALUES ( ' {$fname} ' , ' {$lname} ' , ' {$email} ' , ' {$pswrd} ' , ')" );
        }
?>

<!DOCTYPE html>
<html lang="en-US">
<head>
    <title>Signup</title>
    <meta charset="utf-8">
    <meta name="description" content="description of webpage">
    <meta name="keywords" content="keywords go here">
    <meta name="author" content="me">
    <link rel="stylesheet" href="css/style.css">
    <link rel="stylesheet" href="css/signup.css">
    <link rel="index" href="index.php">
    <link rel="icon" href="img/favicon.png" sizes="16x16" type="image/png">
</head>
<body>

    <div class="header">
        <div id="logo">
                <a href="index.php"><img src="img/logo.png" alt="logo" title="learnlogo"/></a>
        </div>
    </div>

        <div id="signupform">
            <form action="submit" method="post"><br>
                <input type="text" name="fname" placeholder="First name">
                <input type="text" name="lname" placeholder="Last name"><br><br>
                <input type="text" name="email" placeholder="Email address">
                <input type="password" name="pswrd" placeholder="Password"><br><br>
                <input type"submit" value="Submit">
            </form>
        </div>
<?php
    include ("inc/footer.php");
?>

【问题讨论】:

  • action="submit" 需要是处理action="thisform.php"等表单的url
  • 对不起,你能给我一个例子吗?我是新手。我将所有代码都放在 1 页上,所以我会将其设为 action="signup.php" 吗?

标签: php html sql mysqli xampp


【解决方案1】:

从您的 &lt;form&gt; 标记中删除 action="submit"。 action="{URL}" 属性“指定在提交表单时将表单数据发送到哪里” - 当发送回相同的 url 时不需要它。

例如改变:

<form action="submit" method="post"><br>

到:

<form method="post"><br>

【讨论】:

  • 非常感谢您修复了 404 错误,但我的用户表仍未更新。知道为什么吗?
  • 尝试将&lt;input type"submit" value="Submit"&gt; 更改为&lt;input type="submit" name="submit" value="Submit"&gt;
【解决方案2】:

下面,action 应该是处理代码的 php 文件的名称。在这种情况下,可能是 $_SERVER['PHP_SELF']。

<div id="signupform">
   <form action="submit" method="post"><br>

【讨论】:

    【解决方案3】:

    您应该在另一个文件中保存您的连接信息。

    创建一个名为 Config.php 只读的文件

    <?
    /* Attempt MySQL server connection. Assuming you are running MySQL
        server with default setting (user 'root' with no password) */
        $link = mysql_connect("localhost", "root", "******", "demo");
    
        // Check connection
        if($link === false){
            die("ERROR: Could not connect. " . mysql_connect_error());
        }
    
    ?>
    

    创建一个名为 Insert.php 的文件

        <?
        include 'Config.php';
        ?>
        <?
    
        // Escape user inputs for security
        $first_name = mysql_real_escape_string($link, $_POST['firstname']);
        $last_name = mysql_real_escape_string($link, $_POST['lastname']);
        $email_address = mysql_real_escape_string($link, $_POST['email']);
        $pswr = mysql_real_escape_string($link, $_POST['pswrd']);
    
        // attempt insert query execution
        $sql = "("INSERT INTO users ( fname, lname, email, pswrd,)
                         VALUES ( ' {$fname} ' , ' {$lname} ' , ' {$email} ' , ' {$pswrd} ' , ')" );
        if(mysql_query($link, $sql)){
            echo "Records added successfully.";
        } else{
            echo "ERROR: Could not able to execute $sql. " . mysql_error($link);
        }
    
        // close connection
        mysql_close($link);
        ?>
    

    您的表格:

    <div id="signupform">
                <form action="Insert.php" method="post"><br>
                    <input type="text" id="fname" name="fname" placeholder="First name">
                    <input type="text" id="lname" name="lname" placeholder="Last name"><br><br>
                    <input type="text" id="email" name="email" placeholder="Email address">
                    <input type="password" id="pswrd" name="pswrd" placeholder="Password"><br><br>
                    <input type"submit" value="Submit">
                </form>
            </div>
    

    【讨论】:

    • NP 希望对您有所帮助,并且您的连接字符串应该像 config.php 文件一样存储在 insert.php 页面顶部并调用包含。这样你就不必一直重写连接字符串了。
    • 已更新以将连接字符串移动到单独的文件。
    猜你喜欢
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多