【问题标题】:HTML form data won't submit with PHP handling, do I need to enable remote access?HTML 表单数据不会通过 PHP 处理提交,我需要启用远程访问吗?
【发布时间】:2018-10-04 20:29:57
【问题描述】:

所以我制作了一个简单的表格并尝试发布到我在 GoDaddy Cpanel 上创建的数据库。我不确定我是否没有在服务器端启用某些东西,或者我只是在我的代码中做了一些愚蠢的事情。我点击提交提交我的表单,我得到“mysite.com 目前无法处理此请求”

这是我的 html 表单:

<form id="contactForm" action="formdb.php" method="post">

<div class="rGroup">

    <label for="Contact Name">Name: </label>
    <input type="text" name="Name" size="46"><br><br>
    <label for="email">Email:</label>
    <input type="email" name="Email" size="46"><br><br>
    <label for="Contact Number">Phone:</label>
    <input type="tel" name="Phone"><br><br>
    <label for="interest">Interested in:</label><br><br>
    <input type="radio" name="Interest" value="WebDev" checked>Web Development<br>
    <input type="radio" name="Interest" value="SoftDev">Software Development <br>
    <input type="radio" name="Interest" value="Other">Other<br><br><br>
    <label for="Message">Comments:</label><br>
    <textarea name="Message" form="contactForm" rows="8" cols="50" 
    placeholder="Brief description, please submit as rendered."></textarea>
    <input id="submitButt" type="submit" value="Submit">

</div>

</form>

还有我的 php 来处理表单:

<?php
//Make Database connection.
$dbhost = "localhost";
$dbuser = 'user';
$dbpass = 'password';
$dbname = "InterestedContacts";
$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);

if(mysqli_connect_errno()){
    die("Database connection failed: " .
    mysqli_connect_error() . ")"
    );
}

//Perform insert of data
$Name = $_POST['clientName'];
$Phone = $_POST['Phone'];
$Email = $_POST['Email'];
$Message = $_POST['Message'];
$Interest = $_POST['Interest'];

//Sanitize data and add escape string
$Name = mysqli_real_escape_string($connection, $Name);
$Phone = mysqli_real_escape_string($connection, $Phone);
$Email = mysqli_real_escape_string($connection, $Email);
$Message = mysqli_real_escape_string($connection, $Message);
$Interest = mysqli_real_escape_string($connection, $Interest);

$query = "INSERT INTO Prospects (clientName, Email, Phone, Message, Interest)
            VALUES ('" .$_POST["clientName"]."','".$_POST["Email"]."','".$_POST["Phone"]."','".$_POST["Message"]."','".$_POST["Interst"]."')";

            $result = mysqli_query($connection, $query);
            //Test to see if query had error_get_last
            if($result){
                //SUCCESS
                header('Location: thankyou.html');
            }else{
                //FAILURE
                die("Database query failed. " . mysqli_error($connection));
            }
            ini_set('display_errors', 1); error_reporting(-1);
            mysqli_close($connection);
?>

更新:我将 PHP 代码更新为现在的代码,我安装了 PHPStorm,但也无法连接到我的数据库来测试文件,我一直被告知我的用户名和密码不正确,但它绝对不是。

【问题讨论】:

    标签: php mysql phpmyadmin cpanel


    【解决方案1】:

    您发布的代码中有一些错误。

    $dbpass = "password"; // add semi colon
    

    $Interest = $_POST['Interest']; // angle brace not flower brace
    

    在下面的查询中,您有一个额外的单引号将其删除。

    $query = "INSERT INTO Prospects (Name, Phone, Email, Message)
                VALUES ('".$_POST["Name"]."','".$_POST["Phone"]."','".$_POST["Email"]."','".$_POST["Interst"]."','".$_POST["Message"]."')";
    

    删除查询中添加的'

    试试这个并检查

    【讨论】:

    • 已修复这些问题,感谢您发现这一点,不幸的是我仍然遇到同样的错误。我创建的用户有权执行和插入,我是否需要添加其他内容或启用某些内容?
    • @ArmoredPigeon 检查您在查询中添加单引号的答案
    • 好的,我更新了上面的 PHP 代码,我安装了 PHPStorm,这样我就可以更容易地捕捉到我最初遇到的错误。我尝试通过 PHPStorm 接口连接到我的数据库,因此我可以运行代码以查看它是否可以工作,我什至无法通过 PHPStorm 连接它,它说密码不正确,但我确定它不是。
    • 如果您确定密码。然后检查主机名。如果它的本地主机或其他东西。如果你不知道该怎么做。登录到 phpmyadmin。检查它。即使主机名和密码都是正确的,那么最好的选择是创建新用户并设置新密码,然后您就可以使用用户用户详细信息。
    【解决方案2】:

    您需要在此处更新从 GoDaddy 获得的数据库凭据

    $dbhost = "localhost";
    $dbuser = "userInfo";
    $dbpass = "password";
    $dbname = "databasename";
    

    然后它应该成功地将数据保存到数据库中。希望它对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 2013-08-19
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多