Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Код работает, прошу оценить с точки зрения применимости(безопасность, нагрузка и пр.) Вывод формы и запись данных в базу.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
HateIsMyFuel
Отправлено: 22 Апреля, 2013 - 00:39:30
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Вывод формы: Можно так с циклом и echo?

PHP:
скопировать код в буфер обмена
  1. echo "<html><head><title>  Form.php  </title>  </head>";
  2.  
  3. $fie = array("login" => "Логин", "name" => "Имя", "surname" => "Фамилия", "mail" => "Почта", "pass" =>"Пароль", "verpass" => "Подтверждение пароля");
  4.  
  5. echo "<form action = 'test_processing.php' method = 'POST'
  6. <table align = 'center' width = '40%' border = '0' cellpasing = '5'>";
  7. foreach($fie as $n => $v)// вывод формы с пустыми полями и значениями названий элементов массива $fie
  8. {
  9. echo "<p> <tr> <td> $v <input type = 'text' name='$n' value=''> </tr> </td>";
  10.  
  11. }
  12.  
  13.   echo "<p><input type = 'submit' name ='submit'>";
  14. }



Проверка на верность и запись в БД. Знаю, что mail нежелательно проверять с помощью preg_match, сделано для тренировки.

PHP:
скопировать код в буфер обмена
  1. if (!isset($_POST["submit"]))
  2. {
  3. include("r.php");
  4. }//если кнопка отправить не была нажата, то выводится форма.
  5.  
  6. else
  7. {
  8.  foreach($_POST as $nf => $vf)
  9.     if(empty($_POST[$nf]))
  10.     {      
  11.     $ef[$nf] = 'empty' ;//проверка на наличие пустых полей.
  12.     }
  13.  
  14.     else
  15.    {
  16.    if (($nf == 'name' or  $nf == 'surname') and !preg_match("/^[A-Za-zА-Яа-я]*+[A-Za-zА-Яа-я]*$/", $vf)) // Имя и фамлия только из букв.
  17.         {
  18.                 $bf[$nf] = 'BAD';
  19.                 }
  20.                 elseif (($nf == 'login' or $nf == 'pass' or $nf == 'verpass') and preg_match("/[^A-Za-zА-Яа-я0-9]/", $vf)) //  логин из букв и цифр
  21.                     {
  22.                   $bf[$nf] = 'BAD';
  23.                      }
  24.                    else
  25.                        {
  26.                           if ($nf == 'mail' and !preg_match("/^[A-Za-zА-Яа-я0-9]*@([A-Za-zА-Яа-я0-9]*)\.([A-Za-zА-Яа-я]*)$/", $vf)) //  Мейл
  27.                         {
  28.                                 $bf[$nf] = 'BAD';
  29.                                     }
  30.                        
  31.                           }     // если данные не соответствуют шаблону, они добавляются в массив.
  32.                      
  33.    
  34.           }  
  35.    
  36. if (@sizeof($ef) > 0 or @sizeof($bf) > 0)// проверка на наличие переменных в массиве
  37.  
  38. {
  39.  
  40. include("form.php"); //вывод формы, если поля были заполнены некорректно.
  41. die("Неверно введеные данные"); // и прерывания сценария, чтобы не было записи в БД.
  42. }
  43. else
  44. {
  45.     if(@$_POST['pass'] != @$_POST['verpass'])
  46.         {
  47.         echo "пароли не совпадают";
  48.         die("ERROR");
  49.         include("form.php");
  50.         die("Неверно введены пароли");// проверка на совпадение паролей и вывод формы в противном случае.
  51.         }
  52.      else
  53.          {
  54.          echo ' <h2> Введенные данные: </h2>';// ниже идет вывод данных поьзователя, т.е. массива $_POST, исключая переменную submit.
  55.          foreach($_POST as $q => $w)
  56.          if($q != 'submit')
  57.          {
  58.          echo "$q  -  $w<br /> ";
  59.          }
  60.          }
  61. }        
  62.  
  63.  
  64. echo '<br /> <br /><br /><h3> База данных: </h3> <br />';
  65.  
  66. // подключение к БД
  67. require_once "login.php";
  68.  
  69. $db_connect = mysql_connect($db_hostname, $db_username, $db_pass);
  70.  
  71. if(!$db_connect)
  72. {
  73. }
  74.  
  75.  
  76. mysql_select_db($db_dbname)
  77.  
  78. // Запись данных
  79.  
  80.  if (@isset($_POST['name']))
  81.  {
  82.    $query = "INSERT INTO data (login, name, surname, mail, pass)
  83.   VALUES (
  84.  '$_POST[login]',
  85.  '$_POST[name]',
  86.  '$_POST[surname]',
  87.  '$_POST[mail]',
  88.  '$_POST[pass]')";
  89.    $res = mysql_query($query);
  90.    if (!$res) die(mysql_error());
  91.   }
  92.  
  93.  
  94.   // вывод базы
  95.  
  96. $query_output = "SELECT * FROM data";
  97. $output = mysql_query($query_output);
  98.  
  99. if (!$output) die(mysql_error());
  100.  
  101. $rows = mysql_num_rows($output);
  102. for ( $i=0; $i<$rows; ++$i)
  103. {
  104. $row = mysql_fetch_row($output);
  105.  
  106. foreach ($row as $k => $v)
  107.     {
  108.     echo "$v <br />";
  109.     }
  110.         echo "<br /> <br />";
  111.         }
  112. mysql_close($db_connect);
  113. }



В общем если есть любые замечания относительно этого кода, буду рад услышать.
 
 Top
DeepVarvar Супермодератор
Отправлено: 22 Апреля, 2013 - 00:51:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB