Помогите со скритпом по отправке почты и проверки данных

melkij21

Новичок
Помогите со скритпом по отправке почты и проверки данных

Соовственно есть код ( приведён ниже ) . Я вырезал его из всего скрипта. Скрипт рабочий 100проц. проверенно.
PHP:
<?   }     function complete_mail() {
     $_POST['title'] =  substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
     $_POST['mess'] =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);  
     $_POST['name'] =  substr(htmlspecialchars(trim($_POST['name'])), 0, 30);  
     $_POST['tel'] =  substr(htmlspecialchars(trim($_POST['tel'])), 0, 30);     
     $_POST['email'] =  substr(htmlspecialchars(trim($_POST['email'])), 0, 50);     
     $_POST['kodas'] =  substr(htmlspecialchars(trim($_POST['kodas'])), 0, 50);     
     $_POST['surname'] =  substr(htmlspecialchars(trim($_POST['surname'])), 0, 50);  
           if (empty($_POST['name'])) 
          output_err(0);    

           if (empty($_POST['surname']))  
          output_err(1);     

           if (empty($_POST['tel'])) 
           output_err(2);    

           if (empty($_POST['kodas']))  
           output_err(3);             

           if (empty($_POST['title']))  
           output_err(4);                

           if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))     
           output_err(5);             
 
           if(empty($_POST['mess']))    
           output_err(6);      

    $mess = '   
Imia:'.$_POST['name'].' 
Familija:'.$_POST['surname'].'
Pocta:'.$_POST['email'].' 
Telefon:'.$_POST['tel'].'
Kod:'.$_POST['kodas'].' 
tema:'.$_POST['title'].'
Vopros:'.$_POST['mess'].' 
'.$_POST['mess'];  
$header = "Content-type: text/html; charset=\"windows-1251\"\r\n";  
$header .= "From: Test <[email protected]>\r\n";  
$header .= "Reply-to: [email][email protected][/email]\r\n";
                    $to = '[email protected]';
                    $from='[email protected]';  
mail($to, $_POST['title'], $mess, $header);
echo '<font color="#FFFFFF">Spasibo. zapros polucen.</font>';   }
Вопрос состоит вот в чём.... Есть $_POST['kodas'] . Т.е человек в полях вводит код данный ему, и надо сделать чтоб скрипт сверял ведённый код с кодами которые в базе записаны. Если код совподает то он отсылает почту заполнив все поля без каких либо проблем и код этот должен стерется из базы. Сообственно всё. Т.е надо :
1.Скрипт проверяет введённый пользователем код с базой и если совподает то скрипт продолжает работать без ошибки
2.После введения правельного кода он автоматический должен стерерться с базы, чтоб он не мог им больше воспользоватся.
3.При вводе плохих данных ему пишет ошибку что неправильный код.
Сообственно всё...

Буду благодарен если кто поможет ;)
 

Dovg

Продвинутый новичок
..Написал то же самое, что и два предыдущих автора :(
 

Фанат

oncle terrible
Команда форума
melkij21
не очень ясна суть твоего послания.
ты хочешь научиться работать с базой данных?
или хочешь, чтобы тебе написали код? к сожалению, на этом форуме нет раздела благотворительной помощи.
 

melkij21

Новичок
я хочу чтоб мне дали мысли с чего начать и как закончить. Мне в голову ничего не приходит.
Ну начало понятно, сделать отдельный файл подключения к базе и заинклудить в этой скрипте. это я сделал. т.е подключение с базой уже есть
 

Фанат

oncle terrible
Команда форума
теперь тебе надо сделать запрос к базе, который проверяет наличие в базе кода
 

Beavis

Banned
Re: Помогите со скритпом по отправке почты и проверки данных

Автор оригинала: melkij21
1.Скрипт проверяет введённый пользователем код с базой и если совподает то скрипт продолжает работать без ошибки
2.После введения правельного кода он автоматический должен стерерться с базы, чтоб он не мог им больше воспользоватся.
3.При вводе плохих данных ему пишет ошибку что неправильный код.
ты делай по порядку...
Если надо сверить код введенный пользователем с тем что в базе, надо выбрать код из базы и сравнить. Как получить данные из БД доступно написано на phpfaq.ru
Для стирания кода из базы - надо воспользоваться UPDATE (если код записан в отдельное поле), или DELETE (если целая строка относится именно к этому коду)
Ну а как выводить данные на экран (ошибку) - это я думаю ты и сам знаешь
 

melkij21

Новичок
понятно.спасибо
а все запросы к базе писать после
if (empty($_POST['kodas']))
output_err(3);
да?

-~{}~ 24.04.08 15:28:

$check = mysql_query("SELECT * FROM `keys` WHERE code ");
(дальше запарился как писать)........

А ниже наверно должна быть строчка
if (mysql_num_rows($check)==0) $error="Не правильный код!;

Посоветуйте плиз
 

Фанат

oncle terrible
Команда форума
PHP:
$kodas=mysql_real_escape_string($_POST['kodas']);
$query="SELECT * FROM `keys` WHERE code='$kodas'";
 

melkij21

Новичок
спасибо большое...
Но как то я делаю и у меня ошибку пишет
$kodas=mysql_real_escape_string($_POST['kodas']);
$query="SELECT * FROM `test` WHERE `txt`='$kodas'";
if (mysql_num_rows($query)==0)
output_err(7);

Ошибку пишет Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource не пойму почему
 

Beavis

Banned
melkij21
если ты в каждую строчку своего кода, который щас написал вникнешь - самому смешно станет)
в каком месте запрос к БД в приведенном коде происходит?
 

melkij21

Новичок
ну так помогите... я же и пишу тут чтоб вы мне подсказали как правильно сделать?
 

Beavis

Banned
Не, если ты не собираешься разбираться в коде сам, а тупо вытягиваешь по строчке готовое решение - то у тебя так ничего не получится :)
Я тебе подсказал - что ты забыл выполнить запрос к БД, теперь твоя очередь хоть что-то сделать :)
 

Фанат

oncle terrible
Команда форума
melkij21
если ты не умеешь работать с БД, то сразу бы так и сказал.
Я бы тебе ссылку дал
 

melkij21

Новичок
Beavis
Ты имеешь ввиду подключение к бд?
Подключение у меня черещ другой скрипт идёт через инклуд. т.е подключение с базой есть.
SELECT * FROM `test` WHERE `txt`='$kodas
а это чтоли не запрос?
 
Сверху