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

Тема в разделе "PHP", создана пользователем vave, 18 янв 2011.

Модераторы: latteo
  1. vave

    vave

    Регистр.:
    23 июн 2007
    Сообщения:
    364
    Симпатии:
    14
    Вот код
    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($fpfilesize($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"
    то сохраняет..
     
  2. komyak

    komyak

    Регистр.:
    4 фев 2009
    Сообщения:
    482
    Симпатии:
    183
    При обновлении данные и теряются.
    Так попробуй:
    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>"
     
  3. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.183
    Первая строка - это чтобы вручную перейти на страницу, если авторедирект в браузере выключен. Вторую строку тоже надо менять:
    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>"
     
  4. vave

    vave

    Регистр.:
    23 июн 2007
    Сообщения:
    364
    Симпатии:
    14
    всё равно тоже самое: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($fpfilesize($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>
    вот так вот это выглядит целиком
     
  5. pitkina

    pitkina

    Регистр.:
    1 апр 2007
    Сообщения:
    253
    Симпатии:
    176
    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="">
     
  6. propovednik

    propovednik Постоялец

    Регистр.:
    16 май 2008
    Сообщения:
    104
    Симпатии:
    21
    Причем тут гет-переменная?
    Весь затык как видится мне вот тут
    PHP:
    if($_POST['save_file']) { 
    При обновлении страницы (т.е. переотправка всех гет-переменных) код за этим условием не выполняется.
     
  7. Allary

    Allary Писатель

    Регистр.:
    3 ноя 2008
    Сообщения:
    6
    Симпатии:
    1
    На что вы надеетесь проверяя ключ save_file которого не существует ни в посте ни в гете

    PHP:
    if($_POST['save_file'])
    Проверяйте наличие данных в посте в поле savecontent

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