Я новичок в PHP и MySql, и я пытался решить это в течение нескольких часов безрезультатно. Я пытаюсь создать список рассылки. После заполнения форм и нажатия submit данные просто не будут отображаться в таблице базы данных. Любая помощь приветствуется. Не знаю, как отлаживать, так что я тоже не получаю ошибку. Я после этой обучающей программы http://www.youtube.com/watch?v=HL884ugSL8cПроблема с отправкой данных в таблицу MySql - таблица остается пустой
mail.inc.php файл:
<?php
// adds information to the table
function add_user($firstname, $lastname, $email){
$firstname = mysql_real_escape_string($firstname);
$lastname = mysql_real_escape_string($lastname);
$email = mysql_real_escape_string($email);
$result = mysql_query("INSERT INTO 'users' ('firstname', 'lastname', 'email') VALUES ('{$firstname}','{$lastname}','{$email}')");
return ($result !== false) ? true : false;
}
//removes the given email address from the table
function remove_user($email){
$email = mysql_real_escape_string($email);
mysql_query("DELETE FROM 'users' WHERE 'email' = '{$email}'");
}
// sends a given message to all subscribed users
function mail_all($subject, $message, $headers){
$users = mysql_query("SELECT 'firstname', 'email' FROM 'users'");
while (($user = mysql_fetch_assoc($users)) !== false){
$body = "Hi, {$user['firstname']}\n\n{$message}\n\nUnsubscribe: ";
mail($user['email'], $subject, $body, $headers);
}
}
?>
signup.php файл:
<?php
include('core/init.inc.php');
// checks if all forms have been filled !!!!!!!
if (isset($_POST['firstname]'], $_POST['lastname'], $_POST['email'])){
$errors = array();
if (preg_match('/^[a-z]+$/i', $_POST['firstname']) === 0){
$errors[] = 'Your first name should contain letters only.';
}
if (preg_match('/^[a-z]+$/i', $_POST['lastname']) === 0){
$errors[] = 'Your last name should contain letters only.';
}
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false){
$errors[] = 'This email address does not appear to be valid';
}
if (empty($errors)){
add_user($_POST['firstname'], $_POST['lastname'], $_POST['email']);
}
}
?>
<form action="" method="post">
<p>
<label for="firstname">Firstname</label>
<input type="text" name="firstname" id="firstname" />
</p>
<p>
<label for="lastname">Lastname</label>
<input type="text" name="lastname" id="lastname" />
</p>
<p>
<label for="email">E-mail</label>
<input type="text" name="email" id="email" />
</p>
<p>
<input type="submit" value="Signup" />
</p>
</form>
init.inc.php файл содержит следующее:
<?php
mysql_connect('localhost','wd','wd'); //not bothered
mysql_select_db('leedsattractions');
$path = dirname(__FILE__);
include("{$path}/inc/mail.inc.php");
?>
И я добавил остальную часть файла mail.inc.php для первого встраивания наверх.
Если ваш учебник говорит вам использовать mysql_query, вам действительно нужно найти другой учебник. Функции mysql_ * устарели. Тем не менее, где код, который вы используете для вызова функции add_user. Вы уверены, что на самом деле что-то передаете? – Robbert
Вы передаете переменные $ _POST функции add_user? Кроме того, я надеюсь, что вы установили соединение с базой данных. Какие ошибки вы получаете? –
Где вы на самом деле используете эту функцию? – Ali