0

フォームに関してはかなり弱いです。ここに欠けているものがあるようです。フォームが送信されたときにmysqlテーブルにデータが入力されていません。また、Web上の情報に関する限り、作成方法はたくさんあります。フォーム、phpにたくさん、mysqlにたくさんありますが、3つを同期するように機能するものは見つかりません。これが私が持っているものです。

フォーム(心配ありません。機能を停止するとすぐにスタイルが外部になります):

<div style="background-color:#424142; width:100%; margin-left:7%; margin-top:20px;">
    <form action="templates/tmpl_tmd022/scripts/post_subscription.php" method="post">
        <table width="100%" border="0">
            <tr>
                <td style="padding:5px; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;" colspan="2">Sign up now to recieve our free newsletter. </td>
            </tr>
            <tr>
                <td style="padding:5px; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;" width="30%">First name:</td>
                <td style="padding:5px; padding-left:0; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;" width="70%"><input type="text" name="fname"  /></td>
            </tr>
            <tr>
                <td style="padding:5px; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;">Last name:</td>
                <td style="padding:5px; padding-left:0; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;"><input type="text" name="lname" /></td>
            </tr>
            <tr>
                <td style="padding:5px; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;">Email:</td>
                <td style="padding:5px; padding-left:0; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;"><input type="text" name="email" /></td>
            </tr>
            <tr>
                <td style="padding:5px;">&nbsp;</td>
                <td style="padding:3px; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#000;"><input type="submit" value="Submit" style="color:000;"/></td>
            </tr>
        </table>
    </form>
</div>

PHP:

<?php
    require "connect_to_mysql.php"; 

    $fname=($_POST['fname']); 
    $lname=($_POST['lname']); 
    $email=($_POST['email']); 

    $sql="INSERT INTO subscriptions (lname, fname, email) 
    VALUES ('$_POST[lname]','$_POST[fname]','$_POST[email]')"; 

    mysql_close(); 

    header('Location: http://www.*websitehidden*.com/')
?>

含まれているconnect_to_mysql.phpファイルは、db名、dbユーザー、およびdbパスワードであり、テストされ、正常に機能しています。

私が犯している(おそらくばかげた)間違いについて誰かが何か考えを持っていますか?

4

2 に答える 2

4

クエリを実行するmysql_query()部分が含まれていません。

<?php
require "connect_to_mysql.php"; 

$fname = mysql_real_escape_string($_POST['fname']); 
$lname = mysql_real_escape_string($_POST['lname']); 
$email = mysql_real_escape_string($_POST['email']); 

$sql="INSERT INTO subscriptions (lname, fname, email) 
VALUES ('$lname','$fname','$email')"; 
mysql_query($sql);

mysql_close(); 

header('Location: http://www.*websitehidden*.com/')
?>

また、mysql_関数は使用しないでください。これらは古い方法であり、新しいmysqli_関数ほど高速で安全ではありません。

于 2012-06-12T16:43:59.637 に答える
1

SQLを修正してみてください。

$sql = "INSERT INTO subscriptions (lname, fname, email) 
        VALUES ('$lname','$fname','$email')"; 
mysql_query($sql);
于 2012-06-12T16:43:53.907 に答える