Php начинающим

ƒеонат дезодорант купить.

Php-web-дизайн > Php начинающим

Php - это €зык сценариев. «ачем он нужен? ƒл€ того, чтобы ¬аш сайт был более интересен. »спользу€ Php, который работает на стороне сервера, мы добиваемс€ того, что текст html-странички мен€етс€ "на лету". ƒалее мы приведем несколько примеров дл€ начинающих.

1. Ќадо разбить html текст на: верх страницы и низ страницы, то есть создать шаблоны. ¬ этом случае, будет мен€тьс€ только центр странички, что немаловажно.

—ледующий файл "top.htm" - верх странички
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><HEAD><TITLE>%title%</TITLE></HEAD><body>

Ётот файл "end.htm" - низ странички
</body></html>

—ам сценарий будет такой
<?
//вставл€ем верхний шаблон и измен€ем в нем Title.
$title = "Php-web-дизайн";
$t_mha = @file ('top.htm');
for($mha = 0 ; $mha < count($t_mha); $mha++)
{ 
$t_mha[$mha] = str_replace("%title%",$title,$t_mha[$mha]);
echo "$t_mha[$mha]"; 
}
//здесь вставл€ем центр странички
include("zentr.htm");
//вставл€ем низ странички
include("end.htm");
?>

ѕри обращении к этому сценарию сервер выдаст броузеру
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><HEAD><TITLE>Php-web-дизайн</TITLE></HEAD><body>
середина странички, котора€ будет мен€тьс€, то есть zentr.htm.
</body></html>

ћы добились того, что в верхней части мен€ем title, выводим саму мен€ющуюс€ информацию (zentr.htm) в центр html кода и добавл€ем низ. “еперь мы будем мен€ть только центральную часть, не забот€сь о шаблонах. ¬ этом простом примере мы научились разбивать текст странички, мен€ть его и вставл€ть файлы. “еперь один раз записав файл верх, по разным ссылкам мы спокойно изменим в нем title или что-нибудь еще, вставим центральную часть и закончим нижней. 

” нас на сайте переписываетс€ в верху: title, статистика (левый нижний угол), затем мы вставл€ем сам текст в центр, а в нижней части переписываетс€ врем€ генерации странички сервером. ¬ итоге, странички получаютс€ всегда разные, хот€ мы используем всего два html файла (верх и низ), центр странички разный. “о же самое относитс€ и к центральной части, в которой тоже можно создать шаблон, а сервер сам будет мен€ть в нем данные, что придаст сайту больше интерактивности.

2.  ак организовать php-ссылки. ќчень просто, например, у нас весь скрипт записан в одном файле all.php. —сылки в html коде выгл€д€т так "all.php?act=omsk&fon=velikie". ¬се что стоит за знаком вопроса это и есть ссылка. ≈сли нажать на эту ссылку, скрипту all.php автоматически методом Get будут переданы две переменные: "$act=omsk" и "$fon=velikie". ѕрограмма начнет движение по срипту сверху вниз и когда достигнет того места, где мы будем спрашивать о этих двух переменных срипт исполнитс€. 
<?
//если переменна€ $act равна "omsk" и $fon не пусто, то есть существует
//выводим одну страничку в броузер
//ссылка выгл€дит так: "all.php?act=omsk&fon=velikie"
if($act == "omsk" and $fon != "") { include("one.htm"); }
//если переменна€ $act равна "omsk" и $fon пусто, то есть не существует
//выводим другую страничку в броузер
//ссылка выгл€дит так: "all.php?act=omsk"
if($act == "omsk" and $fon == "") { include("too.htm"); }
?>
“о есть, все очень просто.

3.  ак работают формы? »з формы переменные передаютс€ скрипту методом Get или Post, если мы в форме что-то пропишем и активизируем кнопку submit. ≈сли будет использоватьс€ метод Get, то все переменные, которые передаютс€ скрипту будут прописаны в командной строке: all.php?1_переменна€=значение&2_переменна€=значение&3_переменна€=значение. ≈сли будет использован метод Post, то эти же переменные будут переданы скрипту скрыто вне командной строки. “о есть, метод Get нельз€ использовать, если переменна€ большого объема, то есть в ней много букв. Ќапример, когда вы направл€ете нам письмо с сайта, скрипту будут преданы три переменные: им€, email пользовател€ и сам текст письма. ƒве первые переменные маленькие, а вот последн€€ больша€, поэтому программа будет виснуть, если в форме отсылки применить метод Get. ‘ормы Php передают скрипту переменные, только после активации, в этом отличие от Javascript, который исполн€етс€ при загрузке, самого текста html, в броузер.

4.  ак организовать јдминистрирование? —оздаем файл, например, administ.php. ќн должен быть закрыт паролем.
<?
//функци€ форма парол€
function form()
{
echo "
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html><HEAD>
<title>јдмин</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">
</head><body>
<form action=administr.php method=post>
<table border=0 width=600 align=center cellspacing=1 cellpadding=1 bgcolor=#333399>
<tr><td align=center bgcolor=#D7DCF7>
<font face=verdana size=2 color=de0000>¬ведите пароль</font></td></tr>
<tr><td align=center bgcolor=#D7DCF7><input type=password name=p size=25></td></tr>
<tr><td align=center bgcolor=#D7DCF7><input type=submit value=¬ойти></td></tr></table>
</form>";
}
//если пароль правильный скрипт исполн€етс€
if ($p == "$password")
{
//здесь текст нашего скрипта
echo "</body></html>";
exit;
} 
//если пароль неправильный скрипт не исполн€етс€, записываем нарушител€ в базу
if ($p != "$password") 
//определ€ем ip нарушител€, записываем в лог файл и выводим форму дл€ парол€
{ if(empty($log_ip)){ if (getenv('HTTP_X_FORWARDED_FOR'))
{$log_ip=getenv('HTTP_X_FORWARDED_FOR'); } 
else {$log_ip=getenv('REMOTE_ADDR'); }}
else {$log_ip=getenv('REMOTE_ADDR'); }
$log_host=gethostbyaddr("$log_ip");
$log_date=date('d\.m\.Y, H:i:s');
$log_file = fopen("admin.log","a+");
$p = eregi_replace("<","&lt;","$p");
$p = eregi_replace(">","&gt;","$p");
if($p == "") { $p = "не вводил"; }
fputs ($log_file,"$log_ip<>$log_host<>$log_date<>$p\n");
fclose ($log_file);
form();
echo "</body></html>";
} 
?>
ћы всегда можем увидеть нарушителей и потом, если надо, закрыть им доступ, при условии определени€ ip нарушител€. ¬се ссылки в скрипте должны идти с паролем, который надо вручную прописать в отдельном текстовом файле, из которго скрипт и будет потом считывать пароль и сравнивать его с тем, который был послан из формы.

5. „то такое цикл и зачем он нужен?
функци€ for - цикл, очень важна€ дл€ прив€зки баз данных, которые лежат в текстовых файлах. ¬ нашем базовом файле данные лежат построчно и раздел€ютс€ каким-то разделителем, в нашем случае разделитель - "::". “о есть, база данных выгл€дит так:
1 строка - »ванов::директор::40 лет::в/о::
2 строка - ѕетров::зам.директора::35 лет::в/о::
3 строка - —идоров::нач.отдела::45 лет::в/о::

„тобы произвести манипул€ции с этой базой (добавить, удалить, изменить данные), и, требуетс€ цикл for. —начала мы считаем всю базу в массив строк, причем кажда€ строка в этом массиве будет иметь свой номер, ф-и€ file, затем мы посчитаем сколько строк в считанном массиве, откроем файл базу на запись, полностью стира€ ее и запустим цикл, в котором, в данном случае будем удал€ть ненужные нам строки, при этом нужные записыва€ в ту же базу данных. ƒалее по тексту, $base - база данных, в которой лежат наши данные.
<?
// считываем всю базу в переменную $general
// “огда $general - это массив строк из базы, выгл€дит так:
// $general[0] - все, что в 1 строке базы
// $general[1] - все, что во 2 строке базы
// $general[2] - все, что в 3 строке базы
// итд, до последней строки, то есть функци€
// file дает нам возможность считать базу построчно
// в массив строк со своим номером по пор€дку
$general = file("$base");
// стираем всю базу и открываем ее на запись
// функци€ fopen, если "w", то вс€ база стираетс€,
// ну и пусть, ранее мы считали ее в переменную $general,
// а потом из $general перезапишем
$fp = fopen("$base","w");
// count($general) - количество строк в считанной базе,
// то есть в переменной $general. Ќазначаем цикл от
// нулевой строки, до последней в базе: $j = 0 до $j < forum'>count($general)
for ($j = 0; $j < count($general); $j++) {
// запускаем цикл, в первый проход цикла,
// $general[$j] - это все, что записано в 1 строке $general[0]
// во второй проход $general[$j] - все, что записано
// во 2 строке $general[1]. счет идет не с 1, а с 0.
// ¬ последний проход, все что записано в поледней строке.
// “ак продолжаетс€ пока $j < count($general), то есть
// счетчик - перменна€ $j не станет больше количества строк в базе,
// тогда цикл прекращаетс€. — каждым проходом цикла $j++, то есть эта
// переменна€ увеличиваетс€ на один, а в самом начале она равна 0.
// ≈сли номер строки и номер дл€ стирани€ той строки, что хотим удалить
// совпадают игнорируем, то есть не записываем в базу,
// остальные строки пишем в файл-базу fputs($fp,$general[$j])
// то есть записываем по новому все строки $general[$j],
// в том же пор€дке, кроме той, которую хотим стереть
if ($j != ($del)){ $erg = fputs($fp,$general[$j]); }
}
// цикл будет крутитьс€ пока $j < count($general), потом он закончитс€
// и программа придет к этой отметке. «десь мы закрываем файл-базу
fclose($fp);
?>
¬ этом очень простом примере мы научились использовать file, count, for, fopen, fclose.



јлександр ”стюгов




ѕри перепечатке информации делайте, пожалуйста, ссылку на наш сайт (либо поделитьс€ вконтакте, гугл+ или делитесь в одноклассниках статьЄй). —пасибо!

»сточник: www.wr-script.ru©, 2004-2023г.

ƒелитесь с друзь€ми в соцсет€х. јктивные комментаторы получают свежие скрипты и бесплатные доработки от WR-Script.ru!

¬ернутьс€ к стать€м помощи WEB-мастеру

WR-–°—З—С—В—З–Є–Ї