-1

こんにちは皆さん、フォームデータをデータベースに追加するときに問題が発生しています。何らかの理由でデータが挿入されません。ここに私のコードがあります:

<?php include_once 'secure/connect.php'; ?>
<?php 
$name = "Your Name";
$email = "Your Best Email";
$msg_to_user = "";
if ($_POST['name'] != ""){
    //Be sure to filter this data to deter SQL injection
    $name =  $_POST['name'];
    $name = stripslashes($name);
    $name = strip_tags($name);

    $email = $_POST['email'];
    $email = stripslashes($email);
    $email = strip_tags($email);

    $sql = mysql_query("SELECT * FROM newsletter WHERE email='$email'");
    $numRows = mysql_num_rows($sql);
    if(!$email){
        $msg_to_user = '<h4><font color="FF0000">Please Type an email address ' . $name . '</font></h4>';
    } else if ($numRows > 0) {
        $msg_to_user = '<h4><font color="FF0000">' . $email . ' is already in our system</font></h4>';
    } else {
        $sql_insert = mysql_query("INSERT INTO newsletter (name, email, dateTime) VALUES ('$name', '$email', now())") or die (mysql_error());
        $msg_to_user = '<h4><font color="0066FF">Thanks' . $name . ', You have been added successfully</font></h4>';
        $name = "";
        $email = "";
    }
}
?>

そして、私のhtmlフォームは次のようになります。

<div class="topForm">
<H3 style="text-align:center">SIGN UP FOR OUR NEWSLETTER</H3>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="name" value="<?php echo $name; ?>"/>
<input type="text" name="email" value="<?php echo $email; ?>"/><br/>
<input name="mySubmitBtn" type="submit"  value="SUBMIT">
<?php echo $msg_to_user; ?>
</form>
</div>

すべてのフィリップに事前に感謝します

これは私が今持っているもので、まだ何も機能していません...

<?php 
$name = "Your Name";
$email = "Your Best Email";
$msg_to_user = "";
if ($_POST['name'] != ""){

    include_once 'secure/connect.php';

    //Be sure to filter this data to deter SQL injection
    $name =  $_POST['name'];
    $name = stripslashes($name);
    $name = strip_tags($name);

    $email = $_POST['email'];
    $email = stripslashes($email);
    $email = strip_tags($email);

    $sql = mysql_query("SELECT * FROM newsletter WHERE email='$email'");
    $numRows = mysql_num_rows($sql);
    if(!$email){
        $msg_to_user = '<h4><font color="FF0000">Please Type an email address ' . $name . '</font></h4>';
    } else if ($numRows > 0) {
        $msg_to_user = '<h4><font color="FF0000">' . $email . ' is already in our system</font></h4>';
    } else {
        $sql_insert = mysql_query("INSERT INTO newsletter (name, email) VALUES ('".$name."', '".$email."')") or die (mysql_error());
        $msg_to_user = '<h4><font color="0066FF">Thanks' . $name . ', You have been added successfully</font></h4>';
        $name = "";
        $email = "";
    }
}
?>
4

3 に答える 3

1

他のエラーや不整合に関係なく。また、mysqliまたはpdoを使用する必要があることにも注意してください。しかし、phpはtime()

$sql_insert = mysql_query("
                           INSERT INTO newsletter 
                           (name, email, dateTime) 
                           VALUES 
                           ('$name', '$email', ".time().")
                         ");

または、タイムスタンプの代わりに日時が必要な場合は、date()関数を使用できます。

于 2012-12-20T12:02:16.883 に答える
1

コードから変更する必要がありnow()ます。そして、次のコードを使用します。

$time = time()  ;
$sql_insert = mysql_query("INSERT INTO newsletter (name, email, dateTime) VALUES ('".$name."', '".$email."', '".$time."' )") or die (mysql_error());
于 2012-12-20T12:22:37.560 に答える
0
  1. データベースに接続していることを確認してください。echo mysql_error();言うことを参照してください

  2. フォームが送信された場合は、値をキャッチしてサニタイズします

  3. クエリを挿入

ps: 以下が何をするか見てください:

if(isset($_POST['name']) ...

echo mysql_insert_id();

time() not now()

id挿入された新しいデータの

これらの手順に従い、データベースに接続している場合、コードは機能するはずです

于 2012-12-20T12:06:59.353 に答える