Если они находятся в одном файле, у него все еще есть несколько проблем.
Вместо:
$ varEmail = ($ _POST ['formEmail']. mysql_real_escape_string);
Попробуйте:
$ varEmail = mysql_real_escape_string ($ _ POST ['formEmail']);
Это должно привести код к части mysql, а затем он просто завершится.
Команду header можно использовать для перенаправления на страницу с благодарностью или просто для эха в случае успеха или неудачи.
Тогда ищите данные в вашей базе данных. :)
КСТАТИ:
Вы почти имели это в функции PrepSql, но она не используется.
Таким образом, вы можете сделать: $ varEmail = PrepSql ($ _ POST ['formEmail']);
Имейте в виду дополнительные '', хотя.
И ура за то, что он научился избегать данных на ранней стадии! :)
Edit:
Вы можете получить ошибку в строке ввода в форме, где написано <?$varEmail;?>
...
Там вы используете «короткий тег», то есть пропускаете «php» в:
<?php echo $myVar;?>
. Также отсутствует "эхо".
Вы можете просто удалить эту часть - поскольку вы получаете значение из пользовательского ввода.
Это повторяет мой ввод на моей машине (закомментированный sql для теста):
<?php
if($_POST['formSubmit'] == "Submit")
{
$errorMessage = "";
if(empty($_POST['formEmail']))
{
$errorMessage .= "<li>You forgot to enter your email</li>";
}
$varEmail = PrepSql($_POST['formEmail']);
//$varEmail = $_POST['formEmail'];
if(empty($errorMessage))
{
/*$db= mysql_connect("server","id","password");
if(!$db) die("Error connecting to MySQL database.");
mysql_select_db("tableName" ,$db);*/
echo $varEmail;
//$sql = "INSERT INTO emails(email) VALUES ('$varEmail')";
//mysql_query($sql);
//$sql = ("INSERT INTO emails(email) VALUES ('%s')".mysql_real_escape_string($varEmail));
//$results = mysql_query($sql);
//$sql = "INSERT INTO emails (emails)"
//. "VALUES ('{$varEmail}');
//mysql_query($sql);
// echo "Details added";
// $_SESSION['status'] = 'success';
}
//header("Location: thankyou.html");
exit();
}
function PrepSQL($value)
{
// Stripslashes
if(get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// Quote
//this is how I should be doing the escape thing
//$value = "'" . mysql_real_escape_string($value) . "'";
$value = mysql_real_escape_string($value);
return($value);
}
if(!empty($errorMessage))
{
echo("<p>There was an error with your form:</p>\n");
echo("<ul>" . $errorMessage . "</ul>\n");
}
?>
<form id="emailForm" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" onSubmit="alert('Thank you. Your email has been added.')">
<label for='formEmail'>Sign up to be notified when we go live!</label><br/>
<input type="text" name="formEmail" maxlength="50" />
<input type="submit" name="formSubmit" value="Submit" />
</form>