Хочу к обычной форме подключить Апи или смс шлюз. Пользуюсь сервисом флай смс и у них есть пример кода, который нужно подстроить под себя и вставить. Вот скрипт элементарной странички с формой: Код (Text): <?php function ValidateEmail($email) { $pattern = '/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i'; return preg_match($pattern, $email); } if ($_SERVER['REQUEST_METHOD'] == 'POST') { $mailto = 'blabla@mail.ru'; $mailfrom = isset($_POST['email']) ? $_POST['email'] : $mailto; $subject = 'Contact Information'; $message = 'Values submitted from web site form:'; $success_url = './success.html'; $error_url = './error.html'; $error = ''; $eol = "\r\n"; $max_filesize = isset($_POST['filesize']) ? $_POST['filesize'] * 1024 : 1024000; $boundary = md5(uniqid(time())); $header = 'From: '.$mailfrom.$eol; $header .= 'Reply-To: '.$mailfrom.$eol; $header .= 'MIME-Version: 1.0'.$eol; $header .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'.$eol; $header .= 'X-Mailer: PHP v'.phpversion().$eol; if (!ValidateEmail($mailfrom)) { $error .= "The specified email address is invalid!\n<br>"; } if (!empty($error)) { $errorcode = file_get_contents($error_url); $replace = "##error##"; $errorcode = str_replace($replace, $error, $errorcode); echo $errorcode; exit; } $internalfields = array ("submit", "reset", "send", "captcha_code"); $message .= $eol; $message .= "IP Address : "; $message .= $_SERVER['REMOTE_ADDR']; $message .= $eol; foreach ($_POST as $key => $value) { if (!in_array(strtolower($key), $internalfields)) { if (!is_array($value)) { $message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol; } else { $message .= ucwords(str_replace("_", " ", $key)) . " : " . implode(",", $value) . $eol; } } } $body = 'This is a multi-part message in MIME format.'.$eol.$eol; $body .= '--'.$boundary.$eol; $body .= 'Content-Type: text/plain; charset=ISO-8859-1'.$eol; $body .= 'Content-Transfer-Encoding: 8bit'.$eol; $body .= $eol.stripslashes($message).$eol; if (!empty($_FILES)) { foreach ($_FILES as $key => $value) { if ($_FILES[$key]['error'] == 0 && $_FILES[$key]['size'] <= $max_filesize) { $body .= '--'.$boundary.$eol; $body .= 'Content-Type: '.$_FILES[$key]['type'].'; name='.$_FILES[$key]['name'].$eol; $body .= 'Content-Transfer-Encoding: base64'.$eol; $body .= 'Content-Disposition: attachment; filename='.$_FILES[$key]['name'].$eol; $body .= $eol.chunk_split(base64_encode(file_get_contents($_FILES[$key]['tmp_name']))).$eol; } } } $body .= '--'.$boundary.'--'.$eol; if ($mailto != '') { mail($mailto, $subject, $body, $header); } header('Location: '.$success_url); exit; } ?> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>Безымянная страница</title> <meta name="generator" content="WYSIWYG Web Builder 9 - http://www.wysiwygwebbuilder.com"> <style type="text/css"> body { font-size: 8px; line-height: 1.1875; margin: 0; padding: 0; background-color: #FFFFFF; color: #000000; } </style> <style type="text/css"> a { color: #0000FF; text-decoration: underline; } a:visited { color: #800080; } a:active { color: #FF0000; } a:hover { color: #0000FF; text-decoration: underline; } </style> <style type="text/css"> #wb_Form1 { background-color: #FAFAFA; border: 0px #000000 solid; } #wb_Text1 { background-color: transparent; border: 0px #000000 solid; padding: 0; text-align: left; } #wb_Text1 div { text-align: left; } #Editbox1 { border: 1px #A9A9A9 solid; background-color: #FFFFFF; color :#000000; font-family: Arial; font-size: 13px; text-align: left; vertical-align: middle; } #wb_Text2 { background-color: transparent; border: 0px #000000 solid; padding: 0; text-align: left; } #wb_Text2 div { text-align: left; } #Editbox2 { border: 1px #A9A9A9 solid; background-color: #FFFFFF; color :#000000; font-family: Arial; font-size: 13px; text-align: left; vertical-align: middle; } #Button1 { border: 1px #A9A9A9 solid; background-color: #F0F0F0; color: #000000; font-family: Arial; font-size: 13px; } </style> </head> <body> <div id="wb_Form1" style="position:absolute;left:0px;top:0px;width:283px;height:120px;z-index:5;"> <form name="contact" method="post" action="<?php echo basename(__FILE__); ?>" enctype="multipart/form-data" id="Form1"> <div id="wb_Text1" style="position:absolute;left:10px;top:15px;width:43px;height:16px;z-index:0;text-align:left;"> <span style="color:#000000;font-family:Arial;font-size:13px;">Name:</span></div> <input type="text" id="Editbox1" style="position:absolute;left:63px;top:15px;width:198px;height:23px;line-height:23px;z-index:1;" name="name" value=""> <div id="wb_Text2" style="position:absolute;left:10px;top:45px;width:43px;height:16px;z-index:2;text-align:left;"> <span style="color:#000000;font-family:Arial;font-size:13px;">Tel.</span></div> <input type="text" id="Editbox2" style="position:absolute;left:63px;top:45px;width:198px;height:23px;line-height:23px;z-index:3;" name="Telefon" value=""> <input type="submit" id="Button1" name="" value="Send" style="position:absolute;left:63px;top:75px;width:96px;height:25px;z-index:4;"> </form> </div> </body> </html> И вот пример, который дает сервис : Код (Text): <?php // iconv используется для корректного перекодирования кириллических сообщений в UTF-8 // для тех, кто изначально работает с UTF-8 ¬преобразование делать не нужно. $text = iconv('windows-1251', 'utf-8', htmlspecialchars('Заметьте, что когда герой фильма подписывает договор с Сатаной, он не подписывает копию договора и не получает ее.')); $description = iconv('windows-1251', 'utf-8', htmlspecialchars('Моя первая рассылка')); $start_time = “AUTO”; //отправить немедленно $end_time = “AUTO”; // автоматически рассчитать системой $rate = 1; // скорость отправки сообщений (1 = 1 смс минута). Одиночные СМС сообщения отправляются всегда с максимальной скоростью. $lifetime = 4; // срок жизни сообщения 4 часа $source = 'SMS'; // Alfaname $recipient = '380501234567'; $user = 'user'; $password = 'password'; $myXML = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; $myXML .= "<request>"; $myXML .= "<operation>SENDSMS</operation>"; $myXML .= ' <message start_time="'.$start_time.'" end_time="'.$end_time.'" lifetime="'.$lifetime.'" rate="'.$rate.'" desc="'.$description.'" source="'.$source.'">'."\n"; $myXML .= " <body>".$text."</body>"; $myXML .= " <recipient>".$recipient."</recipient>"; $myXML .= "</message>"; $myXML .= "</request>"; $ch = curl_init(); curl_setopt($ch, CURLOPT_USERPWD , $user.':'.$password); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_URL, 'http://sms-fly.com/api/api.php'); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml", "Accept: text/xml")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $myXML); $response = curl_exec($ch); curl_close($ch); // вывод результата в браузер для удобства чтения обрамлен в textarea echo '<textarea spellcheck="false" name="111" rows="25" cols="150">'; echo $response; echo '</textarea>';; ?> Ну я краем ухом слышал о программировании и поменял пример подстроив его под себя и свой аккаунт в сервисе. Но как бы я не возился с ним, как бы я не подставлял этот чёртов код , у меня все равно ничего не работает. И хотелось бы кончено в текст sms заключить переменную имени, а в телефон получателя - тот телефон, который он указал. Помогите пожалуйста с данной проблемой. Буду ооочень благодарен.
Так что конкретно не получается? В этом разделе помогают тем кто хочет научиться. Есть раздел "сделайте за меня" там помогают даже если ты ничего не хочешь делать. Ещё раздел free-lance за деньги.
Так я хочу научиться! Я так понимаю, что при нажатии кнопки выполняется функция. И что нужно создать отдельную функцию и прикрутить её к кнопке. Как это сделать я не пойму. Я вставлял код в уже сущетсвующию функцию ValidateEmail , но ничего не получается. Как не старался . Помогите пожалуйста. Заранее спасибо
так значит ни "сделай за меня", ни "фрилайнс" а "я хочу научиться". значит это в новички и давайте показывайте чем богаты, как "должно" работать, как работает и почему именно не работает.
Вы все такие странные. А смысл тогда с вашего форума и множества разделов, если всё чем могут помочь - это "читай учебник по php". Спасибо ребята ОГРОМНОЕ!!!! Выручили! Низкий вам поклон
Мы советуем почитать учебник только тем кто его не читал, ты думаешь как мы всё узнали? Прочитали тысячи страниц теории. Вот ты когда прочитаешь хотя бы книгу "php для новичков" на страниц 100-300 и если уже не смог решить свою задачу, то задавай вопрос. Вот тебе ответ: при формировании строки которая будет отправлена в виде смс можно с помощью конкатенации (переменная $text) вставить из формы имя и телефон плюс сообщение как ты и хотел. Данные из формы находятся в глобальном массиве $_POST где ключ массива будет имя элемента формы, например input. Форму отправляй методом POST.