メールアドレスだけだったときに使っていた単純なメールリストがありますが、名前の列を追加することにしましたが、何が問題なのかわかりません。
ユーザーがフォームを送信すると、電子メール アドレスが電子メール列に追加されますが、名前列は空白になります。また、毎回新しい空白のテーブル行を追加しています。
これがフォームのコードです....
<form id="addressForm" action="index.php" method="get">
<p>
<input class="formname" type="text" name="name" id="name" value="Your Name" onfocus="this.value = this.value=='Your Name'?'':this.value;" onblur="this.value = this.value==''?'Your Name':this.value;">
<input class="formemail" type="text" name="address" id="address" value="Your E-mail" onfocus="this.value = this.value=='Your E-mail'?'':this.value;" onblur="this.value = this.value==''?'Your E-mail':this.value;">
<input class="formsubmit" type="submit" value="Sign Up" />
</p>
<p id="response"><?php echo(storeAddress()); ?></p>
</form>
そして、ここにphpがあります...
<?
require_once("dbConstants.php");
function storeAddress() {
$message = " ";
// Check for an email address in the query string
if( !isset($_GET['address']) ){
// No email address provided
}
else {
// Get details from the query string
$name = $_GET['name'];
$address = $_GET['address'];
// Validate Address
if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/i", $address)) {
$message = "<strong>Error</strong>: An invalid email address was provided.";
}
else {
// Connect to database
$con = mysql_connect(DBHOST ,DBUSER, DBPASS);
mysql_select_db(DBNAME, $con);
// Insert email address into mailinglist table
$result = mysql_query("INSERT INTO mailinglist SET name='" . $name . "'");
$result = mysql_query("INSERT INTO mailinglist SET email='" . $address . "'");
if(mysql_error()){
$message = "<strong>Error</strong>: There was an error storing your email address.";
}
else {
$message = "Thanks for signing up!";
}
}
}
return $message;
}
?>
新しい行をphpmyadminに追加するとき、SQLクエリを使用しました
ALTER TABLE mailinglist ADD column_name name;
余分な行を作成するコードの何が問題なのか、誰か指摘できますか?