Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Основы программирования на PHP



В этой лекции мы рассмотрим возможности программирования с использованием языка РНР. Скомпилированные программы и исходный код языка могут быть скачаны с сайта http: //www.php.net. Установим пакет РНР. Создадим простейший PHP-файл, который назовем test.php.

<?

echo " < hl> this is php< /hl> ";

? >

Если вы работаете в Windows, то щелкните на файле test.php мышью. Появиться консольное окно, в котором отображается результат работы этой программы.

Разместим файл test.php в каталоге выполняемых файлов сервера Sambar, в cgi-bin/. В браузере укажем адрес http: //loca! host/cgi-bin/test.php, после чего в окне браузера появится результат работы программы, записанной в файле test.php.

Язык РНР предоставляет большое количество возможностей для создания полнофункциональных серверных Web-приложений. Среди основных свойств можно назвать такие: обработка информации, введенной пользователем посылка почты, работа с базами данных, работа с изображениями, работа с сетью, работа с объектами CORBA. Сейчас мы кратко рассмотрим основные возможности, без которых Web-программирование просто немыслимо.

Ввод и вывод на РНР

HTML-формы представляют собой механизм передачи серверу данных от пользователя клиентского браузера. Рассмотрим HTML-файл, содержащий форму (файл form.html).

< html>
< head>

< title> Пример формы < /title> < /head> < body>

< form name=" formname" method=post action = " http: //localhost/cgi-bin/form.php" >

< Р> Введите текстовую информацию:

< input type=" text" name=" textl" >

< PXinput type=" submit" value=" Submit the form to the serve: " < /form>

< /body>

< /html>

Элемент формы начинается открывающим ярлыком < fоrm>. В качестве свойств элемента в ярлыке указаны имя элемента formname, метод передачи данных post и свойство action. Последнее свойство — это адрес файла, содержащего программу, которая будет обрабатывать данные. Адрес может быть как относительный (относительно местоположения данного HTML-файла), так и абсолютный. Внутри элемента формы описано несколько компонентов. Важным для нас являются элементы input. Каждый элемент имеет имя и значение. Именно эти пары имен и значений будут переданы серверу в виде name=value. Так, в нашем случае переменной с именем textl будет соответствовать строковое значение, которое пользователь ввел в соответствующее поле. Различные типы элементов input, описанные в языке HTML, соответствуют различным графическим элементам, отображаемым в окне браузера. Кнопка отправки формы имеет тип " submit". Все пары name=value, содержащиеся в форме, будут переданы программе, указанной в качестве значения свойства action. В файле form.php обратиться к этим значениям можно, просто указав имя соответствующей им переменной. Все переменные в РНР начинаются со знака $, поэтому наша переменная будет иметь вид $testl.

Напишем простой PHP-файл form, php для обработки данной формы. Мы уже видели, что текст РНР программы начинается с символов <? и заканчивается? >.

<?

echo " < html> < head> < title> Forms< /title> < /head> < body> ";

echo " < hl> User input< /h1> Пользователь ввел такую строку: < Р> ";

echo $textl;

echo " < /body> < /html> ";

? >

Файл сохраняем в каталоге cgi-bin/. После нажатия кнопки отправки формы мы, видим, что пользовательские данные возвращены сервером.

Приведенная в этом примере страница не имеет никакого дизайна. Коммерческие Web-приложения должны быть оформлены с учетом возможности HTML-форматирования и удобства пользователей при работе.

5.3. РНР и базы данных. Работа с MySQL.

 

test.php

$action=$HTTP_GET_VARS[" action" ];

echo " < html> < body> ";

echo " action=".$action." < p> ";

$c=mysql connect(" localhost: 330 6", " admin", " " );

if ($action==" create" )

{

$result=mysql create db(" articles", $c); echo $result;

mysql select db(" articles", $c); $stroka=" CREATE TABLE article (Subject CHAR(50), Article LONGTEXT, Author

CHAR(50), Title CHAR(50), ID INT, Annotation CHAR(50)); "; $result=mysql query($stroka); echo $result;

$stroka=" CREATE TABLE WAPassword (Password CHAR(50), ID INT); "; $result=mysql query($stroka); echo $result;

} if ($action==" insert" )

{

mysql select db(" articles", $c);

$stroka=" INSERT INTO article VALUES('Mathematics', 'Обсуждаются свойства.................................................... ',

'Ivanov V.I.', 'Об одном свойстве', 1, 'В работе рассматривается1); ";

$result=mysql query($stroka);

if ($result) echo $result;

$stroka=" INSERT INTO article VALUES('Mathematics', 'Обсуждаются методы..................................................... ',

'Ivanov V.I.', 'Об одном методе', 2, 'В работе рассматривается'); ";

$result=mysql query($stroka);

if ($result) echo $result;

$stroka=" INSERT INTO WAPassword VALUES('2003', 1); ";

$result=mysql query($stroka);

if ($result) echo $result; }

if ($action==" show" )

{

mysql select db(" articles", $c); $stroka=" select * from article; "; $result=mysql query($stroka); $noro=mysql nura rows ($result); echo " Rows number".$noro." < br> "; echo " < table border=0> < tr

align='center'> < td> Haзвание< /td> < td> ABTop< /td> < td> Aннотация< /td> < /tr> "; while($row=mysql fetch array($result))

{

echo " < tr> ";

echo " < td> ".$row[" Title" ]." < /td> ";

echo " < td> < i> By".$row[" Author" ]." < /i> < /td> ";

echo " < td> ".$row[" Annotation" ]." < /td> ";

echo " < /tr> ";
}

} if ($action==" delete" )

{

mysql drop db(" articles", $c); if ($result) echo $result;

}

mysql close($c); echo " < /body> < /html> "; ? >

5.4. Основные функции PHP для работы с MySQL.

lr4.php

< html>

< head>

< title> Ham газетный сайт - первые шаги в PHP и MySQL< /title>

< /head>

< body>

< center>

< p> < font size=" 3" со1ог=" #000000" > < b> Главная страница< /b>

<! -- Определим основные линки -->

< center>

< а href=" UploadForm.php" class=" antiLine" > Загрузка статьи< /а> < br>

< /center>

< table BORDER=0 CELLSPACING=O CELLPADDING=O WIDTH=" 640" >

<! -- Создадим таблицу шириной 640 пиксел -->

< tr>

< td BGCOLOR=" #FFCC99" valign = top>

< /td>

< /tr>

<?

$c=mysql connect(" localhost: 330 6", " admin", " " );

mysql select db(" articles", $c);

$stroka=" select * from article; ";

$result=mysql_query($stroka);

$Cnt = 0;

echo " < table border=0Xtr

align='center'> < td> Haзвaниe< /td> < td> Aвтop< /td> < td> Aннoтaция< /td> < /tr> '';

while($row=mysql_fetch_array($result))

{

echo " < tr> ";

$Link=" < a href=ArtTempl.php? id=".$row[" ID" ]." > ".$row[" Title" ]." < /a> "; echo " < td> ".$Link." < /tdXtdXi> By".$row [" Author" ]." < /iX/td> "; echo " < td> ".$row[" Annotation" ]." < /td> "; echo " < /tr> "; $Cnt = $Cnt + 1;

}

echo " < /table> ";

mysql_close($c); ? >

< p> < font size=" 3" color=" #000000" > < i>

<?

$D = date(" F j, Y" );

echo " Сегодня".$D;

echo ". В базе - ".$Cnt." статей";

? >

< /i> < /font>

< /font> < /p>

< /table>

< /center>

< /body>

< /html>

ArtTempl.php

<?

$TheID = $HTTP_GET_VARS[" id" ];

$c=mysql connect(" localhost: 330 6", " admin", " " );

mysql select db(" articles", $c);

$stroka=" SELECT * FROM article Where ID =".$TheID;

$result=mysql_query($stroka);

$row=mysql_fetch_array($result);

echo $row[" ID" ].".".$row[" Title" ];

echo " < i> < b> By".$row[" Author" ]." < /b> ";

echo " < br> Subject: ".$row[" Subject" ]." < br> ";

echo $row[" Article" ];

mysql_close ($c);

? >

UploadForm.php

< html>

< head>

< title> Загрузка статьи< /title>

< /head>

< body>

< FORM NAME=" mainform" METHOD=" GET" ENCTYPE=" multipart/form-data"

ACTION=" Upload.php" >

< b> Author: (*)< /b> < br>

< input type=TEXT size=56 name=" Author" > < br>

< I — Поле имени автора статьи -->

< b> Title: (*)< /b> < br>

< input type=" text" name=" Title" size=" 56" > < br>

< I— Поле заголовка статьи -->

< b> Article Annotation: < /b> < br>

< textarea name=" Annotation" cols=" 56" > < /textarea> < br>

< I— Поле аннотации к статье —>

< b> Article Text: < /b> < br>

< textarea cols=" 56" name=" Article" rows=" 15" > < /textarea> < br>

< I— Поле текста самой статьи -->

< b> Type of the article: (*)< /b> < br>

<! -- Поле рубрикатора статьи —>

< select name=" Subject" >

<?

$c=mysql connect(" localhost: 330 6", " admin", " " );

mysql select db(" articles", $c);

$stroka=" SELECT distinct Subject FROM article; ";

$result=mysql query($stroka);

while($row=mysql_fetch_array($result))

echo " < option> ".$row[" Subject" ]." < /option> "; ? >

< /select>

< br>

< b> Database access password: (*)< /b> < br>

< input type=" password" name=" Password" >

< br>

< center>

< input type=SUBMIT value=" Publish the Article! " name=" SUBMIT" >

< input type=" reset" name=" Reset" value=" Reset Article Form" >

< /center>

< /FORM>

< /body>

< /html>

Upload.php

< html>
< head>
< /head>
< body>
<?

$c=mysql connect(" localhost: 330 6", " admin", " " );

mysql select db(" articles", $c);

$stroka=" Select * From WAPassword Where ID = 1";

$result=mysql query($stroka);

$row=mysql fetch array($result);

$DBP = $row[" Password" ];

function Formatstr($InString)

{

$InString = str_replace(chr(13).chr(10), " < br> ", $InString);

$InString = str_replace(chr (10).chr(10), " < /PXP> ", $InString);

$InString = str_replace(chr(10), " < BR> ", $InString);

$InString = str_replace(" '", " " ", $InString);

$InString = str_replace(chr(34), " /", $InString);

return $InString; }

$ErrA = 0;

$ErrT = 0;

$ErrP = 0;

$ErrC = 0;

$AUT = $HTTP_GET_VARS[" Author" ]; if($AUT==" " ) $ErrA = 1; $AUT=FormatStr($AUT);

$TIT = $HTTP_GET_VARS[" Title" ]; if (TIT==" " ) $ErrT = 1; $TIT=FormatStr($TIT);

$ART = $HTTP_GET_VARS[" Article" ]; if($ART==" " ) $ErrC = 1; $ART=FormatStr($ART);

$SBJ = $HTTP_GET_VARS[" Subject" ];

$ANN = $HTTP_GET_VARS[" Annotation" ];

$ANN = FormatStr($ANN);

if($ANN==" " ) $ANN = " NA";

$Password = $HTTP_GET_VARS[" Password" ]; if($Password==$DBP)

If($ErrA ==0 & & $ErrT == 0)

{

$stroka=" select max(ID) AS MAX_ID from article"; $result=mysql query($stroka); $row=mysql fetch array($result); $ID=intval($row[" MAX_ID" ])+1;

$stroka=" insert into article (Author, Title, Article, Subj ect, Annotation, ID) values('".$AUT." ', '".$TIT." ', '".$ART." ', '".$SBJ." ', '" $ANN." ', '".$ID." ')"; $result=mysql query($stroka);

} else

$ErrP = 1;

$N = date(" j F Y. H: i: s" );

if($ErrP==0 & & $ErrA==0 & & $ErrT==0 & & $ErrC==0)

echo " Article uploaded successfully at ".$N." < br> ";

if ($ErrP==l)

echo " Error! Article database access denied! Incorrect password! ";

if($ErrA==l)

echo " < br> Error! No Author specified! ";

if($ErrT==l)

echo " < br> Error! No Title specified! ";

if ($ErrC==l)

echo " < br> Error! You should specify article text! "; mysql_close ($c); ? >
< /body>
< /html>

 









Библиографический список

1. Будилов В.А. Практические занятия по РНР 4. СПб.: Наука и Техника, 2001. – 352с.

2. Гарнаев А.Ю. Web-программирование на Java и JavaScript. СПб: БХВ, 2006. – 1040с.

3. Моррисон М. HTML и XML. М.: Питер, 2005. – 303с.

4. Пауэрс Ш. ASP компоненты. СПб: Питер, 2004. – 832с.

5. Водолазкий В. PHP/4. СПб: Питер, 2002. – 416с.

6. Томсон Л. Разработка Web-приложений на PHP и MySQL. М.: ДиаСофт, 2001. – 672с.

7. Паттерсон Л., Слоан Б., Шарльворс С. Использование HTML 4. М.: Вильямс, 2001. – 400с.

8. Лавджой И. ASP Web-профессиналам. Киев: BHV, 2001. – 288с.

9. Зандстра М. Освой самостоятельно PHP4 за 24 часа. М.: Вильямс, 2001. – 384с.

 


Поделиться:



Последнее изменение этой страницы: 2019-04-09; Просмотров: 269; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.061 с.)
Главная | Случайная страница | Обратная связь