Попровьте код пожалуйста

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
466
Реакции
16
Вот код
PHP:
<?php 
  

$loadcontent = $_GET['file'].'.php';

 if($_POST['save_file']) {
        $savecontent = stripslashes($_POST['savecontent']); 
        $fp = @fopen($loadcontent, "w"); 
        if ($fp) { 
            fwrite($fp, $savecontent); 
            fclose($fp);
print '<a href='.$_SERVER[PHP_SELF].'>Refresh</a>'; 
print "<html><head><META http-equiv=\"refresh\" content=\"0;URL=$_SERVER[PHP_SELF]\"></head><body>"; 
 
} 
} 
    $fp = @fopen($loadcontent, "r"); 
        $loadcontent = fread($fp, filesize($loadcontent)); 
$lines = explode("\n", $loadcontent);
$count = count($lines);
        $loadcontent = htmlspecialchars($loadcontent); 
        fclose($fp); 
for ($a = 1; $a < $count+1; $a++) {

}
?>

вся проблема тут
PHP:
$loadcontent = $_GET['file'].'.php';

через $_GET['file'] он не хочет сохранять содержимое файла, сначало якобы сохраняет, а после рефреша снова изначальное содержание.. а если указать файл на прямую

PHP:
$loadcontent = "home.php";

то сохраняет..
 
При обновлении данные и теряются.
Так попробуй:
PHP:
//Это:
print '<a href='.$_SERVER[PHP_SELF].'>Refresh</a>';  
print "<html><head><META http-equiv=\"refresh\" content=\"0;URL=$_SERVER[PHP_SELF]\"></head><body>"; 
//Замени на:
print "<a href=\"".$_SERVER[PHP_SELF]."?".$_GET['file']."\">Refresh</a>";  
print "<html><head><META http-equiv=\"refresh\" content=\"0;URL=$_SERVER[PHP_SELF]\"></head><body>";
 
При обновлении данные и теряются.
Так попробуй:
PHP:
//Замени на:
print "<a href=\"".$_SERVER[PHP_SELF]."?".$_GET['file']."\">Refresh</a>";  
print "<html><head><META http-equiv=\"refresh\" content=\"0;URL=$_SERVER[PHP_SELF]\"></head><body>";
Первая строка - это чтобы вручную перейти на страницу, если авторедирект в браузере выключен. Вторую строку тоже надо менять:
PHP:
print "<a href=\"".$_SERVER[PHP_SELF]."?".$_GET['file']."\">Refresh</a>";  
print "<html><head><META http-equiv=\"refresh\" content=\"0;URL=".$_SERVER[PHP_SELF]."?".$_GET['file']."\"></head><body>";
 
всё равно тоже самое:confused:

Добавлено через 1 минуту
PHP:
<p align="center">					<?php 
  if (!empty($_GET['file']) && strpos(DOCROOT.$_GET['file'].'.php', '/../')===false && is_file(DOCROOT.$_GET['file'].'.php'))
  
   {

        include (DOCROOT.'home.php');

    }

  

$loadcontent = $_GET['file'].'.php';

 if($_POST['save_file']) {
        $savecontent = stripslashes($_POST['savecontent']); 
        $fp = @fopen($loadcontent, "w"); 
        if ($fp) { 
            fwrite($fp, $savecontent); 
            fclose($fp);
print "<a href=\"".$_SERVER[PHP_SELF]."?".$_GET['file']."\">Refresh</a>";   
print "<html><head><META http-equiv=\"refresh\" content=\"0;URL=".$_SERVER[PHP_SELF]."?".$_GET['file']."\"></head><body>";  
 
} 
} 
    $fp = @fopen($loadcontent, "r"); 
        $loadcontent = fread($fp, filesize($loadcontent)); 
$lines = explode("\n", $loadcontent);
$count = count($lines);
        $loadcontent = htmlspecialchars($loadcontent); 
        fclose($fp); 
for ($a = 1; $a < $count+1; $a++) {

}
?> 
<form method=post action="<?=$_SERVER[PHP_SELF]?>"> 
&nbsp;<div align="center">
<table width="635" valign="top" border="3" cellspacing="0" cellpadding="0" bordercolor="#990000">
  <tr>
    <td width="76%" align="left" valign="top">
	<textarea style="text-align: left; padding: 0px; overflow: auto; border: 3px groove; font-size: 12px" name="savecontent" cols="84" rows="15" wrap="OFF"><?=$loadcontent?></textarea></td>
  </tr>
</table>

вот так вот это выглядит целиком
 
PHP:
print "<a href=\"?file=".$_GET['file']."\">Refresh</a>";
print "<html><head><META http-equiv=\"refresh\" content=\"0;URL=?file=".$_GET['file']."\"></head><body>";

и в форме
Код:
<form method="POST" action="">
 
Причем тут гет-переменная?
Весь затык как видится мне вот тут
PHP:
if($_POST['save_file']) {
При обновлении страницы (т.е. переотправка всех гет-переменных) код за этим условием не выполняется.
 
На что вы надеетесь проверяя ключ save_file которого не существует ни в посте ни в гете

PHP:
if($_POST['save_file'])

Проверяйте наличие данных в посте в поле savecontent

PHP:
if($_POST['savecontent'])
 
Назад
Сверху