METANIT.COM

Форма ввода php

Язык программирования PHP позволяет делать и обрабатывать пользовательские формы фактически любой сложности. В этой статье я научу вас создавать и обрабатывать формы.Для начала рассмотрим принцип работы форм и из чего они состоят. Форма представляет собой html код с различными полями ввода, которые заполняет пользователь. После нажатия кнопки отправки формы происходит передача значений всех полей формы обработчику этой формы. Отправка осуществляется методом POST или GET. По умолчанию используется GET. Рассмотрим простой пример,форма отправки имени,фамилии и номера телефона: Файл forma.html

В теге form указан путь к обработчику и метод передачи данных. Параметр enctype позволяет передавать через форму файлы. Например если нам нужно приложить к форме какой-нибудь документ-то этот атрибут обязателен. Тэги input — это элементу формы. Какой элемент-зависит от атрибута type. Теперь код обработчика. Файл action.php

Это простейший пример php формы.В реал конечно же никому не интересно заполнять форму лишь для того, чтобы потом посмотреть что же вы заполнили. Чаще всего полученную информацию заносят в базу данных,отправляют на почту или записывают в файл. Мы рассмотрим все три случая. Начнем с простого-запись в файл. Менять будем только обработчик.

Форма с записью результата в файл

Форма с записью результата в базу данных MySql

В случае с базой чуть посложнее. Тут очень важен момент безопасности. Данные необходимо профильтровать и лишь потом занести в БД, иначе злоумышленник может провести SQL инъекцию и уничтожить вашу базу данных.Обязательно используйте функцию mysql_real_escape_string. Пишем обработчик:

Читайте также:  Create website with css and html

Обратите внимание,что при использовании PDO наши переменные не проходили никакой проверки. Но это не является уязвимостью. Библиотека PDO самостоятельно очистит всё лишнее и выполнит запрос. Чтоб узнать результат запроса-допишите в конце следующий код:

Форма с отправкой e-mail средствами php

Опять правим форму. На этот раз экранируем ненужные символы для безопасного отображения в браузере. Используется для этого функция htmlspecialchars.

Вот и всё. Если делаете форму, доступную для посетителей сайта-обязательно используйте капчу. Качайте исходники, разбирайтесь. Пишите комментарии, задавайте вопросы.

Источник

Php mysql input type

В прошлой теме мы добавили в базу данных таблицу Users с тремя столбцами id, name, age со следующим определением:

CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER)

Теперь добавим в нее данные. Для добавления данных в MySQL применяется команда INSERT :

INSERT INTO название_таблицы (столбец1, столбец2, столбецN) VALUES ( значение1, значение2, значениеN)

Объектно-ориентированный подход

connect_error)< die("Ошибка: " . $conn->connect_error); > $sql = "INSERT INTO Users (name, age) VALUES ('Tom', 37)"; if($conn->query($sql)) < echo "Данные успешно добавлены"; >else< echo "Ошибка: " . $conn->error; > $conn->close(); ?>
connect_error)< die("Ошибка: " . $conn->connect_error); > $sql = "INSERT INTO Users (name, age) VALUES ('Sam', 41), ('Bob', 29), ('Alice', 32)"; if($conn->query($sql)) < echo "Данные успешно добавлены"; >else< echo "Ошибка: " . $conn->error; > $conn->close(); ?>

Процедурный подход

 $sql = "INSERT INTO Users (name, age) VALUES ('Tom', 37)"; if(mysqli_query($conn, $sql)) < echo "Данные успешно добавлены"; >else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); ?>
 $sql = "INSERT INTO Users (name, age) VALUES ('Sam', 41), ('Bob', 29), ('Alice', 32)"; if(mysqli_query($conn, $sql)) < echo "Данные успешно добавлены"; >else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); ?>

Добавление данных из формы HTML

В большинстве случаев добавляемые данные будут приходить из вне, например, присылаться в запросе пользователя. Рассмотрим добавление данных, отправленных из формы HTML. Для этого определим веб-страницу form.html , на которой определим следующий код:

     

Добавление пользователя

Имя:

Возраст:

Здесь определены два поля ввода. И по нажатию на кнопку их данные в запросе POST будут уходить скрипту create.php . Теперь определим сам скрипт create.php .

Объектно-ориентированный подход

connect_error)< die("Ошибка: " . $conn->connect_error); > $name = $conn->real_escape_string($_POST["username"]); $age = $conn->real_escape_string($_POST["userage"]); $sql = "INSERT INTO Users (name, age) VALUES ('$name', $age)"; if($conn->query($sql)) < echo "Данные успешно добавлены"; >else< echo "Ошибка: " . $conn->error; > $conn->close(); > ?>

Здесь мы проверяем, пришли ли с сервера данные в POST-запросе, которые имеют ключи «username» и «userage»:

if (isset($_POST["username"]) && isset($_POST["userage"])) 

Если эти данные имеются, то есть был отправлен post-запрос с данными на добавление, то мы получаем эти данные в переменные и добавляем их в бд. Но перед добавлением к этим данным применяется метод $conn->real_escape_string() , которая принимает сохраняемое значение и экранирует в нем спецсимволы, что позволяет защитить от SQL-инъекций.

В итоге после ввода данных и нажатия на кнопку данные в запросе POST уйдут скрипту create.php , который сохранит их в базу данных.

Добавление данных в MySQL в PHP

Процедурный подход

 $name = mysqli_real_escape_string($conn, $_POST["username"]); $age = mysqli_real_escape_string($conn, $_POST["userage"]); $sql = "INSERT INTO Users (name, age) VALUES ('$name', $age)"; if(mysqli_query($conn, $sql)) < echo "Данные успешно добавлены"; >else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); > ?>

Здесь применяется функция mysqli_real_escape_string() . Она служит для экранизации символов в строке, которая потом используется в запросе SQL. В качестве параметров она принимает объект подключения и строку, которую надо экранировать.

Источник

Ввод/вывод из полей input и textarea в бд mysql с помощью php

суть такая. из бд выводятся комментарии для редактирования. вывод работает нормально.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
 error_reporting(E_ALL & ~ E_NOTICE); // Устанавливаем соединение с базой данных require_once("../config.php"); // Формируем заголовок страницы и подсказку $titlepage="Админка\n \"Редактирование комментариев\"\n"; // Выводим шапку страницы include "../dump/adm_head.php"; if(isset($_GET['id_news'])) { $query = "SELECT * FROM comments WHERE id_news=".$_GET['id_news']; } $new = mysql_query($query); if (!$new) echo("Ошибка"); ?> 

Вернуться в администрирование новоcтей

$colorrow > ";}echo"

while($news = mysql_fetch_array($new)) { // Выводим комментарии echo "

".$news['putdate']."

.$news['com_name'].">

.$news['id_com']." title='Редактировать комментарий'>Редактировать

.$news['id_com']." title='Удалить комментарий'>Удалить

"
; ?>

А вот при вводе обратно в бд после редактирования говорит что поля пустые.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
 error_reporting(E_ALL & ~ E_NOTICE); include "../config.php"; if(empty($_POST['name'])) links("Отсутствует имя"); if(empty($_POST['body'])) links("Отсутствует информация"); $query = "UPDATE comments SET com_name='".$_POST['name']."', com_body='".$_POST['body']."' WHERE id_com=".$_GET['id_com']; if(mysql_query($query)) header("Location: editcomments.php?id_news=".$_POST['id_news']); else echo("Ошибка при добавлении комментария"); function links($msg) { echo "

".$msg."

"
; echo "

Вернуться к редактированию

"
; echo "

Администрирование новостей

"
; exit(); } ?>

php+mysql+textarea выполняется код в textarea
Здравствуйте проблема вот в чём Я вывожу в printf код <textarea name="text".

Ввод/вывод данных MySQL PHP
Сделал форму ввода формой вывода данных с БД(MySQL), в value прописал данные с БД(<input name='$w'.

ВЫборка mysql с помощью input type='text'
есть список параметров который надо вводить в ручную. значение расхода топлива в городе от.

PHP вывод в textarea
Всем привет. Как сделать кнопку которая будет выводить в textarea то что мне надо? Допустим.

Я так понял что ты передаешь данные методом GET а проверяешь POST. Что бы проверять POST и отправлять данные с помощью ссылки, нужно будет создать форму, а ссылке с помощью JAVASCRIPT создать имитацию кнопки submit

, где action, путь к обработчику, а method метод, которым передаешь данные формы post/get.

$action1 = "editcomment.php?id_com="$news['id_com']"; $action2 = "delcomment.php?id_com="$news['id_com']; $action1 method=post> $action2 method=post>
$action1 = "editcomment.php?id_com=".$news['id_com'];
form name=form2 enctype='multipart/form-data' action=".$action2." method=post>

но вообще, путь сразу прописывается,
ведь твоя форма постоянна, как и ее обработчик

form action="/ff/obr.php" method="post">
editcomment.php?id_com=".$news['id_com']
$action1 = "editcomment.php?id_com= ";

Добавлено через 11 минут
если сделаешь форму вот так, Она передаст нужные тебе параметры как ты хочешь

1 2 3 4 5 6 7 8 9 10 11 12 13
 $news = array( id_com => sss ); print"  ' />    "; ?>

Страница
editcomments.php

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
 error_reporting(E_ALL & ~ E_NOTICE); // Устанавливаем соединение с базой данных require_once("../config.php"); // Формируем заголовок страницы и подсказку $titlepage="Админка\n \"Редактирование комментариев\"\n"; // Выводим шапку страницы include "../dump/adm_head.php"; if(isset($_GET['id_news'])) { $query = "SELECT * FROM comments WHERE id_news=".$_GET['id_news']; } $new = mysql_query($query); if (!$new) echo("Ошибка"); ?> 

Вернуться в администрирование новоcтей

$colorrow > ";}echo"

while($news = mysql_fetch_array($new)) { // Выводим комментарии echo "

".$news['putdate']."

.$news['com_name'].">

.$news['id_com']." title='Редактировать комментарий'>Редактировать

.$news['id_com']." title='Удалить комментарий'>Удалить

"
; ?>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
 error_reporting(E_ALL & ~ E_NOTICE); include "../config.php"; if(empty($_POST['name'])) links("Отсутствует заголовок"); if(empty($_POST['body'])) links("Отсутствует информация"); $query = "UPDATE comments SET com_name='".$_POST['name']."', com_body='".$_POST['body']."' WHERE id_com=".$_GET['id_com']; if(mysql_query($query)) header("Location: editcomments.php?id_news=".$_GET['id_news']); else echo("Ошибка при добавлении комментария"); function links($msg) { echo "

".$msg."

"
; echo "

Вернуться к редактированию

"
; echo "

Администрирование новостей

"
; exit(); } ?>

Действие 2 удаление комментария
delcomment.php

 error_reporting(E_ALL & ~ E_NOTICE); require_once("../config.php"); if(!preg_match("|^[\d]+$|",$_GET['id_news'])) echo("Ошибка при обращении к блоку новостей"); $query = "DELETE FROM comments WHERE id_com=".$_GET['id_com']; if(mysql_query($query)) header("Location: index.php"); else echo("Ошибка при обращении к блоку новостей"); ?>

Проблема. Из полей name и body не передается текст. распознает как пустые поля.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

 error_reporting(E_ALL & ~ E_NOTICE); // Устанавливаем соединение с базой данных require_once("../config.php"); // Формируем заголовок страницы и подсказку $titlepage="Админка\n \"Редактирование комментариев\"\n"; // Выводим шапку страницы include "../dump/adm_head.php"; if(isset($_GET['id_news'])) { $query = "SELECT * FROM comments WHERE id_news=".$_GET['id_news']; } $new = mysql_query($query); if (!$new) echo("Ошибка"); ?> 

Вернуться в администрирование новоcтей

$colorrow > .$news['id_com']."/> ";}echo"

while($news = mysql_fetch_array($new)) { // Выводим комментарии echo "

".$news['putdate']."

.$news['com_name']." /> \"Редактировать\"/> \"Удалить\"/>
"
; ?>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
 error_reporting(E_ALL & ~ E_NOTICE); include "../config.php"; if(isset($_POST['edit'])){ if(empty($_POST['name'])) links("Отсутствует заголовок"); if(empty($_POST['body'])) links("Отсутствует информация"); $query = "UPDATE comments SET com_name='".$_POST['name']."', com_body='".$_POST['body']."' WHERE id_com='".$_POST['idcom']."'"; if(mysql_query($query)) header("Location: editcomments.php?id_news=".$_GET['id_news']); else echo("Ошибка при добавлении комментария"); function links($msg) { echo "

".$msg."

"
; echo "

Вернуться к редактированию

"
; echo "

Администрирование новостей

"
; exit(); } } if(isset($_POST['delet'])) if(!preg_match(" ?>

Ввод данных в Input и их последующий вывод на странице
Добрый день. Только начал осваивать MVC. Осваиваю по оф документам и сайту metanit.com Под.

Ввод данных с помощью формы, проведение каких-либо расчетов с помощью Excel и вывод данных в форму
Разработать одну - две электронные формы по теме и запрограммировать их с помощью языка VBA.

Вывод в mysql из нескольких полей
$result = @mysql_query("SELECT ID,category,status FROM $textable WHERE category = ''inomarki'' and.

Реализовать ввод и вывод полей структуры
Здравствуйте ещё раз. Тут во второй лабе не могу понять как реализовать ввод и вывод полей.

Ввод с клавиатуры полей записи и вывод
Как зделать ввод записи с клавиатуры и потом вывод на экран? вот мой код: model small stack.

Php+mysql подсчёт суммы произведений полей таблицы
Друзья, был бы искренне благодарен, если кто-нибудь поможет реализовать на php следующую задачу. .

Источник

Оцените статью