0

ユーザーがフォームで送信したデータを、私が持っている MySQL データベースに入れようとしていますが、理解できないようです! 私はどこでも検索し、インターネットで見つけたいくつかのphpコードをコピーしましたが、それでもデータをデータベースに入れていません!

ここに私のHTMLフォームがあります:

<form action="Sendtodatabase.php" method="POST" name="EmailForm">

    First Name:<br>
    <input type="text" size="25" name="firstname"><br><br>
    Last Name:<br>
    <input type="text" size="25" name="lastname"<br><br><br>
    Email:<br>
    <input type="text" size="25" name="email"<br><br><br>
    Telephone Number:<br>
    <input type="text" size="25" name="telephone"<br><br><br>
    <input type="submit" value="Submit">

</form>

そして私のPHPファイル:

<?php
$con=mysqli_connect(sql307.byethost33.com, b33_13775589, *********, b33_13775589_murdermystery);
if (mysqli_connect_errno($con)) {
    echo "Failed to connect to MySQL: ".mysqli_conect_error();
}
$sql="INSERT INTO Murder (FirstName, LastName, Email, Telephone) VALUES ('$_POST [firstname]', '$_POST [lastname]',
'$_POST [email]', '$_POST [telephone]')";
if (!mysqli_query($con,$sql)) {
    die('Error: '.mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);

ここで何が間違っていますか?ありがとうございました!

4

3 に答える 3

0

フォームを正しく作成していますか?

HTMLコード:

<form action="Sendtodatabase.php" method="POST" name="EmailForm">

        First Name:<br>
        <input type="text" size="25" name="firstname"><br><br>
        Last Name:<br>
        <input type="text" size="25" name="lastname"><br><br><br>
        Email:<br>
        <input type="text" size="25" name="email"><br><br><br>
        Telephone Number:<br>
        <input type="text" size="25" name="telephone"><br><br><br>
        <input type="submit" value="Submit">

</form>

PHPコード:

    <?php

    // validate to check if $_POST array have datas needed.
    print_r($_POST);
    exit;


    $con=mysqli_connect('sql307.byethost33.com', 'b33_13775589', '*********', 'b33_13775589_murdermystery');
    if (mysqli_connect_errno($con)) {
        echo "Failed to connect to MySQL: ".mysqli_conect_error();
    }
    $sql="INSERT INTO Murder (FirstName, LastName, Email, Telephone) VALUES (".$_POST ['firstname']", ".$_POST ['lastname'].",
    ".$_POST ['email'].", ".$_POST ['telephone'].")";
    if (!mysqli_query($con,$sql)) {
        die('Error: '.mysqli_error($con));
    }
    echo "1 record added";
    mysqli_close($con);
?>
于 2013-09-23T02:06:17.853 に答える
0

INSERT ステートメントに問題があるようです。PDO に切り替え、プリペアド ステートメントを使用してインジェクションを防止します。私はいくつかを助けるために追加mysqli_real_escape_stringしました。

$sql="INSERT INTO Murder (FirstName, LastName, Email, Telephone) VALUES (
    '" . mysqli_real_escape_string($_POST["firstname"])."', 
    '" . mysqli_real_escape_string($_POST["lastname"]) . "', 
    '" . mysqli_real_escape_string($_POST["email"]) . "', 
    '" . mysqli_real_escape_string($_POST["telephone"]) . "')";
于 2013-09-23T01:54:41.520 に答える
0

HTML 部分に投稿したコードから、各入力属性の名前の後に「>」を付けることを欠いています。修正を行ってください。コードはすでにスムーズに実行されます。

于 2013-09-23T02:56:50.207 に答える