そのため、ニュースレターのサインアップフォームのユーザー情報を保存しようとしています.XAMPPでは正常に機能しますが、ライブDB(GoDaddy)にデータを保存するのに問題があります. また、エラーステートメントをエコーアウトし、クエリが空であると言いましたが、理由がわかりません...これが私のコードです(メール複製テストもローカルで機能しましたが、明らかに機能しなくなりました):
<?php
//Start session
session_start();
//Log into the server
@ $db = mysql_pconnect("hostnamewashere", "usernamewashere", "pwwashere");
//Select the database desired
mysql_select_db("databasenamewashere");
//If no connection can be made, echo it out to the screen
if(!$db){
echo "Error: Could not connect to the database. Please try again later.";
exit;
}
//Retrieve data from form and create variables
$email = Trim(($_POST['email']));
$ip_orig = $_SERVER['REMOTE_ADDR'];
$ip = ip2long($ip_orig);
$date = date('Y-m-d');
$time = date('H:i:s');
//Validate data
if(empty($_POST['email'])) {
$_SESSION["errorMsg"] = "Please enter your email.";
Header("Location: index.php");
exit;
}
if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", ($_POST['email']))) {
$_SESSION["errorMsg"] = "Incorrect email format; please try again.";
Header("Location: index.php");
exit;
}
//Check to see that no duplicates exist in the database
$sql = "SELECT newsletter_email FROM Newsletter WHERE newsletter_email='".$email."'";
$result = mysql_query($sql);
if(empty($result)) {
$num_results = 0;
}else {
$num_results = mysql_num_rows($result);
}
if($num_results !== 0) {
$_SESSION["errorMsg"] = "Sorry, that email address is already in our database.";
Header("Location: index.php");
exit;
}
//Place into database
$sql = "INSERT INTO Newsletter(newsletter_email, newsletter_ip, newsletter_date, newsletter_time) VALUES('".$email."', '".$ip."', '".$date."', '".$time."')";
//Run query and get result back; shouldn't return anything
$result = mysql_query($sql);
//Redirect user to successful registration page
Header("Location: index.php");
$_SESSION["errorMsg"] = "Thanks! We will be in touch with you soon.";
exit;
//Close the database connection
mysql_close($db);
?>