Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Веб-программирование > PHP / MySQL

PHP / MySQL Создание динамических Веб-ресурсов

Ответ
 
Опции темы
Старый 01.12.2011, 17:19   #1
treycerok
Оператор ЭВМ
 
Аватар для treycerok
 
Регистрация: 11.11.2011
Адрес: Ростов-на-Дону
Сообщений: 41
Написано 9 полезных сообщений
(для 17 пользователей)
Смущение Мини пособие по php

Как то давно , точнее от 07.05.2010 оной даты загорелся написать учебник, но ...увы стало не хватать времени...
вот выкладываю то,что есть
p.s. данная статья была опубликована мною впервые и в последний раз лишь на одном сайта. Теперь и на этом сайте. =) надеюсь кому то будет полезна.


Начну я наверное писаать пособие по php .. Хотел давно мини учебничек написать, вот выдалась возможность. Буду изъясняться понятным языком для новичков, что бы сложное было лёгким...
В историю вдаваться не буду, но кратко скажу, основы заложил Расмус Лердорф.
Предназначен PHP в основном для обработки данных, перед тем как они в формате HTML поступают в браузер пользователя. Можно решать и другие задачи.
И так приступим(я надеюсь у вас уже установлен PHP и APACHE).


I глава.
-=ПОСТРОЕНИЕ СКРИПТА=-
PHP скрипты как и html странички можно писать через обычный блокнот, но я рекомендую найти EditPlus 3, ибо в нём есть подсветка синтаксиса, что очень помогает иногда при поиске ошибок.
Скрипт выглядит так(начинаться должен с "<?php" а заканчиваться "?>", всё что между этими обозначениями принимается как php сценарий )
<?php
PHP сценарий ;
?>
Простой пример php скрипта :
<?php
echo 'Hello';
?>
стоит сохранить с раширенем *.php, кидаем его в папку нашего сервера, запускаем, должно вывести - Hello.
Как видим из пример код вывел "Hello", то есть то что располагалось между кавычек после echo .
echo - функция вывода данных в браузер пользователя.(выодит не ттолько текст но и HTML код)
ПРИМЕР:
echo '<font color="blue">hello</font>';
каждая функция должна обязательно закончится ";".
Функция print эквивалентна echo , но работает медленне(разница не ошутима практически).
Выше везде исользуются одинарные кавычкифункции, можно и двойные.
ПРИМЕР:
<?php
echo "Hello";
?>
Когда мы используем у функции двойные кавычкм, то можно "безболезнено" вывести в браузер одинарную кавычку, но если вы используете в функции вывода одинарные кавычки и вывести хотите одинарную, придеться перед выводимой кавычкой прописать слэш.
ПРИМЕР:
<?php
echo ' Вот кавычка \' ';
?>
Иногда надо заккоментировать строку, для этого есть обозначения, что бы обработчик не принял коммент как код.
Вот примеры комментариев:
<?php
// тут лучше писать короткий коммент

# тут тоже короткий

/*
тут 
можно
длинный
комментарий
прописать
с переносом 
строки
*/
?>
вроде разобралсиь...


II глава.
-=МИР ПЕРЕМЕННЫХ=-
В любом скрипте, который выполняет определенную,значимую работу, есть переменные.
Переменную можно представить в жизни как коробу, в неё складываем данные,для жизни это книги,несем другу, он открывает коробку и получает информацию.
В скрипте же, в переменную заносится какое то значение и с помощью функции вывода показываем данные пользователю.
Перемення указывается так:
$имя_переменной
имя переменной не может содержать пробелов , могут содержать  латиницу, символ подчеркивания, и цифры!
напишем php сценарий для вывода слова...
<?php
$name
='Hello';// как видите принимант переменная значение при помощи знака ровно, и текст заключается в кавычки(функции кавычек как и у функции вывода)
echo $name;// вывод переменной происходить без заключения её в кавычки,но можно заключить , но только в двойные, если в одинарные тогда обработчик php посчитает переменную как обычный текст

// пишем код вывод в кавычках
echo '$name';// выведит - $name
echo "$name";// выведит - Hello
?>

Так же в переменную можно занести математический пример
$name=2*3+1;// если вывести в браузер, выдаст - 7. Думаю объяснять не надо :)
Переменные можно перезаписать и объединять.
<?php
$per
='Hello ';// заносим
$per='world';//изменяем
echo $per;// выведит - world
$per='Hello ';// заносим
$per.='world';// добавляем, что бы указать что мы добавляем данные к переменной , надо после её имени(или перед равно) поставить точку  "$per[b].[/b]"
echo $per;// выдаст - Hello world
?>
а что если надо объединить разноименные переменные. Смотрите пример ниже
<?php
$per
='Hello ';// первая переменная
$per2='world ';// вторая переменная
// мы можем сделать так , занести значения переменных в третью переменную...
$per3=$per.$per2;//между переменными после знака равно стоит точка, как символ объединения

$per=$per.$per2;// как видите мы изменяем значение первой переменной, но заносим в него его же значение и пишем ещё значение второй...
//выведим 
echo $per3;// выведит - Hello world
echo $per;// выведит так же - Hello world
?>



И так подведем итоги двух глав, мы научились описывать тело php сценария, вывести с помощью функции "echo" данные в браузер, можем вывести данные из переменной, и объединить переменные.


III глава.
-=МАССИВЫ=-
Массивы это разновидность переменных. Он может хрнаить несколько значений(элементы массива). Элементы могут быть строками,числами или другими массивами. Их можно пронумеровать. Для того, что бы извлечь нужный элемент , надо указать имя массива и в квадратных скобках указать номер элемента.
Массив может задаваться как рядом переменных(в которых занесены значения ) типа: 
$name[1]='Hello'; ,$name[2]='hi'; 
так и оператором ARRAY() , пример: 
$name=array('Hello','h');// или $name=array(1=>'hello',2=>'hello'); 1 и 2 это номера элементов
теперь примеры кода на php:
<?php
// создаем массив переменных с данными
$name[1]='My ';
$name[2]='name ';
$name[3]='is ';
// выведим
echo $name[1].$name[2].$name[3];// выведит - My name is

# но можно задать такой же массив, другим способом...
$name2[]='My ';
$name2[]='name ';
$name2[]='is ';
 
// мы в квадратных скобках не указали номера, но если есть "[ ]", то переменная воспринимается как массив, и номер первого элемента начинается с 0
echo $name2[0].$name2[1].$name2[2];// так же выведит - My name is
// вместо цифр в первом примере можно прописать текстовую строку,
$name['первый']='Hello ';
$name['второй']='world';
$name['третий']='!'
echo 
$name['первый'].$name['второй'].$name['третий'];// выведит что дагодайтесь сами... :) 
?>
Теперь разберемся с оператором array():
<?php
// задаем массив со значениями
$name=array('My ','name ' ,'is');
// если номера элементов тут не указаны, номер первого элементы равен 0, выведим...
echo $name[0].$name[1].$name[2];
// теперь зададим номера  элементов
$name=array(1=>'This ',2=>'is ',3=>'a ',4=>'PHP!');// номера так же тут могут быть и текстовыми...
echo $name[1].$name[2].$name[3].$name[4];
?>
А как узнать, сколько значений в массиве ? Для этой задачи есть функция COUNT(array), где array - имя массива.
ПРИМЕР:
<?php
$name
=array('hello','123','43');
echo 
count($name);// выведим сразу или
$count=count($name);// заносим значение в переменную
echo $count;// и выводим
// равным будет и такой код...
$name[]='hello';
$name[]='123';
$name[]='43';
echo 
count($name);
$count=count($name);
echo 
$count;
?>
Что бы проверить элемент на существование есть функция in_array(elem,array), вместо elem пишем в кавычках , тот элемент который надо проверить, и вместо array пишем имя массива,для которого идёт проверка.( применяется в больших случаях для if оператора), напишу код, и расскажу как работать с if.
<?php
$name
=array('name','Denis','Admin');
if(
in_array('Denis',$name))
{
echo 
'есть значение Denis';
}
else
{
echo 
'нет значения';
}
?>
Работаtn IF оператор легко и просто, в скобках - IF(ВОТ ТУТ), идет значение, мы задали проверку элемента, если есть то нас перенаправляют в первые { } - IF (ЗНАЧЕНИЕ){тут выводим если нашлось}, так же есть ELSE оператор , но идет после первых { } (фигурные скобки) входящих в if , и так же у ELSE есть фигурные скобки в них пишем код, если нет значения - IF (ЗНАЧЕНИЕ){тут выводим если нашлось}ELSE{ тут код для того,если не нашлось}.
ELSE оператор можно не использовать, если вам не надо выводить двойной ответ...


Так же имея два массива, их можно объединить в один, нам поможет в этом функция ARRAY_MERGE(one_array,two_array), где one_array и two_array - именя массивов для объединения.
ПРИМЕР:
<?php
$name
=array('hello','php');
$name2=array('ok','pdf');
$name3=array_merge($name,$name2);
// посчитаем, сколько значений в $name3, должно быть 4
echo count($name3);
?>
Можно сортировать элементы как по возрастанию(по алфавиту), так и по убыванию(пример от Я до А).
По возрастанию сортируют функция SORT(array), где array имя массива. Обратно же сортировать надо с функцией RSORT(array). ВАЖНО ЧТО БЫ СОРТИРОВАНИЕ ЗАНЕСТИ В ПЕРЕМЕННУЮ(новый массив).
ПРИМЕР:
<?php
// будем сортировать предыдущий пример, где объединяли
$name=array('hello','php');
$name2=array('ok','pdf');
$name3=array_merge($name,$name2);
// по алфавиту
$name4=sort($nmae3);
print_f($name4);// функция [b]print_f(array)[/b] работает по принципу ECHO только задается для вывода массив.
/*
выведит , что то
hello
ok
pdf
php
*/
?>
Так же можно задать реверсивный вывод массива(задам на перед ), не в зависимости от сортировки. Реверсию производит функция ARRAY_REVERSE(array).
ПРИМЕР:
<?php
$name
=array('123','hello','DNS','vs');
print_f($name);// выведит  такое - 123     hello      DNS      vs
// произведем реверсию, при этом запишем реверсионный массив  в новую переменную
$name2=array_reverse($name);
print_f($name2);// выведит - vs     DNS     hello     123
?>

есть так же поэлементный обработчик массива.
Всё делает оператор foreach(array AS name), где array имя массива, as параметр оператора, name - имя переменной под которой выодить каждый элемент.
ПРИМЕР:
<?php
$name
=array('hello ','people ','!!!!!');
foreach(
$name AS $per)
{
// как весь код оператора выполняться должен как и в if - в  фигурных скобках
echo $per;// выводим элемент
}
// в итоге полуим - hello people !!!!!
?>

а что если массив задан так ... array(key=>value). в разборе данного массива нам так поможет FOREACH(). Только задается она немного иначе для подобных массиво - foreach(array AS key_per=>value_per) , key_per - имя для переменной, которая будет содержать номер элемента, а value_per - имя для переменной, которая будет содержать значение элемента.
ПРИМЕР:
<?php
$name
=array(1=>'hello','keys'=>' found');
foreach(
$name AS $key=>$value)
{
echo 
$key.' = '.$value;// что бы между переменными прописать при выводе текст, то текст заключаем в кавычки, если кавычка оказвывается рядом с именем переменной, тогда стави между ними точку
}
// получи примерно что то такое -   1 = hello      keys = found
?>

для того что бы массив преобразовать в строку используйте функцию IMPLODE(' ',array). Думаю не надо объяснять что такое array(для тех кто в танке - имя массива), пробел в кавычках это разделитель для элементов, можно прописать - '', то есть две подряд оиднарные кавычки, разделения не будет!
ПРИМЕР:
<?php
$name
=array('i ',' am',' from'.' New York:) ','!!!!');
$imp=implode('',$name);// можно значение занести в переменную
echo $imp;// и вывести
echo implode('',$name);// или сразу вывести
?>

иногда надо удалить какой либо элемент и масива, это делает функция UNSET(array[name_key]), array - имя массива, name_key - номер элемента(числовой или текстовый)
ПРИМЕР:
<?php
// номера элементов будут разные...
$name['34']='in';
$name['удаляем']='asd';
// подсчитаем сколько элементов в массиве
echo count($name);// выведит 2
unset($name['удаялем']);// удаляем элемент с номером - удаляем. :):):)
// считаем сколько осталось
echo count($name);// выведит 1 
?>

Вот и всё, в азы массивов я вас посвятил, конечно это лишь малая часть функций, но для тех, кто хочет узнать больше, есть google .. а там вы явно натолкнетесь на официальные тексты.


IV глава.
-=ФУНКЦИИ=-
ФУНКЦИИ МОГУТ ВЫДАВАТЬ ОШИБКИ ЕСЛИ ,ЧТО-ТО НЕВЕРНО ЗАДАНО ЛИБО НЕ ПРОИЗОШЛО СОБЫТИЯ ДЛЯ ФУНЦИИ.
Если ошибка возвращается - FALSE. Если всё верно - TRUE
Что бы удалить из строки пробельные символы(в начале и в конце, но не в середине) при выводе, используйте функцию TRIM(str), где str или переменная содержащая текст, или текст в кавычках.
ПРИМЕР:
<?php
$text
=' Trim del space ';
$trim_function=trim($text);// можно сразу написать -  echo trim($text);
echo $trim_function;
$trim_function=trim(' DEL ');// можно прописать - echo trim(' DEL ');
echo $trim_function;
?>
К пробелам относяться так же: перевод строки, символ табуляции, возврат каретки, NULL символ, символ вертикальной табуляции.


Что бы удалить пробелы только сначала, примените функцию LTRIM(str), для удаления с конца - RTRIM(str).


Для подсчета длины строки или числа символов воспользуйтесь функцией - STRLEN(str) , где str строка/переменная для которой производится подсчет.
ПРИМЕР:
<?php
$str
='как дела?';
$count=strlen($str);// можно было бы прописать - $count=strlen('как дела?');
echo $count;// можно вывести сразу так - echo strlen($str); или echo strlen('как дела?');
// результат будет такой - 9
?>

Замена части текста(символа), на другой, производиться с помощью функции STR_REPLACE(sch,rp,text), где sch - текст(символ), который надо заменить, rp - текст(символ) на который стоит заменить, text - исоходный текст(может быть определенным через переменную). Запись замены можно производитьв переменную или сразу вывести.
ПРИМЕР:
<?php
$text
='Прювет';
// будем заменять "ю" на "и"
$sr=str_repalce('ю','и',$text);// можно было бы прописать $sr=str_repalce('ю','и','Прювет');
echo $sr;// одинаковым же будет и такое echo  str_repalce('ю','и',$text); или  echo str_repalce('ю','и','Прювет');
?>
Можно так же задать ряд символов для замены через массивы...
ПРИМЕР:
<?php
$text
='ПрRвет. Dак Wела';
// задаем символы которые изменить надо
$ar=array('R','D','W');
// задаем массив,на что заменяем
$ar2=array('и','к','д'); // главное что бы номера эоементов были одиноклвы, то есть номер у элемента в первом массиве со значением 'R' равно нулю, мы хотим данный символ заменить на "и", следовательно "и" должна быть под номером один в другом массиве.
$sw=str_replace($ar,$ar2,$text);
echo 
$sw;// выведит - Привет. как дела
?>

Для вывода даты и времени осуществляется с помощью функции DATE(par), где par - параметры для вывода ....
Параметры могут быть таковы:
Y - номер года 4 цифры
y - номер года 2 цифры
w - номер дня недели(порядковый)
n - порядковый номер месяца без ведущих нулей
M - сокращенное название месяца, 3 символа.
m - порядковый номер месяца с ведущими нулями.
j - день месяца без ведущих нулей
i - минуты с ведущими нулями
h - часы в 12 часовом формате, с ведущими нулями
H - часы в 24 часовом формате, с ведущими нулями
g - часы в 12 часовом формате, без ведущих нулей
G - часы в 24 часовом формате, без ведущих нулей
D - сокращенное название дня недели, 3 символа
d - день месяца , две цифры с ведущими нулями
a - время до полудня(am), время после полудня (pm)
Выведим время и дату
ПРИМЕР:
<?php
$date
=date('H:i   Y/m/d');
echo 
$date;// равным будет и такой код
echo date('H:i   Y/m/d');// символы,но не буквы ,могут быть в роли разделителей
// что бы вывести какую то букву как не параметр, то перед ней пропишите "\", пример ниже
echo date('Y \m d');// выведет - ГОД m НОМЕР МЕСЯЦА
?>
Что бы проверить верна ли дата или нет(допустим введеная пользователем), предусмотрена функция CHECKDATE(mt,dy,yr), где mt - номер месяца, dy - номер дня, yr - год.
Что бы далее обработать функцию воспользуемся IF оператором ..
ПРИМЕР:
<?php
if(checkdate(01,01,2010)==TRUE)
{
echo 
'Дата верная';
}
// а вот такая дата... неверна
if(checkdate(02,29,2010)==FASLE)
{
echo 
'Неверная дата 29 февраля нет в 2010 году, т.е. год не високосный';
}
?>


МАТЕМАТИЧЕСКИЕ ФУНКЦИИ.
Что бы ввыести наибольшее число из списка воспользуйтесь функцией MAX(n,x,y...) где n,x,y - числа через запятую, можно указть разумеется больше трёх чисел.
ПРИМЕР:
<?php
$maximum
=max(12,13,67,123,09,90,23);
echo 
$maximum;// вывдедет - 123 , можно было бы прописать и так - echo max(12,13,67,123,09,90,23); << подобного объяснения не будет... учитесь мыслить ...
?>
Для вычесления наименшего значения есть функция MIN(n,x,y...), параметры задаются так же как и в предыдущей функции.

Миниум приведённых функция для понятия общей работы на простых прмерах!




V глава.
-=ОБ IF ОПЕРАТОРЕ=-

IF оператор позволяет проверить условие , если оно верно(возвращает TRUE) выполняется блок операторов... Если же ложно(то есть возвращает FASLE) , пропускается блок операторов и выполняется со следующих операторов.
Общая схема:
if(УСЛОВИЕ){блок операторов}
Можно дописать оператор ветвления - ELSE ,  на случай того, если неверно условие
if(УСЛОВИЕ){блок операторов}else{блок операторов для неверного условия}
ПРИМЕР:
<?php
// если допусти переменная $password равна 123 , то выполним блок операторов
if ($password=='123')
{
echo 
'All ok....:) ';
}
?>
Вот вам операции сравнения...
== равенство
!= неравенство
> больше
>= больше или равно
< меньше
<= меньше или равно


для сложных условий, можно пользоваться объединением нескольких операции сравнений. В этом помогут логические выражения.
* AND
* OR
* XOR

ПРИМЕР AND:
<?php
// зададим якобы пользователя и пароль, если пароль и пользователь верны, то выведим - OK
$name='Vasja';
$psw='123';
if(  (
$name=='Vasja') AND ($psw=='123') )
{
echo 
'OK';
}
else
{
echo 
'Неверно';
}
?>
ПРИМЕР OR:
<?php
// пусть есть страница на сайте. доступ к которой имеют два пользователя, и вот имя одного
$name='Oleg';

if( (
$name=='Oleg') or ($name=='Jhon') )
{
// если переменная имеет значение  - Oleg или Jhon , тут выводим что всё Хорошо
echo 'Вам доступна данная страница';
}
else
{
echo 
'Вам сюда нельзя....';
}
?>
XOR выполняется лишь тогда когда одно из условий верно , если же оба верны, то оно не будет выполнено.



ОПЕРАТОР switch.
SWITCH(per), где per - имя переменной, которя входит лоя обработки в switch оператор.

Общая схема:
switch($name)
{
case 'значение1 для переменной';
тут выполняем код, если значение1 совпало с переменной..;
break;

case 'значение2 для переменной';
тут выполняем код, если значение2 совпало с переменной..;
break;

case .....
....break;

default;
если не найдено совпадений выполняем здесь код;
break;
}
ПРИМЕР:
<?php
$name
='cat';
switch(
$name)
{
case 
'dog';
echo 
'DOG!';
break;

case 
'chick';
echo 
'chick';
break;

case 
'cat';
echo 
'CAT';
break;

default;
echo 
'Nothing search';
}
?>


ЦИКЛЫ FOR и WHILE.
while цикл позволяет выполнять повторение нескольких операторов пока истинно некторое условие.
Выполним цикл до тех пор пока переменная $i не будет равна 20, при каждом проходе будм добавлять к переменной $i единицу.
КОД:
<?php
// первоначально переменная равна нулю
$i=0;
while(
$i<20)
{
// будем выводит цифру переменной
echo $i;
// прибавляем единицу
$i++;
}
?>

Существует так же цикл FOR .
Общая схема такова:
for(перменная=от какого числа начинается цикл; условие цикла ; на сколько увеличиваем переменную после каждого прохода цикла)
{
тут код для цикла;
}
Напишем код который выведет нам массив.
<?php
$array
=array('One','A','Eng','Привет');
// выполняем цикл пока $n не будет равная числу элементов в массиве
for($n=0;$n<count($array);$n++)
{
echo 
$array[$i];// где $i будт номером элемента...
}
?>
Вот пример того ,как увеличить проход....
<?php
$max
=30;
for(
$per=0;$per<$max;$per++)
{
// если $per равно десяти увеличим переменную $max до 40, тем самым увеличив проход
if ($per==10){$max=40;}
}


Циклы - фундамент программирования и знать их обязательно и WHILE и FOR !




VI глава.
-=ФОРМЫ ВВОДА. PHP - ОБРАБОТЧИК ВВЕДЁННЫХ ДАННЫХ=-

Если вы читали предыдущие главы и всё для вас стало понятным приступим к решению задачи: нам надо написать скрипт для ввода имени и сообщения, и будем отправлять на e-mail. Вы спросите , а что же я тогда в главе о функциях её не написал?... я считаю хорошим тоном не выдавать весь список функций , что бы новичок их не заучивал, а постепенно вводить их с решением поставленной задачи.. На практике легче запомнить... Немного отвлекусь и приведу пример из личной жизни, учусь в 9 классе, а физик у нас другой с этого года, и он нам диктует конспекты, мы их учим, на следующий урок пишем, никаких задач практически... А что ж, задействована у нас кратковременная память, выучили - написали, забыли и всё... ТОЛКУ НОЛЬ ОТ ТАКОГО ПРЕПОДАВАНИЯ! По этому я хочу дать вам твёрдый фундамент, и что бы это восприятие шло через практику, в нашем случае - написание фрагмента кода к каждой функции.

И так , вы наверное знаете тэги <form> </form>...
Если нет тогда разъясняю, в открывающем тэге <form>, можно прописать параметры action="PAGE", где PAGE имя страницы на которую будет пересылаться данные, и method="MET", где MET - метод каким будут предаваться данные(в методы вдаваться будем ниже). Но между тэгами <form> </form> должны прописываться кнопки, поля, поля выбора.
Для того, чтобы задать поля надо прописать такое:
<input type="text" name="ИМЯ_ПОЛЯ" value="текст по умолчанию,который отобразиться, данный параметр можно опускать"> , в параметре можно вместо text прописать password, что бы при вводе вместо текста отображались "снежинки", для того,что бы никто данные не увидел...... имя поля должно быть уникальным в форме . Если в параметре type прописать - submit, тогда вместо поля ввода текста будет кнопка..
Вот кнопка : <input type="submit" name="ИМЯ_КНОПКИ" value="НАЗВАНИЕ_КНОПКИ"> . ВАЖНО!!! Имя кнопки должно быть отличительным от имён полей и другой разметки в форме.
Вам нужно что то вроде черновика для ввода текстом с переводом строки с помощью ENTER ?
Тогда создадим такое поле для ввода(высоту и ширину задайте по своему вкусу )
<textarear name="ИМЯ_ПОЛЯ" cols="55" rows="4">ТУТ текст для отображения :) , его можно не писать сюда...... если не надо</textarea> , в параметре cols задается ширина поля, а в rows - длина поля.
Этого нам хватит, другие тэги сможете легко найти в GOOGLЕ( google.ru in help for you).

Так теперь про методы передачи данных с помощью формы. Два базовых метода это GET и POST. С помощью Get метода можно передать лишь 2кб данных. Пример GET метода , http://localhost/search.php?name=DENIS&city=Derevnja , всё что следует за символом и есть цепочка GET данных, данные передаются так - имя_поля=значения_поля , разделяются имена полей со значениями символом "&". Минус GET метода перед POST в том, что не все символы можно передать(в подробности не вдаюсь, вам задача - почему ограничения.).
В POST методе вы никогда не увидите таких цепочек, лишь с утилитой можете просматривать заголовки передачи данных.....


И так напишем форму:
<?php
$page
=$_SERVER['PHP_SELF'];// $_SERVER['PHP_SELF'] - серверная переменная , возвращает адрес страницы
echo '<form action=" '.$page.' " method="POST">';// форма будет ссылаться на данный скрипт , передаем данные методом POST 
echo 'Ваше имя: <input type="text" name="yr_name"><br>';// задаем поле для ввода имени пользователя, даем полю имя - [b]yr_name[/b], которое будет в обработке скриптом.
echo 'Сообщение: <textearea name="msg" cols="55" rows="7"><br>';// поле для сообщения
echo '<input type="submit" name="go" value="отправить" >';// кнопка , по её нажатию данные отправится, если идут поля после кнопки, то их значения не будут переданы
echo '</form>';
?>
Приведённый выше скрипт является вполне рабочим, но нам надо организовать обработку данных и отправку их на e-mail.


Данные полей заносятся в переменные:
есть поле - <input type="text" name="gaga"> . Метод передачи - POST.
Переменная будет такая $_POST['gaga'] .
Легко понять принцип - $_МЕТОД['имя_поля'].
Можно данную переменную занести в другую - $name=$_POST['gaga'];
С GET методом, думаю понятно из принципа, если нет тогда вот  - $_GET['имя_поля']
Что бы проверить , была ли отправлена форма , и есть ли поле... для этого есть оператор ISSET(ПЕРЕМЕННАЯ) .
Напишем форму лишь с обработкой полей:
<?php
// проверим , отправлена ли форма и все ли поля  
if( (isset($_POST['go'])) and (isse($_POST['yr_name'])) and (isse($_POST['msg'])) )
{
// теперь проверим ,что бы поля имя и сообщения не были пустыми , если что то не заполнено, в else прописываем,что ,что-то не введено
if( ($_POST['yr_name']!='') and ($_POST['msg']!='') )
{
// выдадим ,то ,что вводил пользователь
echo 'Ваше имя:'.$_POST['yr_name'].'<br>Ваше сообщение:'.$_POST['msg'];
}
else
{
echo 
'Не введено или сообщение или имя';
}
}
 
$page=$_SERVER['PHP_SELF'];
echo 
'<form action=" '.$page.' " method="POST">';
echo 
'Ваше имя: <input type="text" name="yr_name"><br>';
echo 
'Сообщение: <textearea name="msg" cols="55" rows="7"><br>';
echo 
'<input type="submit" name="go" value="отправить" >';
echo 
'</form>';

?>
Так как я поэтапно все расписал в скрипте, напишем уже модификацию скрипта выше , с ОТПРАВКОЙ на е-mail.
Перепишем код выше....
<?php
// проверим , отправлена ли форма и все ли поля  
if( (isset($_POST['go'])) and (isse($_POST['yr_name'])) and (isse($_POST['msg'])) )
{
// теперь проверим ,что бы поля имя и сообщения не были пустыми , если что то не заполнено, в else прописываем,что ,что-то не введено
if( ($_POST['yr_name']!='') and ($_POST['msg']!='') )
{
//вместо вывода пропишем код для отправки данных на ваш ящик, отправкой занимается функция mail() , она возвращает TRUE если отправилось или FALSE, если ошибка произошла, можно проверить с помощью IF
$formochka='Кто: '.$_POST['yr_name'].'<br>Сообщение: '.$_POST['msg'];// сформируем текст сообщения
if(mail("ваш_email_адрес_на_него_придет_сообщение","Тема: сообщение с помощью скрипта",$msg,"from:from@mail.ru")) 
{
// после form прописывается адрес e-mail от которого будет сообщения, но я даю гарантию 99%, то что будут каракулю , если всё на русском напишите,для правильного отображения, код был бы больше и не понятнее, это лишь для показа работы
echo 'Ушло... ';
}
else
{
echo 
'Error!!!';
}
}
else
{
echo 
'Не введено или сообщение или имя';
}
}
 
$page=$_SERVER['PHP_SELF'];
echo 
'<form action=" '.$page.' " method="POST">';
echo 
'Ваше имя: <input type="text" name="yr_name"><br>';
echo 
'Сообщение: <textearea name="msg" cols="55" rows="7"><br>';
echo 
'<input type="submit" name="go" value="отправить" >';
echo 
'</form>';

?>

Вот в принципе и всё,данная глава окончена. Основы обработки данных форм вы , я надеюсь, поняли. Какие есть ещё поля ,я не стал описывать, в надежде того, что знаете другие.
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо treycerok за это полезное сообщение:
ABTOMAT (03.12.2011), dsd (16.12.2012), SBJoker (02.12.2011), Skaner (21.02.2013), Черный крыс (19.11.2012)
Старый 03.12.2011, 12:06   #2
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,282
Написано 5,140 полезных сообщений
(для 14,855 пользователей)
Ответ: Мини пособие по php

Просьба комментарии писать в отдельной теме
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 22:17.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com