|
|
|
|
|
для: zavragnov
(29.09.2005 в 22:47)
| | В прикреплённом скрипте всё работает. В вашем коде не понятны следующие моменты, зачем нужны следующие строки
<?php
if(!empty($_POST['a']));
if(!empty($_POST['b']));
if(!empty($_POST['c']));
?>
|
Почему вы проверяете на существование $_POST['d']
<?php
if(!empty($_POST['d']))
{
?>
|
и не проверяете $_POST[save]? | |
|
|
|
|
|
|
|
для: isset
(29.09.2005 в 19:42)
| | Хм... а, например, необъявленная переменная - это критично?
Просто при той же постраничной навигации проще вывести все переменные на экран, нежели проверять существование каждой... | |
|
|
|
|
|
|
|
для: cheops
(29.09.2005 в 19:13)
| | Если в файле была информация то все выводиться.
например инфа содержащаяся в файле example.txt
название|инфрмация1|инфрмация2|инфрмация3
Тетерь что происходит:
1. запускаем скрипт
2. выбираем example.txt
3. заполняется форма содержимым файла example.txt
4. вносим изменения, нажимаем сохранить
5. выдаются сообщения об ошибках, приведенные выше
Идея скрипта - выбор файла из директории и его последующее редактирование. Вся инфа в файле пишется только в одну строку. Далее содержимое файла выводится в браузер другим скриптом. Короче говоря небольшая админ панель.
А вот откуда взята идея в приложенном файле. | |
|
|
|
|
|
|
|
для: cheops
(29.09.2005 в 12:11)
| | Не совсем согласен, Notice это такая же ошибка и исправлять ее надо обязательно, а не игнорировать... | |
|
|
|
|
|
|
|
для: zavragnov
(29.09.2005 в 14:13)
| | Перед вызовом цикла foreach необходимо проверять не является ли массив пустым
<?php
if(!empty($str_array))
{
foreach($str_array as $line)
{
list($msg1, $msg2, $msg3, $msg4) = explode("|",$line);
}
}
?>
|
Выведите на экран содержимое $_POST['save'] - в нём что-нибудь имеется? | |
|
|
|
|
|
|
|
для: cheops
(29.09.2005 в 12:11)
| | А как быть с этим?
Это появляется после нажития кнопки сохранения
Warning: Invalid argument supplied for foreach() in z:\home\test2.ru\www\open.php on line 43
Warning: fwrite(): supplied argument is not a valid stream resource in z:\home\test2.ru\www\open.php on line 117
Warning: fclose(): supplied argument is not a valid stream resource in z:\home\test2.ru\www\open.php on line 119 | |
|
|
|
|
|
|
|
для: zavragnov
(29.09.2005 в 01:30)
| | Notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE
|
Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
?>
|
В качестве параметра, которой передать соответствующий уровень обработки ошибок.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985 | |
|
|
|
|
|
|
|
для: cheops
(29.09.2005 в 01:20)
| | все равно не сохраняет, после нажатиия на сохранить выдал такое:
Notice: Undefined variable: selectbase in z:\home\test2.ru\www\open.php on line 32
Notice: Undefined variable: chbase in z:\home\test2.ru\www\open.php on line 32
Notice: Undefined variable: basename in z:\home\test2.ru\www\open.php on line 36
Warning: Invalid argument supplied for foreach() in z:\home\test2.ru\www\open.php on line 43
Notice: Undefined variable: basename in z:\home\test2.ru\www\open.php on line 111
Notice: Undefined index: save in z:\home\test2.ru\www\open.php on line 115
Warning: fwrite(): supplied argument is not a valid stream resource in z:\home\test2.ru\www\open.php on line 117
Warning: fclose(): supplied argument is not a valid stream resource in z:\home\test2.ru\www\open.php on line 119 | |
|
|
|
|
|
|
|
для: zavragnov
(29.09.2005 в 01:15)
| | Исправьте 115 строку следующим образом
<?php
$fd = fopen("$_POST[save]","w");
?>
|
PS Такие здоровые листинги лучше сразу прикреплять в виде файла. | |
|
|
|
|
|
|
|
для: cheops
(28.09.2005 в 23:42)
| | ВСЕ РАВНО НЕ РАБОТАЕТ
ВОТ ЧТО ПИШЕТ
Parse error: parse error, expecting 'T_STRING' or 'T_VARIABLE' or 'T_NUM_STRING' in z:\home\test2.ru\www\tmpbogwanjpjc.php on line 115
вот сам код скрипта, файл open.php
<?php
//Error_Reporting(E_ALL & ~E_NOTICE);
//Директория, где будут храниться файлы с данными
$basedir="data";
//Если еще не выбран файл, то предлагаем его создать
if(empty($selectbase)) {
echo "Создать<br/><form name=addbase><input type=text name=addnbase><input type=hidden name=mod value=options><input type=hidden name=action value=randb> <input type=submit name='' value=\"Создать\"></form>";
if(isset($addnbase)) { @fclose(fopen("$basedir/$addnbase", "a+")); }
}
else {
$basename=$basedir."/".$selectbase;
$chbase=$selectbase;
}
//А здесь предлагаем выбрать файл из имеющихся
echo "<br/>Выбрать<br/><form name=formbase><select name=selectbase size=\"1\"><option value=\"\"> -- Выбор -- </option>";
if ($handle = opendir("$basedir")) {
while (false !== ($basefile = readdir($handle))) {
if ($basefile != "." && $basefile != "..") {
echo "<option value=$basefile>$basefile</option>";
}
}
closedir($handle);
}
echo "</select> <input type=\"submit\" name=\"\" value=\"Выбрать\"></form>";
//Форма добавления нового кода
$addnban = "<p>Добавить код в <b>" .$selectbase. "</b><br/><form action=\"$PHP_SELF?mod=options&action=randb&subaction=add\" method=\"post\"><input name=adcode type=text size=\"100\"><input type=hidden name=selectbase value=$chbase><br/><input type=submit name='' value=\"Добавить\"><input type=hidden name=\"yes\" value=\"0\"> <input type=\"checkbox\" name=\"adddupl\" value=\"1\"> Добавить, даже если такой код уже есть</form><p>
";
$filename = "$basename";
$str_array = file($filename);
// Обходим массив в цикле
foreach($str_array as $line)
{
list($msg1, $msg2, $msg3, $msg4) = explode("|",$line);
}
//echo $msg1;
//echo $msg2;
//echo $msg3;
//echo $msg4
?>
<html>
<head>
<title>Администрирование - <?php echo $msg1 ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<form action=open.php method=post enctype=multipart/form-data>
<p><font color="#FF9900" size="1" face="Verdana, Arial, Helvetica, sans-serif">
</font></p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><font color="#FF9900" size="1" face="Verdana, Arial, Helvetica, sans-serif">название
страницы<br>
<input name="a" type="text" value="<?php echo $msg1?>" size="106">
<br>
ключевые слова<br>
<input name="b" type="text" value="<?php echo $msg2?>" size="106">
<br>
описание станицы<br>
<input name="c" type="text" value="<?php echo $msg3?>" size="106">
<br>
<br>
<input name="Input" type="image" src="save.gif" width="134" height="22">
<br>
<br>
контент <br>
<textarea type=text rows=20 cols=80 name='d'><?php echo $msg4?></textarea>
<br>
<br>
<input name="Input2" type="image" src="save.gif" width="134" height="22">
</font></td>
<td width="50%" valign="top"><table width="100%" border="0" cellspacing="20" cellpadding="0">
<tr>
<td valign="top"><font size="3" face="Arial, Helvetica, sans-serif"><?php echo $msg4?></font></td>
</tr>
</table>
</td>
</tr>
</table>
<p> </p>
</form>
<?php
if(!empty($_POST['a']));
if(!empty($_POST['b']));
if(!empty($_POST['c']));
if(!empty($_POST['d']))
{
echo "<form action=open.php method=post> <input type=hidden name=save value=$basename> </form> ";
// Открываем файл
//$filename = "$_POST['save']";
$fd = fopen("$_POST['save']","w");
// Записываем содержимое текстовых областей
fwrite($fd, $_POST['a']."|".$_POST['b']."|".$_POST['c']."|".$_POST['d']);
// Закрываем файл
fclose($fd);
}
?>
</body>
</html>
|
| |
|
|
|
|