PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (3): [1] 2 3 »

> Найдено сообщений: 33
makc9I Отправлено: 22 Марта, 2013 - 07:28:43 • Тема: способы передачи данных из форм • Форум: Хранение данных, их вывод и обработка

Ответов: 2
Просмотров: 1090
Ну раз это нормально, тогда и париться не буду. Улыбка
makc9I Отправлено: 21 Марта, 2013 - 09:17:48 • Тема: способы передачи данных из форм • Форум: Хранение данных, их вывод и обработка

Ответов: 2
Просмотров: 1090
Всем привет. Возможно моя проблема возникла просто из-за незнания. Уже не раз сталкивался с проблемами передачи данных из формы. Точнее даже не с самими данными из формы, а с сопутствующими им данными, чтобы знать, куда в базу эти данные положить.
Наверно проще это понять на примере.
Я совсем не профессионал в веб-разработке, скорее дилетант-любитель, но порой мне приходилось делать кое-какие вещи. И те решения, которые я придумывал, как-то тревожат душу что ли, чувствуется, что делаю что-то не так.
Пример:
Есть страница с комментариями, куда зашел админ.
Админ может отредактировать любой комментарий, ответить на него, отредактировать свой ответ, ну и удалить все это.
Выглядит это примерно так:


Клик по кнопке редактирования/ответа показывает заранее созданную форму с полем ввода и кнопкой отправки.

И вот тут то начинаются танцы с бубном. Текст от мы ввели/отредактировали, как понять, куда этот текст вставлять в базу. Я эту проблему решаю таким способом: К форме прикручивается еще один input с прикрепленным id данной записи. А сам input делается скрытым. Тем самым при отправке мы в массиве $POST имеем данные о самом тексте и данные об id, куда это вставлять. Именно этот костыль мне не дает покоя. Как сделать проще? Куда и каким образом можно вложить данные при отправке формы другими способами?

Вот сейчас занимаюсь очередной задачей, и снова проблема, как передать дополнительные данные при отправке формы, которые никуда непосредственно не вводятся.

Надеюсь я смог объяснить свою проблему.
makc9I Отправлено: 05 Октября, 2012 - 19:09:18 • Тема: Подтверждение при удалении из БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 430
Спасибо, с хередоком все заработало Улыбка
makc9I Отправлено: 05 Октября, 2012 - 18:43:40 • Тема: Подтверждение при удалении из БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 430
как то странно, у меня не работает ни в мозиле ни в хроме. Вообще никаких окон не выскакивает
makc9I Отправлено: 05 Октября, 2012 - 18:33:45 • Тема: Подтверждение при удалении из БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 430
AlexAnder никакой реакции Недовольство, огорчение
Приложу весь файл.

сама ссылка на 211 строке
makc9I Отправлено: 05 Октября, 2012 - 17:28:02 • Тема: Подтверждение при удалении из БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 430
Всем доброго дня. Необходимо получать подтверждение при попытке клика на удалить.
Делал так, как нагуглил.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. echo "<a href='{$_SERVER['PHP_SELF']}?del=$id' onclick="if(confirm(\'Точно хочешь удалить?\'))submit();else return false;">Удалить</a>";
  3.  


Никаких confirm не выскакивает и все спокойно удаляется без подтверждения.
Поиск в других местах приводил на какие то громадные куски кода, неужели все так мудрено здесь?
makc9I Отправлено: 04 Октября, 2012 - 19:48:18 • Тема: Редактирование/комментирование отзывов админом • Форум: Вопросы новичков

Ответов: 1
Просмотров: 126
решил для начала упростить задачу, создав 2 файла: edit.php(для редактирования) и comment.php (для комментирования). Ссылки редактировать и комментировать просто отправляют на соответствующие файлы с припиской айдишника записи. К примеру: http://nabu/comment.php?comment=20
В самом файле есть лишь input типа texarea и кнопка submit.
Там я работаю с базой данной, обновляю поле на новый текст и редирекчю хедером назад на главную страницу. Но даже тут возникла проблема. Я не могу понять, как мне получить id комментария, не используя сессий и кукисов. Массив GET почему-то оказывается пустым.
Как-то сложно все по объяснению вышло. Лучше файл прикреплю.
makc9I Отправлено: 04 Октября, 2012 - 14:44:07 • Тема: Редактирование/комментирование отзывов админом • Форум: Вопросы новичков

Ответов: 1
Просмотров: 126
Всем доброго дня. Есть страница с отзывами.

Нажмите для увеличения


Отзывы могут комментироваться администратором, а также редактироваться им.
Требуется, чтобы по клику на редактировать/комментировать появлялось поле для редактирования/комментирования сообщения.

Не могу сообразить, как это лучше сделать.
Рад был бы выслушать ваши идеи.
makc9I Отправлено: 04 Октября, 2012 - 13:58:20 • Тема: проблема с header • Форум: Вопросы новичков

Ответов: 7
Просмотров: 198
Alho,спасибо, помогло!
makc9I Отправлено: 04 Октября, 2012 - 13:39:03 • Тема: проблема с header • Форум: Вопросы новичков

Ответов: 7
Просмотров: 198
да я это знаю, только не смог найти ничего такого до вызова header, т.е. до 24 строки. Или надо смотреть ниже?
makc9I Отправлено: 04 Октября, 2012 - 13:27:52 • Тема: проблема с header • Форум: Вопросы новичков

Ответов: 7
Просмотров: 198
на 24 строке я умышленно перезапрашиваю страницу через хедер. Он же как я понял ругается на 1ую строку, говоря что уже там хедеры былы высланы.
makc9I Отправлено: 04 Октября, 2012 - 13:15:53 • Тема: проблема с header • Форум: Вопросы новичков

Ответов: 7
Просмотров: 198
Всем доброго дня. Не могу понять, почему получаю ошибку Warning: Cannot modify header information - headers already sent by (output started at Z:\home\nabu\www\index.php:1) in Z:\home\nabu\www\index.php on line 24

Я не вижу никаких выводов.
Файл прикрепил.
makc9I Отправлено: 03 Июля, 2012 - 11:44:10 • Тема: прошу помощи!!! • Форум: Вопросы новичков

Ответов: 27
Просмотров: 959
сделайте, как написал Muxa
PHP:
скопировать код в буфер обмена
  1. header("Content-type:text/html; charset=utf-8");


еще вариант, создать текстовый файл в той же папке, что и php файл, назвать его .htaccess, и прописать там строчку
CODE (htmlphp):
скопировать код в буфер обмена
  1. AddDefaultCharset utf-8

Тогда все файлы из этой папки будут отображаться в кодировке UTF-8, и каждый раз прописывать ее через header будет не нужно.
makc9I Отправлено: 02 Июля, 2012 - 21:26:17 • Тема: header(location) • Форум: Вопросы новичков

Ответов: 9
Просмотров: 383
Да, затупил я конкретно. Спасибо за разъяснения. Как только запостил код, сам и врубился Улыбка
makc9I Отправлено: 02 Июля, 2012 - 21:20:08 • Тема: header(location) • Форум: Вопросы новичков

Ответов: 9
Просмотров: 383
почему тогда работает такой код?
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. define("GBOOK","gbook.xml");
  3. if($_SERVER["REQUEST_METHOD"] == "POST"){
  4.         $nameTxt = addslashes(stripslashes(trim(strip_tags($_POST['name']))));
  5.         $emailTxt = stripslashes(trim(strip_tags($_POST['email'])));
  6.         $msgTxt = addslashes(stripslashes(trim(strip_tags($_POST['msg']))));
  7.         $ipTxt = $_SERVER["REMOTE_ADDR"];
  8.         $dateTxt = date("d-m-Y H:i:s");
  9.  
  10.         $dom = new DOMDocument("1.0", "utf-8");
  11.         if (file_exists(GBOOK)) {
  12.                 // Файл есть
  13.                 // Загрузка XML-документа в объект
  14.                 $dom->load(GBOOK);
  15.                 // Получение корневого элемента
  16.                 $users = $dom->documentElement;
  17.         } else {
  18.                 // Файла нет
  19.                 // Создание корневого элемента
  20.                 $users = $dom->createElement("users");
  21.                 // Привязка к объекту
  22.                 $dom->appendChild($users);
  23.         }
  24.         // Создание новых XML-элементов
  25.         $user = $dom->createElement("user");
  26.  
  27.         // Элемент name
  28.         $name = $dom->createElement("name");
  29.         // Текстовое содержимое узла
  30.         $nametext = $dom->createTextNode($nameTxt);
  31.         // Присоединение узлов
  32.         $name->appendChild($nametext);
  33.         $user->appendChild($name);
  34.  
  35.         // Элемент email
  36.         $email = $dom->createElement("email");
  37.         // Текстовое содержимое узла
  38.         $emailtext = $dom->createTextNode($emailTxt);
  39.         // Присоединение узлов
  40.         $email->appendChild($emailtext);
  41.         $user->appendChild($email);
  42.  
  43.         // Элемент msg
  44.         $msg = $dom->createElement("msg");
  45.         // Текстовое содержимое узла
  46.         $msgtext = $dom->createTextNode($msgTxt);
  47.         // Присоединение узлов
  48.         $msg->appendChild($msgtext);
  49.         $user->appendChild($msg);
  50.  
  51.         // Элемент ip
  52.         $ip = $dom->createElement("ip");
  53.         // Текстовое содержимое узла
  54.         $iptext = $dom->createTextNode($ipTxt);
  55.         // Присоединение узлов
  56.         $ip->appendChild($iptext);
  57.         $user->appendChild($ip);
  58.  
  59.         // Поле date
  60.         $date = $dom->createElement("date");
  61.         // Текстовое содержимое узла
  62.         $datetext = $dom->createTextNode($dateTxt);
  63.         // Присоединение узлов
  64.         $date->appendChild($datetext);
  65.         $user->appendChild($date);
  66.        
  67.         // Присоединение нового элемента к корневому
  68.         $users->appendChild($user);
  69.  
  70.         // Сохранение файла
  71.         $dom->save(GBOOK);
  72.         header("Location: ".$_SERVER["PHP_SELF"]);
  73.         exit;
  74. }
  75. ?>
  76.  
  77. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  78.  
  79. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
  80. <head>
  81.         <title>Гостевая книга</title>
  82.         <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
  83. </head>
  84. <body>
  85.  
  86. <h1>Гостевая книга</h1>
  87.  
  88. <form action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post">
  89.  
  90. Ваше имя:<input type="text" name="name" />Ваш E-mail:<input type="text" name="email" />Сообщение:<textarea name="msg" cols="50" rows="5"></textarea><input type="submit" value="Добавить!" />
  91.  
  92. </form>
  93.  
  94. <?PHP
  95. if(file_exists(GBOOK)){
  96.         $users = simplexml_load_file(GBOOK);
  97.         //$users = (array)$sxml;
  98.         //$users = array_reverse($users['user']);
  99.         echo "Записей в Гостевой книге: ".count($users)."</p>";
  100.         foreach($users->user as $user){
  101.                 echo <<<LABEL
  102.                 <hr>
  103.                 <p>
  104.                         <b><a href="mailto:{$user->email}">{$user->name}</a></b> [{$user->ip}] @ {$user->date}
  105.                         <br />{$user->msg}
  106.                 </p>
  107. LABEL;
  108.         }
  109. }else{
  110.         echo "<p>Записей в Гостевой книге: 0</p>";
  111. }
  112. ?>
  113.  
  114. </body>
  115. </html>

это рабочий пример из видеокурса.
(Добавление)
Все понял, туплю, просто нужна проверка на метод POST, при перезагрузке заголовком он сменится на GET.

Страниц (3): [1] 2 3 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB