Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

$i = 0;
$handle = opendir ('.');
while($file = readdir($handle))
{
  if ($file!= '.' && $file!= '..')
  {
  $func[$i] = $file;  //формируем массив названий файлов с функциями
  $i++;
  }
}
sort ($func);
for ($q = 0; $q<sizeof($func); $q++)
{
  echo "<a href='index. php?".$func[$q]."'>".$func[$q]."</a><br>\n";
}

Так что, при каждом заходе на страницу вы получаете только что сгенерированный список функций.

На этом все. Встретимся на следующем уроке.

Добро пожаловать, или пишем Гостевую книгу.

Итак, мы добрались до чего-то серьезного. Если раньше мы занимались больше "отстраненными" делами, то сегодня мы будем решать реальную задачу, с которой может столкнутся практический любой вебмастер, - написание собственной гостевой книги.

Конечно, можно использовать "гостевые" специализированных серверов, например, какой-нибудь http://guestbook. land. ru/, и лицезреть каждый раз их баннеры; или же взять готовые скрипты, допустим, с CGI. ru, но это тоже не так интересно, потому что автор скрипта писал гостевую книгу не для вашего сайта, а следовательно, такая "гостевуха" может нарушить общую концепцию вашего обожаемого детища.

Ну, думаю, я вас убедил, что "своя рубашка ближе к телу", так что приступим.

Итак, с чего начинается любая программа? Правильно, с постановки задачи. Так, наша гостевая книга прежде всего должна делать следующее:

1.  Сохранять добавленное сообщение.

НЕ нашли? Не то? Что вы ищете?

2.  Производить проверку добавляемого сообщения перед сохранением (в целях безопасности).

3.  Выводить все сообщения на экран.

Это общие формулировки задач, к которым по мере написания кода будут добавляться новые.

Теперь, что нам понадобится? Как вы понимаете, серьезные вещи не пишутся в одном файле. Так что создадим в одной папке следующие файлы:

1.  config. php - здесь будут храниться общие настройки гостевой книги.

2.  base. txt - файл, где будут храниться все сообщения, наша своеобразная база данных.

3.  guest. php - здесь будет содержаться непосредственно наш скрипт.

Все, приготовления на этом окончены и пора переходить к сути дела.

Начинаем писать файл guest. php. Сразу хочу сказать, что практически все действия мы будет записывать в функциях, которые мы изучили на уроке 4. Поверьте, это очень удобно.

Прежде всего сделаем HTML шапку, которая будет выводиться независимо от того, какие действия мы совершаем.

<HTML>

<HEAD>

<TITLE>Гостевая книга</TITLE>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

</HEAD>

<BODY>

<?

require("config. php");

Далее пишем функцию, которая будет выводить форму для добавления сообщения. Она основана на HTML. Код становится более "размашистым", поэтому дальнейшее использование таблиц для его отображения становится невозможным, так что я перехожу к <TextArea>.

function show_form() { ?> <form method="post" action=""> Имя<br> <input type="text" name="name" maxlength="22"> <br> E-mail<br> <input type="text" name="email" maxlength="21"> <br> Сообщение<br> <textarea cols="70" rows="20" name="mess"></textarea><br> <input type="submit" value="Послать"> <input type="reset" value="Очистить"> </form> <? }

Ну, я думаю, здесь все понятно: мы прерываем PHP код и пишем HTML, хотя эта часть по-прежнему относится к функции. Свойство action тега Form равно пустой строке, то есть обработчик формы находится в этом же файле. Уже при написании формы мы думаем о защите скрипта и ограничиваем количество вводимых символов свойством maxlength.

Итак, пользователь ввел сообщение и нажал на кнопку "Послать". Что же далее? Понятно, что нам нужно теперь сохранить это сообщение, чем сейчас и займемся.

Напишем в файле config. php следующие строки:

<?
$base = "base. txt";

Вместо base. txt вы можете использовать любой другой файл, но я буду называть этот файл именно так.

Теперь название файла-базы занесено в переменную, что значительно облегчит нам жизнь, если мы пожелаем использовать другой файл-базу.

Возвращаемся обратно к нашему основному файлу и пишем в нем следующее:

function save_mess() { global $name, $email, $mess, $base; $date = date("d. m.y - H:i:s"); $text = $name."^^".$email."^^".$date."^^".$mess."\n"; $fp = fopen($base,"a"); fputs($fp, $text); fclose($fp); }

Ну, это, наверное, тоже несложно. Мы объявляем наши переменные как глобальные, то есть именно те, которые пользователь послал из формы. Далее мы присваиваем переменной $date текущую дату в виде день. месяц. год - часы:минуты:секунды (о функции date() читайте в статье Функция date() - вывод даты и времени в PHP). 

Затем имя отправившего сообщения, его адрес и само сообщение присваиваем переменной $text, причем разделяем их знаком ^^, который мы будем использовать для обратного процесса - из строки получать имя, адрес и сообщение. Для этого можно использовать любой символ или сочетание символов, которые не используются на письме, но я выбрал именно ^^.

Далее открываем файл-базу для дозаписи и приписываем в конце файла полученную строку из всех данных.

Итак, что мы имеем? Мы имеем форму для ввода сообщения и функцию для его сохранения. А теперь напишем функцию вывода сообщений.

Договоримся, что сообщения у нас будут выводиться в порядке убывания даты и времени их написания. Кроме того, ограничим число выводимых сообщений определенным числом, указанным в файле config. php, куда и добавляем строку:

$MessOnScreen = 10;

Вы можете установить здесь любое число.

Возвращаемся к guest. php и пишем довольно объемную функцию:

function show_mess() { global $base, $MessOnScreen; $file = file($base); $file = array_reverse($file); echo "<table>"; if(sizeof($file) < $MessOnScreen) $MessOnScreen = sizeof($file); for ($i = 0; $i < $MessOnScreen; $i++) { $mess = explode("^^",$file[$i]); ?> <tr> <td> <p>Написал: <? echo "<a href='mailto:".$mess[1]."'>".$mess[0]."</a>"; echo "<br>"; echo $mess[2]; ?> </td> <td> <p><?=$mess[3];?></td> </tr> <? } echo "</table></td>"; }

Функцией file() мы получаем массив, где в каждом элементе содержится строка с одним "блоком" - именем писавшего, адресом и его сообщением соответственно. Потом мы "переворачиваем" полученный массив, изменяем порядок элементов на обратный, так что самая последняя запись становится у нас первым элементом массива. Далее мы сравниваем количество элементов в $file (а значит и количество сообщений) с указанным в $MessOnScreen лимитом, и если оно меньше этого значения, то $MessOnScreen устанавливаем в число элементов $file.

Далее выполняется цикл вывода сообщений. С каждым проходом цикла значение переменной цикла увеличивается на единицу. Таким образом самые свежие сообщения (те, что были приписаны позже всех и находятся внизу файла-базы) выведутся первыми, а более старые - последними.

После этого переменной $mess присваиваем массив с элементами:
0-ой элемент - имя
1-ый элемент - адрес электронной почты
2-ой элемент - время добавления сообщения
3-й элемент - само сообщение

Это делается с помощью функции explode(), которая разбивает строку по символам ^^ (помните, говорили об этом выше).

Затем мы выводим в таблице все полученные значения. Если не встречались, то запись <?=$mess[2];?> эквивалентна <? echo $mess[2];?>

На сегодня все, продолжим на следующем уроке.

Снова здрасьте, или дописываем Гостевую книгу.

Итак, мы сегодня продолжаем писать нашу гостевую книгу и пора вспомнить, на чем мы остановились. Мы написали три функции: по выводу формы, сохранению сообщения и отображению всех ранее написанных сообщений.

Казалось бы, на этом можно и остановиться. В общем-то этого достаточно для самой примитивной гостевой книги. Но зачем нам такая нужна? Мы же не хотим, чтобы наше любимое детище взламывал каждый "типа хакер". В конце концов, нам нужна удобная функциональная "гостевая".

Так что продолжаем.

А продолжим мы с очень важной функции проверки введенных данных. У нас будет даже не одна функция проверки, а больше.

Значит, открываем файл guest. php и пишем:

function check_mess() { global $name, $email, $mess; $mess=trim($mess); $email=trim($email); $name=trim($name); $name = htmlspecialchars($name); $email = htmlspecialchars($email); $mess = htmlspecialchars($mess); $mess = str_replace("\n","<br>",$mess);

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13