Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2011, 20:27   #1
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию Правильная работа с формами

Добрый день, я новичок в php и возник такой вопрос, как правильно работать с формами, т.е. допустим вот пример моего кода обработки полученных данных с формы:
Код:
/*Добавление статьи*/
	if ($action == 'st') {
	 	echo "<h3>Добавление статьи</h3>
	  <div align=\"justify\">";
	  $date = date("d M Y");
echo "<form action=\"index.php?page=list&do=states&action=stok\" method=\"POST\">
		Заголовок: <input name=\"name\" value=\"\" size=\"40\"><br>
		Текст статьи: <br>
		<textarea id=\"taf\" name=\"state\" rows=\"20\" cols=\"40\">
	    </textarea><br>
		Автор: <input name=\"autor\" value=\"".$fio."\" size=\"44\"><br>
		Дата: <input name=\"state_data\" value=\"".$date."\" size=\"46\"><br>
		Категория: <select name=\"razdel\" size = \"1\">";
		$res_select = "SELECT * FROM ".$sql_dop."categories ORDER BY id";
		if(!mysql_query($res_select)) {
			error(3,1,1);
		}
		$result = mysql_query($res_select);
		while ($row = mysql_fetch_row($result)) {
			echo "<option value = ".$row[0]." ";
			echo ">".$row[1]."</option>";
		}
		
		echo "</select><br>
		
		<input type=\"submit\" value=\"Добавить!\">	
	</form>
";
	echo "</div>";
}
как можно заметить, я напрямую перехожу к следующему событию, т.е. к добавлению в базу по данной ссылке: index.php?page=list&do=states&actio n=stok а как делать более менее правильно?
CodeNOT вне форума Ответить с цитированием
Старый 11.04.2011, 20:46   #2
MrJenika
Форумчанин
 
Аватар для MrJenika
 
Регистрация: 07.09.2009
Сообщений: 361
По умолчанию

а как же проверка введённых данных???
и зачем выводить форму через echo ? можно ведь просто закрыть php и написать в html .

2. Дату можно не писать в форме , потом когда вставляете в базу вместо переменной даты используют функцию NOW() - можете почитать о ней в гугле.

3, Проще вынести обработку и проверку данных в другой файл.

Я использовал что-то вроде такого :


Код:
$name = mysql_real_escape_string(strip_tags($_POST['word']));
 mysql_query(" INSERT INTO `название_таблицы` (name, date) VALUES ('$name',NOW())");

Последний раз редактировалось MrJenika; 11.04.2011 в 20:49.
MrJenika вне форума Ответить с цитированием
Старый 11.04.2011, 21:51   #3
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

вообще кто может показать пример как он работает с формами?
CodeNOT вне форума Ответить с цитированием
Старый 11.04.2011, 22:24   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от CodeNOT Посмотреть сообщение
вообще кто может показать пример как он работает с формами?
Да километры статей на эту тему написаны, + в книжках полно описаний и примеров...

Если вам и правда лень гуглить:
Работа с HTML-формами

Полезный сайт для начинающих
Andkorol вне форума Ответить с цитированием
Старый 11.04.2011, 23:08   #5
MrJenika
Форумчанин
 
Аватар для MrJenika
 
Регистрация: 07.09.2009
Сообщений: 361
По умолчанию

Файл с формой

Код:
<form action="postadd.php" method="post" class="note-form">
<label>Слово:</label>
<input type="text" name="word" id="word" value="" />
<label >Значение слова:</label>
<textarea name="val" id="val" cols="30" rows="10"></textarea>
<input type="submit" name="add" value="Add" class="green-button"/> 
</form>
Файл обработчик postadd.php

Код:
<?php
  include_once("config.php"); 
 
      // Добавление слова
      if (isset ($_POST['add'])){
          
             $word = mysql_real_escape_string(strip_tags($_POST['word']));
             $val = mysql_real_escape_string(strip_tags($_POST['val']));                     
             mysql_query(" INSERT INTO `slova` (word,val,dt)
                           VALUES ('$word','$val',NOW())");
             header('Location: index.php');
             exit;
    }
     else 
   {  
      header('Location: index.php');
       echo '<h3>Заполните поля</h3>';
      exit;
    }
?>
MrJenika вне форума Ответить с цитированием
Старый 12.04.2011, 12:34   #6
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

хм спасибо, понял)
CodeNOT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с формами sol1tary Общие вопросы по Java, Java SE, Kotlin 0 05.04.2011 21:02
Правильная работа скрола в панели. evilgeniuz Общие вопросы .NET 0 29.09.2010 00:17
Правильная работа условия if Andruha10 PHP 1 22.08.2010 21:23
Не правильная работа for .. to Neptunium Общие вопросы Delphi 7 05.04.2010 00:32
Правильная работа из под Win с прерываниями в МАСМ Stilet Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 10.06.2008 15:19