Вниз  Скрипты php для новичков
- 14.04.2012 / 00:06
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
limil, Это обычные формы, в учебниках про это подобно написано, в мобивики есть даже готовый скрипт с формами. Нужны теги <form></form> сказать метод и куда будет отдавать данные, далее либо текстареа либо текст поле <input /> указать имя, и тип , например кнопка отправить или поле ввода. <textarea></textarea> сказать имя можно высоту и ширину. Все это хтмл. Обработчик писать из данных массива $_POST
__________________
 Магистр Мёда
- 14.04.2012 / 18:06
limil
  Пользователь

limil 
Сейчас: Offline
Koenig, мобивики а где это?
- 14.04.2012 / 18:19
Naik
  Пользователь

Naik 
Сейчас: Offline
limil, Посмотри на главной
- 15.04.2012 / 19:27
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
limil, там примеры не для новичков. Лично я ниче не понял :-(
- 15.04.2012 / 20:29
boNNdaR
  Пользователь

boNNdaR 
Сейчас: Offline
Поддерживаю.
- 15.04.2012 / 20:32
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
boNNdaR, но и эта тема не оч нужна, хотя может я и ошибаюсь. Если скачать норм учебник, тог там есть свои примеры, которые подробно описаны. А если че не понятно тогда сюда http://annimon.com/forum/id36981
- 15.04.2012 / 20:41
boNNdaR
  Пользователь

boNNdaR 
Сейчас: Offline
Тема как раз то и мужна,только вот выложили пока что ровно 0 скриптов=)
- 15.04.2012 / 21:18
Serzhant
  Пользователь

Serzhant 
Сейчас: Offline
вот, к примеру, скрипт для отправки писем админу. заточен под dcms 7
  1. <?php
  2. //2012 для DCMS Seven
  3. include_once 'sys/inc/start.php';
  4. $doc = new document();
  5. $doc->title = "Письмо администратору" ;
  6. ?>
  7. <?
  8. // капча
  9.   function capcha($hard) {
  10.     switch($hard){
  11.     case 2:
  12.     $num = range(10, 99);
  13.     $first = mt_rand(0,88);
  14.     $second = mt_rand(0,88);
  15.     $len = 68;
  16.     $size = 6;
  17.     break;
  18.     case 3:
  19.     $num = range(100, 999);
  20.     $first = mt_rand(0,898);
  21.     $second = mt_rand(0,898);
  22.     $len = 86;
  23.     $size = 8;
  24.     break;
  25.     default :
  26.     $num = range(1, 9);
  27.     $first = mt_rand(0,8);
  28.     $second = mt_rand(0,8);
  29.     $len = 50;
  30.     $size = 4;
  31.     break;    
  32.     };
  33.     $sum = $num[$first] + $num[$second];
  34.     $_SESSION['capcha'] = $sum;
  35.     $img = $num[$first] . ' + ' . $num[$second];
  36.     if (function_exists('imagecreatetruecolor') && function_exists('imagecolorallocate') && function_exists('imagestring') && function_exists('imagejpeg') && function_exists('imagedestroy')) {
  37.     $im = imagecreatetruecolor($len, 20);
  38.     $text_color = imagecolorallocate($im, 255, 255, 255);
  39.     imagestring($im, 5, 4, 2, $img, $text_color);
  40.     imagejpeg($im, 'capcha.jpg', 85);
  41.     imagedestroy($im);
  42.  
  43.     return '<img src="capcha.jpg" alt="' . $sum . '"/> = <input type="text" size="' . $size . '" name="capcha"/><br/>';
  44.     } else {
  45.     return $img . ' = <input type="text" size="' . $size . '" name="capcha"/><br/>';    
  46.     }
  47.  
  48.     }
  49.     //проверяем введено ли значение картинки
  50.     if ($_POST['capcha'] == '')
  51.     {$hasError = true;
  52.   $doc -> msg('Вы не ввели проверочный код!');        
  53.     } elseif (
  54.     //проверяем верно ли введено значение картинки
  55.     $_POST['capcha'] != $_SESSION['capcha'])
  56.     {
  57.         $hasError = true;
  58.  $doc -> msg('Вы ввели неверный результат с картинки');        
  59.     }
  60.     unset($_SESSION['capcha']); // если это не дописать, то по кнопке назад можно дубликат отправить
  61.     //Если форма отправлена
  62.   if(isset($_POST['submit'])) {
  63.        //Проверка поля ТЕМА
  64.   if($_POST['title'] == '') {
  65.   $hasError = true;
  66.  $doc -> msg('Вы не выбрали тему сообщения');
  67.   }
  68.  //Проверка правильности ввода EMAIL
  69.   if($_POST['from'] == '')  {
  70.   $hasError = true;
  71.   $doc -> msg('Вы не ввели E-mail');
  72.   } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", $_POST['from'])) {
  73.   $hasError = true;
  74.   $doc -> msg('Вы ввели неправильный формат E-mail');
  75.   }
  76.   //Проверка наличия ТЕКСТА сообщения
  77.   if($_POST['mess'] == '') {
  78.   $hasError = true;
  79.   $doc -> msg('Вы не ввели сообщение');
  80.   }
  81.  //Если ошибок нет, отправить email
  82.   if(!isset($hasError))
  83.  {
  84.         // $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и  substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'] и $_POST['from'] все аналогично
  85.         $from = substr(htmlspecialchars(trim($_POST['from'])), 0, 100);
  86.         $title = substr(htmlspecialchars(trim($_POST['title'])), 0, 100);
  87.         $mess =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 500);
  88.         $to = "nik@mail.ru";// ваш e-mail
  89.         $kodir = "utf-8";
  90.         $header = "From: $from\nReply-To: $from\n";
  91.         $header .= "Content-Type: text/plain; charset=$kodir\n";
  92.         $header .= "MIME-Version: 1.0\n";
  93.         $header .= "Content-Transer-Encoding: 8bit\n\n";
  94.         mail ($to, $title, $mess, $header);
  95.         $doc -> msg('Спасибо! Ваше письмо отправлено.');
  96.  
  97.        }
  98.  
  99. }
  100. ?>
  101. <form action="" method="post">
  102.  
  103. <p><b>Введите текст сообщения</b> </p>
  104.  
  105.               E-mail<br />
  106.               <input type="text" name="from" size="30"></input><br />
  107.               Teма<br />
  108.               <select name="title">
  109.         <option value="">- Категории -</option>
  110.         <option value="Общие вопросы по работе сайта">Общие вопросы по работе сайта</option>
  111.         <option value="Жалобная книга">Жалобная книга</option>
  112.         <option value="Информация для администрации">Информация для администрации</option>
  113.         <option value="Прочие вопросы">Прочие вопросы</option>
  114.         </select><br />
  115.               Сообщение<br />
  116.               <textarea name="mess" rows="7" cols="30"></textarea>
  117.               <br />
  118.               <? echo capcha(1); ?>
  119.               <br />
  120.               <input type="submit" value="Отправить" name="submit"></input>
  121.               </form><br /><br />
вроде все работает :hack:
- 15.04.2012 / 21:21
boNNdaR
  Пользователь

boNNdaR 
Сейчас: Offline
Аааа,мой мозг!!!бжжж.....ж..
- 15.04.2012 / 21:23
Serzhant
  Пользователь

Serzhant 
Сейчас: Offline
вот так тоже будет работать. немного попроще.
  1. <?php
  2. //2012 для DCMS Seven
  3. include_once 'sys/inc/start.php';
  4. $doc = new document();
  5. $doc->title = "Письмо администратору" ;
  6. ?>
  7. <?
  8.       // $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и  substr($_POST['title'], 0, 100) - урезаем текст до 100 символов. Для переменных $_POST['mess'] и $_POST['from'] все аналогично
  9.         $from = substr(htmlspecialchars(trim($_POST['from'])), 0, 100);
  10.         $title = substr(htmlspecialchars(trim($_POST['title'])), 0, 100);
  11.         $mess =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 500);
  12.         $to = "nik@mail.ru";// ваш e-mail
  13.         $kodir = "utf-8";
  14.         $header = "From: $from\nReply-To: $from\n";
  15.         $header .= "Content-Type: text/plain; charset=$kodir\n";
  16.         $header .= "MIME-Version: 1.0\n";
  17.         $header .= "Content-Transer-Encoding: 8bit\n\n";
  18.         mail ($to, $title, $mess, $header);
  19.         $doc -> msg('Спасибо! Ваше письмо отправлено.');
  20.  
  21.         ?>
  22. <form action="" method="post">
  23.  
  24. <p><b>Введите текст сообщения</b> </p>
  25.  
  26.               E-mail<br />
  27.               <input type="text" name="from" size="30"></input><br />
  28.               Teма<br />
  29.               <select name="title">
  30.         <option value="">- Категории -</option>
  31.         <option value="Общие вопросы по работе сайта">Общие вопросы по работе сайта</option>
  32.         <option value="Жалобная книга">Жалобная книга</option>
  33.         <option value="Информация для администрации">Информация для администрации</option>
  34.         <option value="Прочие вопросы">Прочие вопросы</option>
  35.         </select><br />
  36.               Сообщение<br />
  37.               <textarea name="mess" rows="7" cols="30"></textarea>
  38.                <br />
  39.               <input type="submit" value="Отправить" name="submit"></input>
  40.               </form><br /><br />


Изменено Serzhant (15.04 / 21:25) (всего 1 раз)
Наверх  Всего сообщений: 71
Фильтровать сообщения
Поиск по теме
Файлы топика (1)