저는 PHP와 MySQL을 처음 사용하고 있으며, 아무런 도움이없이 몇 시간 동안이 문제를 해결하려고 노력해 왔습니다. 메일 링리스트를 만들려고합니다. 양식을 채우고 제출을 누르면 데이터는 데이터베이스 테이블에 나타나지 않습니다. 어떤 도움을 주셔서 감사합니다. 아직 디버깅 방법을 모르므로 오류가 발생하지 않습니다.MySql 테이블에 데이터를 게시하는 데 문제가 발생했습니다. 테이블은 비어 있습니다.
이<?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 파일이 포함 :이 튜토리얼을 http://www.youtube.com/watch?v=HL884ugSL8c
mail.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