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-2026ã.

Äåëèòåñü ñ äðóçüÿìè â ñîöñåòÿõ. Àêòèâíûå êîììåíòàòîðû ïîëó÷àþò ñâåæèå ñêðèïòû è áåñïëàòíûå äîðàáîòêè îò WR-Script.ru!

Âåðíóòüñÿ ê ñòàòüÿì ïîìîùè WEB-ìàñòåðó

WR-Счётчик