Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

PHP в примерах, просто о сложном


<
PHP в примерах
о сложном просто
...:::Лично от меня:::..

Приветствую вас! Честно скажу - я безумно раз что у моей рассылки есть подписчики, надеюсь что их будет еще больше ,так как это моя первая рассылка.

Создание сайта идет полным ходом, скорее всего он будет иметь домен Skript.onep.ru.И будет размещен уже на этой недели. Сайт будет находиться под ReloadCMS.На сайте будут собраны полезные статьи по php(по php только авторский контент то есть только мой),css,html и веб дизайну. (поймите правильно один я не в силах написать много статей по одному лишь php,поэтому пришлось включать в проект мои статьи которые я так и не разместил в нете)

p.s если у кого есть желание в ступить в команду проекта пишите на l3v1s@list.ru или на levis@mail.by (да, да я изменил мыло, лучше кончено на 1 но 2 тоже проверяю ).

...:::О рассылке:::...

Как видите этот выпуск рассылки я выпустил достточно быстро.Это от великой радости.
Данную рассылку я постараюсь выпускать раз в неделю(но это уж как получиться).Структура рассылки проста: сначала идет теория с использованием мелких примеров, а потом в виде заключения мы делаем какой ни будь скрипт с использованием информации изученной нами сегодня.

...:::Кратко о сегодняшнем:::...
Как и обещал сегодня о Супер глобальных массивах(сделаем прогу для забанивания посетителей).А также: открытие, запись из файлов.
Даная рассылка планировалась без примера.Просто определение ip.Но я посчитал что это будет не итересно.Так что не огорчайтесь что некоторые элементы не будут описаны.Их мы разберем в ледующем выпуске.

...:::Базовый синтаксис:::...

Итак чтобы понять некоторые моменты в последующих рассыках тебе понадобиться знания.

В последующих рассыках ты часто будешь встречать

w - создает файл записи в него, если подобный уже есть он удаляется.
w+ - аналогичен предыдущему, но создает для чтения и записи.
r - открывает только для чтения с начала.
r+ - открывает для чтения и записи.
a - открывает для до записи в конец файла.
а+ - аналогичен предыдущему но открывает для чтения и записи.
Как видите их можно разделить на 3 класса.
w и w+ создают файлы
r и r+ открывает файлы для записи в начало
a и a+ открывает для записи в конец.

<?php
$open=fopen ("file.txt","a");//заметили а,
fwrite ($open,"Это запишеться");
fclose($open);
?>

Новые знаки
die - выводит тогда когда надо
if -если
fopen - обозначает что файл надо открыть
fwrite - делает запись в файл



...:::Теория:::...

Иногда требуется вывести информация хранящуюся в файле на экран. Сделать это можно по разному, но я вам покажу 2 наиболее известных способа.

[1] способ:

<?php
$fname = "file.txt"; //если хотите опробовать скрипт создайте файл file.txt и запишите теда че нить)
$open =fopen ($fname,"r");
$read =fread ($open, filesize ($fname));
fclose($open);
echo $read;
?>

1)Итак сначала мы задаем переменную $fname, откуда мы будем читать инфу.
2)Потом мы открываем фаил для чтения.
3)Далее содержимое нашего файла мы копируем в буфер.(учтите у этого способа есть свои подводные камни: он работает в том случае если в нашем файле хоть что то есть)
4)Ну после мы закрываем файл
5)И с помощью функции echo выводим на экран.

[2] способ

Второй способ радикально отличается от своего собрата тем что внем мы используем массивы а не пользуемся буфером.

<?php
$fname = file ("file.txt");
foreach ($fname as $line)
echo $line;
?>

Тут мы просто все содержимое файла превращаем в массив $line,который потом выводим.
Данный способ является более коротким. И также позволяет нам совершать операции с массивами.Хотя первый вариант тоже позволяет делать это.
Вот я вам пояснил как отображать инфу хранящуюся в файле.

А теперь запись в файл

Различный способов записи существует очень много.Я опишу вам только 1 тот который нужен нам сейчас.А если нужет еще какой-то на мыло.
(незабудьте создать файл file.txt а то ни че не запишется)

<?php
$open=fopen ("file.txt","a");
fwrite ($open,"Это запишеться");
fclose($open);
?>

Данный скрипт просто запишет "Это запишется в файл" в наш с вами файл.Ладно это так что нам может пригодиться.А теперь тема рассылки

Определяем ip посетителя

<?php
$youip=$_SERVER['REMOTE_ADDR'];
echo $youip;
?>

Да! Такая вот функция выводит на экран ваш ip адрес или ip человека который зашел на эту страницу.
1) $_SERVER['REMOTE_ADDR']-именно эта строка определяет ip.Пояснять не буду так как она является постоянной измените че нить не будет работать.
2)А тут мы просто выводим на экран с помощью echo.
Ну вот с теорией покончили.

...:::Практика:::...

Итак сегодня мы напишем программу которая будет заносить не понравившейся ip адресс в список забанненых.
Нам понадобяться:
1)создайте файл ip.php
2)создайте файл allip.php
3)чтобы понять скрипт прочтите теорию

Итак в файле ip.php у нас будет запиан код добавления ip в список черных,а фале allip.php будес сам список с оператором.
В файл ip.php запишите

<!doctype html public "-//W3C//DTD HTML 4.0//EN">/
<html>
<head>
<title>Untitled web-page</title>
</head>
<body>
<?php

include "allip.php"; //делаем так чтобы весь код написаный в allip.php действовал на этой странице.

$file="allip.php"; //задаем файл
$line="8";//определяем линиую которую будем смещать(учтите что при измение кода надо и линию изменить
$data="\$ip[]=\"$ipban\";";//читай выше почему \$ip[]=\"$ipban\,а не $ip[]=$ipban

$array=file($file);//делаем из содержимого файла массив $array
$open=fopen($file,"r+");
//открываем его для чтения и записи
while(list($num,$string)=each($array))
//об этом читай ниже
{
if(($num+1)==$line)
fwrite($open,$data."\r\n");
fwrite($open,$string);
}
fclose($open);

?>
<form action="ip.php" method="post"> // не знаешь HTML?
<input type=ipban name=ipban valie='<? echo $ipban; ?>'>
<input type=submit name=send value=БАН>
</form>
</body>
</html>

Ниже это тут.Итак если вы читали теорию то все вам должно быть понятно...кроме одного.Тот район кода который виделен в красный цвет разберем по порядку.Согласитесь что если мы будем вести просто запись в фаил ни че не выйдет или выйдет но ip будет только один.Именно этот код позваляет вставлять в него новую строку перемещая вниз весь код. Но о нем мы поговорим попозже когда вплотную займемся массивами.
А теперь код который мы занесем в allip.php.

<!doctype html public "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>Untitled web-page</title>
</head>
<body>
<?php
$ip[]="127.0.0.2";
// этот ip для примера.не удаляйте строку.
if (empty($_SERVER['REMOTE_ADDR']))
/*по русски-если(if) айп посетителя не определяеться(empty)
die ("Не определен ");
то выводим сообщение
elseif (in_array($_SERVER['REMOTE_ADDR'], $ip))
если Ip есть в нашем массиве то вывводи собщение о бане*/
die ("Вас забанили ");
?>
</body>
</html>

Запустите скрипт (ip.php) и введите туда свой ip и зайдите снова.....вас не пустят.Потом просто измените его в файле с ip.
Но скрипт пока не рабочий ибо на нем нету пароля.Представтье что будет если до этого файла кто нить добереться.....
Если вы заметили ошипки то пишите мне.


...:::По вопросам:::...
Вопросов пока нету


В избранное