0

私はウェブ開発が初めてです。このコードでは、index.php のフォームがデータベースに情報を送信するフォームを作成しようとしています。私の list.php は、入力されたユーザーのリストを表示するはずです。ただし、私の index.php はデータをデータベースに送信しません。phpMyAdmin のデータベースが完全に空です。エラーがどこにあるのかわかりません。助けてください。//Config.php

<?php
$dbhost = 'mysql51-031.wc2.dfw1.stabletransit.com';
$dbuser = '549359_sargis';
$dbpass = '*********';
$dbname = '549359_sargis';
$table  = 'Contacts';

$connection = mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
$select_db = mysql_select_db($dbname,$connection) or die(mysql_error());
?>

// index.php

<!DOCTYPE html>
<hmtl>
<head>
    <title>Dashboard</title>

    <?php include("config.php"); ?>

    <link rel="stylesheet" type="text/css" href = "style.css">

<?php

if(isset($_POST['submit']))
{
    $firstname = $_POST['firstname'];
    $lastname  = $_POST['lastname'];
    $email     = $_POST['email'];
    $phone     = $_POST['phonenumber'];

    //$date      = date('l jS \of F Y h:i:s A');

    $sql = "INSERT INTO " . $table . " (firstname, lastname, email, phone_number, timesstamp) VALUES ('$firstname' , '$lastname' , '$email' , '$phonenumber', NOW())";
    $query = mysql_query($sql);

    if (!$query)
    {
        die('Error: ' . mysql_error());
    }

}

?>


</head>

<body>
        <a href="list.php">View List</a><hr/>

<form action="index.php" method = "POST">
    <div>
        First name: <input type ='text' id='firstname' name='firstname'/><br />
        Last name: <input type = 'text' id='lastname' name='lastname'/><br />
        Email: <input type = 'text' id='email' name='email'/><br />
        Phone Number: <input type = 'text' id='phone_number' name='phonenumber'/><br />
        <input type = 'submit' value='Add' />
    </div>
</form>

</body>
</html>
4

3 に答える 3

0

変数を中かっこで囲みます。

$sql = "INSERT INTO " . $table . " (firstname, lastname, email, 
                                    phone_number, timesstamp) VALUES 
           ('{$firstname}' , '{$lastname}' , '{$email}' , '{$phonenumber}',
           '{$date}')";
    $query = mysql_query($sql);

そして、それが役立つかどうかを確認してください。

于 2013-09-01T05:31:44.080 に答える
0

問題の内容を投稿したと仮定するとindex.php、フォームを送信したように見えますlist.phpが、データ処理コードはindex.php.

<form action="list.php" method = "POST">
             ^^^^^^^^^^

エラー メッセージが表示されず、テーブルにデータがないのも不思議ではありません。これは、コードが実行されていないためです。

したがって、データ処理コードをに移動するか、属性の値を空白list.phpのままにして自己送信フォームを作成しますaction

<form action="" method = "POST">
             ^^

list.phpデータの挿入が成功した後にリダイレクトします。

あなたtimestampがタイプの場合、datetimeまたはtimestampいずれかが変更される場合

$date = date('l jS \of F Y h:i:s A'); 

$date = date('Y-m-d h:i:s');

またはクエリ文字列を変更して、MySql のビルド関数を使用するNOW()CURRENT_TIMESTAMP、の同義語ですNOW()

$sql = "INSERT INTO " . $table . " (firstname, lastname, email, phone_number, timesstamp) 
        VALUES ('$firstname', '$lastname', '$email', '$phonenumber', NOW())";

補足:クエリ文字列を補間する代わりに、 またはのいずれかで準備済みステートメントを使用ます。現在の状態では、コードは SQL インジェクションに対して広く開かれており、非推奨の拡張機能を使用しています。mysqli_*PDOmysql_*

于 2013-09-01T05:33:30.180 に答える
0

1)name='submit'フォーム ボタンに追加します。のためif(isset($_POST['submit']))。この条件は常にfalseコード内にあります。

<input type='submit' name='submit' value='Add' />
                <!-- ^^^^ -->

2)フォーム アクションが に設定されaction="list.php"、フォーム データがこのファイルに送信されます。

データベース挿入クエリが正しいファイルにあることを確認してください: list.php. これは、if(isset($_POST['submit'])){ ... }ブロックを移動するlist.phpか、フォーム アクションをaction="index.php"(現在のファイル) に変更する必要があることを意味します。

<form action="index.php" method="post">
         <!-- ^^^^^^^^^ -->

3)これらの行をコードの先頭に追加して、エラーをオンにして何が起こっているかを検出します。

ini_set('display_errors',1);
error_reporting(E_ALL);

4)var_dump($_POST)フォーム データが正常に送信されたかどうかを確認するために追加します。したがって、出力はフォーム データによる配列である必要があります。そうでなければ、あなたは間違った方法をとっています。

if(isset($_POST['submit'])) {
    var_dump($_POST);

5) MySQL の日時形式はYYYY-MM-DD HH:MM:SS. $date現在のタイムスタンプを取得する代わりに MySQL メソッドを使用するCURRENT_TIMESTAMP()

$sql = "INSERT INTO " . $table . " 
    (firstname, lastname, email, phone_number, timesstamp) 
VALUES 
    ('$firstname', '$lastname', '$email', '$phonenumber', CURRENT_TIMESTAMP())";
于 2013-09-01T05:33:43.247 に答える