ФорумПрограммированиеPHP для идиотов → Проблема с GET & POST

Проблема с GET & POST

  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 2 июля 2009 г. 15:38

    Привет всем!

    Ребята, у меня проблема возникла с GET массивом. Я написал админку по добавлению, редактированию, удалению статей. Использовал метод передачи данных ГЕТ. Когда статья добавлена нужно перейти в раздел "редактирование" и попробовать отредактировать статью. Если в статье мало текста, то все норм. А если его много то не все норм. При нажатии на кн. Сохранить (ГЕТ) выдается ошибка типа, слишком длинный урл.

    Я решил исп. метод ПОСТ. При этом методе не передаются переменные из формы в пост-обработчик. Что делать?

    Вот админка: http://bookarticle.jino.ru/gklgjdg=dg-045poyjl4--0d-fpogkdkg90e4p/
    Вот сайт: можете посмотреть как все работает: http://bookarticle.jino.ru/


  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 2 июля 2009 г. 15:42, спустя 4 минуты 46 секунд

    ты б код показал….
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 2 июля 2009 г. 15:51, спустя 9 минут 2 секунды

    При этом методе не передаются переменные из формы в пост-обработчик. Что делать?


    пиздеж
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 2 июля 2009 г. 15:52, спустя 33 секунды

    Уроки по PHP?
    Сам то знаешь его?

    Я тоже лет 7-8 назад прочитал 1 книжку по html и тоже сайт создавать начал "Уроки HTML".

    :D
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 2 июля 2009 г. 15:58, спустя 5 минут 37 секунд

    Форма файла edit.php


    <?php
    $adm_resultmysql = mysql_query("SELECT * FROM article WHERE id='$id_edit'", $connect);
    $adm_edit = mysql_fetch_array($adm_resultmysql);
    // Выводим форму добавления уроков
    if($adm_resultmysql)
    {
    printf ("<br>
    <div style='padding-left:10px; font-family:Verdana; font-size:12px;'>
    <div align='center'>Редактирование: <strong>%s</strong></div>
    <br>
    <form action='edit_post.php' method='get' name='add'>

    <label>
    <p>Введите название урока:</p>
    <input name='title' type='text' size='50' maxlength='255' value='%s'>
    </label>
    <br><br>
    <label>
    <p>Введите краткое описание урока:</p>
    <textarea name='short_news' cols='37' rows='5'>%s</textarea>
    </label>
    <br><br>
    <label>
    <p>Введите полное описание урока:</p>
    <textarea name='full_news' cols='37' rows='7'>%s</textarea>
    </label>
    <br><br>
    <label>
    <p>Введите автора урока:</p>
    <input name='author' type='text' size='30' maxlength='255' value='%s'>
    </label>
    <br><br>
    <label>
    <p>Укажите сложность урока (Сложный, Средняя, Легкий):</p>
    <input name='camplicated' type='text' size='30' maxlength='255' value='%s'>
    </label>
    <br><br>
    <label>
    <p>Адрес до картинки-миниатюры:</p>
    <input name='img' type='text' size='30' maxlength='255' value='%s'>
    </label>
    <br><br>
    <label>
    <p>Введите ключевые слова урока для поисковых сервисов:</p>
    <textarea name='meta_k' cols='37' rows='4'>%s</textarea>
    </label>
    <br><br>
    <label>
    <p>Введите описание урока для поисковых сервисов:</p>
    <textarea name='meta_d' cols='37' rows='4'>%s</textarea>
    </label>
    <input name='id_cat' type='hidden' value='%s'>
    <br><br>
    <input name='submit' type='submit' value='Обновить данные' style='border:1px solid #cccccc; background-color:#f6f6f6;'>
    </form>
    </div>
    <br>", $adm_edit['title'], $adm_edit['title'], $adm_edit['short_news'], $adm_edit['full_news'], $adm_edit['author'], $adm_edit['camplicated'],$adm_edit['img'], $adm_edit['meta_k'], $adm_edit['meta_d'], $adm_edit['id']);
    }
    ?>






    Форма обработчика:


    <?php include('config.php');
    // Проверка существования id_cat
    if(isset($_GET['id_cat']))
    {
    $id_cat = $_GET['id_cat'];
    }
    if($id_cat == '')
    {
    unset($id_cat);
    }
    // Проверка существования title
    if(isset($_GET['title']))
    {
    $title = $_GET['title'];
    }
    if($title == '')
    {
    unset($title);
    }
    // Проверка существования short_news
    if(isset($_GET['short_news']))
    {
    $short_news = $_GET['short_news'];
    }
    if($short_news == '')
    {
    unset($short_news);
    }
    // Проверка существования full_news
    if(isset($_GET['full_news']))
    {
    $full_news = $_GET['full_news'];
    }
    if($full_news == '')
    {
    unset($full_news);
    }

    // Проверка существования author
    if(isset($_GET['author']))
    {
    $author = $_GET['author'];
    }
    if($author == '')
    {
    unset($author);
    }

    // Проверка существования camplicated
    if(isset($_GET['camplicated']))
    {
    $camplicated = $_GET['camplicated'];
    }
    if($camplicated == '')
    {
    unset($camplicated);
    }
    // Проверка существования img
    if(isset($_GET['img']))
    {
    $img = $_GET['img'];
    }
    if($img == '')
    {
    unset($img);
    }

    // Проверка существования meta_k
    if(isset($_GET['meta_k']))
    {
    $meta_k = $_GET['meta_k'];
    }
    if($meta_k == '')
    {
    unset($meta_k);
    }
    // Проверка существования meta_d
    if(isset($_GET['meta_d']))
    {
    $meta_d = $_GET['meta_d'];
    }
    if($meta_d == '')
    {
    unset($meta_d);
    }

    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title></title>
    <link href="css/css.css" rel="stylesheet" type="text/css">


    </head>

    <body>
    <div align="center">
    <table  class="table_adm">
    <?php include('include/header.php'); ?>
     <tr>
       <td width="218" align="left" valign="top">
    <table width="220" >
         <?php include('include/menuleft.php'); ?>
       </table>
    <br>
    </td>
       <td width="478" align="left" valign="top" class="content_adm">
    <?php
    if(isset($title) && isset($short_news) && isset($full_news) && isset($author) && isset($camplicated) && isset($img) && isset($meta_k) && isset($meta_d))
    {
    $adm_update = mysql_query("UPDATE article SET title='$title', short_news='$short_news', full_news='$full_news', author='$author', camplicated='$camplicated', img='$img', meta_k='$meta_k', meta_d='$meta_d' WHERE id='$id_cat'", $connect);
    if($adm_update = 'true')
    {
    echo "<div style='padding:10px;'>Обновлено!</div>";
    }
    else
    {
    echo "<div style='padding:10px;'>Обновление не произошло!</div>";
    echo mysql_error();
    }
    }
    else
    {
    echo "<div style='padding:10px;'>Вы заполнили не все поля! Пожалуйста, вернитесь назад и заполните пустые поля.<br><br> <input name='back' type='button' value='Вернуться' onclick='javascript:self.back();' style='border:1px solid #cccccc; background-color:#f6f6f6;'> </div>";
    }
    ?>



    </td>
     </tr>
    <?php include('include/footer.php'); ?>
    </table>
    </div>

    </body>
    </html>

    Спустя 98 сек.

    Уроки по PHP?
    Сам то знаешь его?

    Я тоже лет 7-8 назад прочитал 1 книжку по html и тоже сайт создавать начал "Уроки HTML".

    :D


    Я там буду размещать статьи других людей. Давать адрес источника и имя автора. Ну можь и сам что выложу… но это будет смертельный номер ))
    Спустя 88 сек.
    А вот и сама проблема в видео:

    http://bookarticle.jino.ru/php.swf сохраниете и гланьте
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 2 июля 2009 г. 16:02, спустя 4 минуты 33 секунды

    Тут же все GET
    Ты покажи как POST у тебя не работает!
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 2 июля 2009 г. 16:05, спустя 3 минуты 24 секунды

    Хорошо, переделаю, выложу…
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 2 июля 2009 г. 16:08, спустя 2 минуты 5 секунд

    if(isset($_GET['meta_d']))
    {
       $meta_d = $_GET['meta_d'];
    }
       if($meta_d == '')
       {
           unset($meta_d);
       }  

    жесть =)

    Как минимум так делай =)
    if(isset($_GET['meta_d'])&&$_GET['meta_d']!="")
    {
       $meta_d = $_GET['meta_d'];
    }

       
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 2 июля 2009 г. 16:09, спустя 1 минуту 24 секунды

    ппц  на пiха.ру
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 2 июля 2009 г. 16:15, спустя 6 минут 19 секунд

    // Проверка существования id_cat
    if(isset($_POST['id_cat']) && $_POST['id_cat'] != "")
    {
    $id_cat = $_POST['id_cat'];
    }
    else
    {
    unset($id_cat);
    }



    Вот так делаю
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 2 июля 2009 г. 16:16, спустя 1 минуту 1 секунду


    // Проверка существования id_cat
    if(isset($_POST['id_cat']) && $_POST['id_cat'] != "")
    {
    $id_cat = $_POST['id_cat'];
    }
    else
    {
    unset($id_cat);
    }



    Вот так делаю
    Это пиздец…
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 2 июля 2009 г. 16:17, спустя 28 секунд

    else
       {
           unset($id_cat);
       }

    Это зачем?
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 2 июля 2009 г. 16:20, спустя 3 минуты 20 секунд


    if(!isset($_POST['some']) || !isset($_POST['some1']) || !isset($_POST['some2']) || !isset($_POST['some3']))
    {
    echo "Введи все данные во все формы!!!\n";
    }
    else
    {
    //тут делаем че надо…
    }
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 2 июля 2009 г. 16:22, спустя 2 минуты 14 секунд


    else
       {
           unset($id_cat);
       }

    Это зачем?



    Там ниже идет проверка перед внесением в базу
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 2 июля 2009 г. 16:25, спустя 2 минуты 37 секунд

    Вообще назуя  ты 2 раза одно и тоже проверяешь?

    во тебе решение
    $error=0; 
    <?if($_POST['id_cat'] == ""||$_POST['meta_d']==""…)
    {
    $error=1;
    }

    ?>



    if($error==1)
    {
       $adm_update = mysql_query("UPDATE article SET title='$title', short_news='$short_news', full_news='$full_news', author='$author', camplicated='$camplicated', img='$img', meta_k='$meta_k', meta_d='$meta_d' WHERE id='$id_cat'", $connect);
       if($adm_update = 'true')
       {
           echo "<div style='padding:10px;'>Обновлено!</div>";
       }
           else
       {
           echo "<div style='padding:10px;'>Обновление не произошло!</div>";
           echo mysql_error();
       }
    }
    Спустя 131 сек.


    if(!isset($_POST['some']) || !isset($_POST['some1']) || !isset($_POST['some2']) || !isset($_POST['some3']))
    {
    echo "Введи все данные во все формы!!!\n";
    }
    else
    {
    //тут делаем че надо…
    }



    Не правильно. Переменные могут существовать но быть пустыми.


    Еще, обязательно перед все нужно сделать

    $_POST=array_map("trim",$_POST);
    А то пробелов нахватаешь =)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!