|
|
|
| Вот есть фрагмент гостевой книги
Объясните пожалуйста по шагам как он работает
1 | <?
2 | $count=$i;
3 | $count1=$count;
4 | if (empty($start))
5 | {
6 | $start=0;
7 | }
8 | $start=intval($start);
9 | if($start<0)
10| {
11| $start=0;
12| }
13| print "<center>";
14| if ($count>$start+10) $count=$start+10;
15| if ($start !=0)
16| {
17| print "<A href=index.php?start=".($start-10).">Предыдущие</A>";
18| }
19| print "<a href=addrec.php>Добавить запись</A>";
20| if ($count>$start+10)
21| {
22| print "<A href=index.php?start=".($start+10).">Следующие</A>\n";
23| }
24| print "</center><br>";
25| ?> | |
|
|
|
|
|
|
|
для: unded
(03.06.2005 в 11:36)
| | Это элемент постраничной навигации
4 - проверяем не пуст ли параметр $start, который передаётся через строку запроса и обозначает позицию, начиная с которой выводятся сообщения. Если пуст, то присваиваем ему ноль
8 - приводим параметр $start к целому числу, на тот случай, если передана строка
9 - проверяем не передано ли в $start отрицательное значение
15 - если $start не равен нулю, значит имеются предыдущие значения - выводим на них ссылку
20 - если количество сообщений больше чем увеличенная на 10 (число сообщений на странице) текущая позиция, значит имеются следующие сообщения - выводим соответствующую ссылку.
PS Лучше воспользоваться постраничной навигацией, в гостевой книге с использованием MySQL, которую можно свободно загрузить из раздела downloads http://www.softtime.ru/info/gbzc.php - там она более прозрачная и лучше откомментирована. | |
|
|
|
|
|
|
|
для: cheops
(03.06.2005 в 12:24)
| | до этого переменная $start нигде не описывается
откуда он берется | |
|
|
|
|
|
|
|
для: unded
(03.06.2005 в 17:47)
| |
<?
$count=$i;
$count1=$count;
if (empty($start)) # Если переменной $start не существует функция (empty проверяет это),
{
$start=0; # то приравниваем $start к нулю.
}
$start=intval($start);
if($start<0) # Если $start меньше нуля, то обнуляем.
{
$start=0;
}
|
| |
|
|
|
|
|
|
|
для: Akira
(03.06.2005 в 18:04)
| | пременная $start первый раз объявляется здесь
if (empty($start))
каким образом в нее передается значение | |
|
|
|
|
|
|
|
для: unded
(03.06.2005 в 18:08)
| | Из внешней переменной, переданной через url. | |
|
|
|
|
|
|
|
для: unded
(03.06.2005 в 18:08)
| | В данном случае if (empty($start)) в нее не передаеться значение , а проверяться.
Т.е. содержит ли $start какое либо значение. Если нет , то она пуста и ее нужно инициализировать. | |
|
|
|
|
|
|
|
для: unded
(03.06.2005 в 17:47)
| | Она берётся из строки URL, если URL будет иметь вид
http://www.mysite.ru/index.php?start=10
то в файле index.php переменная $start примет значение 10, если конечно это разрешено в конфигурационном файле, если нет, придётся обращаться к суперглобальному массиву $_GET['start']. | |
|
|
|
|
|
|
|
для: cheops
(03.06.2005 в 19:30)
| | Могу ли я обращаться к массиву $_GET если в форме использую
метод POST | |
|
|
|
|
|
|
|
для: unded
(03.06.2005 в 21:07)
| | Нет конечно :) Массив $_GET берет значения из адресса, а массив $_POST берет значения переменных из тела заголовка. | |
|
|
|
|
|
|
|
для: unded
(03.06.2005 в 21:07)
| | Насколько я помню нет.
$_POST - для post
$_GET - для get
|
Да и не обязательно использовать $_POST или $_GET.
Я просто использую имена переменных. | |
|
|
|
|
|
|
|
для: Akira
(03.06.2005 в 21:18)
| | >Да и не обязательно использовать $_POST или $_GET.
>Я просто использую имена переменных.
Это зависит от настроек php | |
|
|
|
|
|
|
|
для: Tristan
(03.06.2005 в 21:20)
| | Смотря какой хост =) В большинстве это включено =) Register globals = on
Если мне не изменяет память ;) | |
|
|
|
|
|
|
|
для: Akira
(03.06.2005 в 21:23)
| | ОК хорошо спасибо я попробую | |
|
|
|
|
|
|
|
для: unded
(03.06.2005 в 21:27)
| | index.php
<form action=test.php>
<input type=text name=imya />
<input type=submit />
</form>
|
test.php
<?
echo $imya # При включенном режиме Register globals = on переменная $imya будет доступна в это виде не зависимо от того каким способом (POST или GET)
?>
|
PS Когда пишите на email, то указывайте обратный адрес. | |
|
|
|
|
|
|
|
для: Akira
(03.06.2005 в 23:14)
| | я поменял register globals= on
но я по прежнему не могу понять откуда $start получает значение
тоесть к примеру
вот у меня есть форма
<html>
<head>
<title>Untitled</title>
</head>
<body>
<form action="example.php">
<input type="Text" name="s1"><br>
<input type="Text" name="s2"><br>
<input type="Submit" value="go">
</form>
</body>
</html>
вот скрипт
<?
if ($s1>$s2){echo ("ok");}
else {echo (bad);}
?>
вот урл
http://localhost/proba1.php?s1=&s2=
в данном случае я сам ввожу значения $s1 и $s2
что же касается $start то непонятно откуда она получает значение | |
|
|
|
|
|
|
|
для: unded
(06.06.2005 в 17:25)
| | 1)$s1>$s2 можно использовать если только вы используете числа.
2)http://localhost/proba1.php?s1=&s2= в данном случае s1 и s2 пустые поэтому будет выводиться bad. Поробуйте http://localhost/proba1.php?s1=6&s2=5
3) $start в начале пуста и не имеет не какого значиния, поэтому ей присваеться значие 0, т.е. нулевой странице. Если мы перейдем к следующей , то значение $start перемениться с нуля на большее поэтому мы ее не обнуляем.
PS Листинг не правельный. Вот исправленная версия.
<html>
<head>
<title>Untitled</title>
</head>
<body>
<form action="example.php">
<input type="Text" name="s1"><br>
<input type="Text" name="s2"><br>
<input type="Submit" value="go">
</form>
</body>
</html>
|
вот скрипт
<?
if ($s1>$s2){echo ("ok");}
else {echo (bad);}
?>
|
вот урл
http://localhost/example.php?s1=&s2=
|
| |
|
|
|
|
|
|
|
для: unded
(06.06.2005 в 17:25)
| | При таком раскладе оно не получает значение и остаётся пустым, и срабатывают строки
4 | if (empty($start))
5 | {
6 | $start=0;
7 | }
Но, если вы перейдёте по ссылкам
17| print "<A href=index.php?start=".($start-10).">Предыдущие</A>";
или
22| print "<A href=index.php?start=".($start+10).">Следующие</A>\n";
но в строке запроса появится параметр start который обеспечит значение для переменной $start. | |
|
|
|
|
|
|
|
для: cheops
(06.06.2005 в 19:12)
| | тоесть первоначально $start равен 0 а потом изменяется в зависимости от
кол-ва сообщеий на 10 (кол-во сообщений на странице) | |
|
|
|
|
|
|
|
для: unded
(07.06.2005 в 19:39)
| | $start - это указатель страницы, а кол-во страниц определяеться кол-ом сообщений.
Если сообщений у нас 100, то получиться примерно так:
Стр1.
($start = 0)
1)Сообщение: Простой текст
***
2)Сообщение: Простой текст
***
...
10)Сообщение: Простой текст
***
Следующие (при переходе $star передаеться со значением $start + 10)
|
Стр2.
($start = 10)
11)Сообщение: Простой текст
***
12)Сообщение: Простой текст
***
...
20)Сообщение: Простой текст
***
Следующие (при переходе $star передаеться со значением $start + 10 т.е. $start = 20)
|
И так все повторяеться. | |
|
|
|
|
|
|
|
для: Akira
(07.06.2005 в 19:49)
| | ок спасибо с этим понятно
теперь возникла другая проблема
у меня в отдельном каталоге находятся 3 файла file.htm,send.php,writing.php
и каталог saves
------------------------------------------------------------------------
send.php
--------------------------------------------------------------------------
<?
function recording ()
{
$f=fopen("saves\save.".time(),"w");
fputs($f,$tt1);
fclose($f);
echo("Файл сохранен");
}
recording();
print "<HTML><HEAD>\n";
print "<META HTTP-EQUIV ='Refresh' CONTENT='0 ; URL=writing.php'>\n";
print "</HTML></HEAD>\n";
?>
--------------------------------------------------------------------------
writing.php
-----------------------------------------
<?
$direct=opendir("saves");
$i=0;
while($file=readdir($direct))
{
$names[$i]=substr($file,6);
$i++;
}
closedir($direct);
$count=$i;
$count1=$count;
if (empty($start))
{
$start=0;
}
$start=intval($start);
if($start<0)
{
$start=0;
}
print "<center>";
if ($count>$start+10) $count=$start+10;
for ($i =$start; $i<$count;$i++)
{
$entry=$names[$i];
$data=file("saves/save.".$entry);
print "<table border=2 cellspacing2 cellpading=2>
<tr><td>";
print "$tt1;</td></tr>";
}
?>
---------------------------------------------------------------------------
file.htm
---------------------------------------------------------------
<html>
<head>
<title>Untitled</title>
</head>
<body>
<form action="send.php" method="post">
<textarea cols="40" rows="20" name="tt1"></textarea><br>
<hr>
<input type="Submit" value="send">
</form>
</body>
</html>
send.php записывет введенный текст из формы в файл а
затем writing.php должен вывести все сохраненные файлы
С этим и проблема
апачи пишет что не может найти файл или каталог
Помогите еще раз please | |
|
|
|
|
|
|
|
для: unded
(09.06.2005 в 16:59)
| | Немного не понял, что надо, но вот скрипт, поудобнее.
index.htm
<html>
<head>
<title>Record file</title>
</head>
<body>
<form action="record.php" method="post">
<textarea cols="40" rows="20" name="rec"></textarea><br>
<hr>
<input type="Submit" value="send">
</form>
</body>
</html>
|
record.php
<?
$file = fopen('records.txt', "a");
$query = date("m.d.y H:i:s ").$rec."\n";
fwrite($file, $query);
fclose($file);
header ("Location: see.php")
?>
|
see.php
<?
$array_files = file("records.txt");
foreach ($array_files as $str)
{
print $str."<br>";
}
print "You want and more? <a href=index.htm>Yes!</a>";
?>
|
Если честно я не стал вникать в тот код. Слишко громоздкий. Быстрее написать новый. | |
|
|
|
|
|
|
|
для: Akira
(09.06.2005 в 17:21)
| | Это не совсем то
У меня есть каталог с файлами
Мне нужно содержимое этих файлов вывести на экран | |
|
|
|
|
|
|
|
для: unded
(16.06.2005 в 16:18)
| | Это не совсем то
У меня есть каталог с файлами
Мне нужно содержимое этих файлов вывести на экран | |
|
|
|
|
|
|
|
для: unded
(09.06.2005 в 16:59)
| | >апачи пишет что не может найти файл или каталог
Хм... а вы правильно указываете путь к файлу writing.php? Ведь если даже Apache не может найти файл, то он не выполняется или выводится предупреждение PHP? Не могли бы вы привести текст, который выдаёт Apache? | |
|
|
|
|
|
|
|
для: cheops
(17.06.2005 в 22:03)
| | Апачи пишет так
Warning: file(saves/save.) [function.file]: failed to open stream: No such file or directory in C:\Apache2\new\save in file\writing.php on line 29
;
Warning: file(saves/save.) [function.file]: failed to open stream: No such file or directory in C:\Apache2\new\save in file\writing.php on line 29 | |
|
|
|
|
|
|
|
для: unded
(18.06.2005 в 19:26)
| | Апачи пишет так
Warning: file(saves/save.) [function.file]: failed to open stream: No such file or directory in C:\Apache2\new\save in file\writing.php on line 29
;
Warning: file(saves/save.) [function.file]: failed to open stream: No such file or directory in C:\Apache2\new\save in file\writing.php on line 29 | |
|
|
|
|
|
|
|
для: unded
(20.06.2005 в 19:57)
| | Пропустил ваш предыдущий пост... А директорию C:\Apache2\new\save у вас существует? Если нет попробуйте её создать - скорее всего скрипт построен таким образом, что запись будет производится туда... | |
|
|
|
|
|
|
|
для: cheops
(20.06.2005 в 20:11)
| | Да конечно я создал такую директорию
==================================================
У меня такая задача
Есть каталог с файлами
Мне надо вывести содержимое этих файлов в браузер | |
|
|
|
|
|
|
|
для: unded
(21.06.2005 в 15:10)
| | >Мне надо вывести содержимое этих файлов в браузер
Вы можете воспользоваться готовым решением в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4792 или массой других скриптов, которые можно найти поиском по форуму, передав в качестве ключевого слова opendir | |
|
|
|