PHP: вопросы и ответы

Незнайка

Старожил
Сделал всё как советовали, но увы... В визуальном редакторе меню появляется, но как запускаю страницу через localhost - пустота.
Настройки проверил несколько раз, посмотрел учебник по РНР, но эффекта не получил.

В варианте выложенном на платном хосте тоже ничего не получается. Поэтому я дал всем файлам расширение .php, как на http://ise.gtn.ru/bmw/ и повставлял куда надо
Код:
<?PHP
require "menu.html";
?>
Пусть так и работает. Спасибо всем, кто принимал участие в обсуждении проблемы.

ЗЫ: будет время всё-таки попробую разобраться что же не так.
 

Незнайка

Старожил
Всё-таки я с проблемой разобрался. Оказывается у подключаемого файла должно было быть расширение .shtml, т.е. menu.shtml

Выложил на хост глобальный - не работает, хотя в службе поддержки сказали, что SSI подключен. Создал в корне файл .htaccess
Код:
AddType text/html .shtml .html
AddHandler server-parsed .shtml .html
и всё заработало.

На всякий случай адресс (может кому интересно): http://gamesgtn.ru
 

M666

Участник
у меня баг когда ктонибудь пишет пост даже после прочтения иконка не гаснет и после входа минут через 40 кидает неподскажите как от него избавиться.
 

Maximka

Старожил
код 1 страници
Код:
<form action="1.php" method="get">
<input type="text" name="name" value="ваше имя">
<input type="submit"  value="Гоу">
</form>
2 страница , требуется вывод переменной "name"

Код:
<?php
echo "$name <br>" ;
?>

вывода не происходит :( как объявить переменную или что надо сделать ?
 

Nonick

Старожил
Переменная name находится в массиве $_GET.
Код будет такой

Код:
<?
echo $_GET['name']." <br>" ; 
?>
 

Maximka

Старожил
вопрос по cookie

1 файл , посылает запрос
Код:
<form action="reg2.php" method="get" >
<input type="text" name="nik" value="ваше имя" width="500" >
<input type="submit"  value="Гоу">
</form>

2 файл создаёт cookie
Код:
<?php
setcookie("nik" , $_GET['nik'] , time() + 864000 );
?>

третий файл выводит значение
Код:
<?php
echo $_cookie["nik"] ;
?>

ощибок не выводит , просто в третьем файле ничего не выводится :(
 

Ooa

Старожил
меня смущают твои кавычки, у тебя в коде то двойные, то одинарные стоят...
 

Nonick

Старожил
Все предопределённые массивы пишутся с большой буквы.
$_COOKIE
$_POST
$_GET
$_SERVER
etc
 

Pit

Старожил
Проблема следующая: есть html форма из которой переменные должны записываться в базу(MySQL).Форма исполняеться файлом PHP.

Код:
//Соединяюсь с базой
//далее пишу запрос
$query = "INSERT INTO table VALUES(0,'$name','$email', '$preference')";

$result = MYSQL_QUERY($query);

Но набирая команду
Код:
select * from table;
пишет
Код:
Empty set (0.06)

В чем дело?



Спасибо разобрался :p
 

Night_Elf

Старожил
даже не знаю, как такое сформулировать...
Есть вот такая система:
существует файл index.php, в нём меню, таблица стилей и тд. И вот такая строчка:
Код:
<? include($page.".html");?>
С её помощью внутрь файла вставляется контент.
Но проблема в том, что у меня есть много файлов с контентом, которые лежат вообще на другом винче. Доступ к ним через http открыт, но как инклюдить их в index.php?
 

Nonick

Старожил
Можно подключить любой файл с локальной файловой системы
Код:
<? include('d:\file.htm');?>

В твоём случае можно сделать так:
Код:
<?
$inc_path='d:\files'; // папка с файлами

if(file_exists($inc_path.'/'.$page.'.htm'))
{
   include($inc_path.'/'.$page.'.htm');
}
else
{
   include($page.'.htm');
}
?>

Хотя это всё очень несовершенно... :?
 

Незнайка

Старожил
Есть форма из двух полей для добавления коментария. Работает нормально, всё заносится в базу. Но не всегда всё работает корректно.

Если попытаться повторно отправить комментарий (поля формы после перезагрузки страницы визуально пустые), то реакция программы на это правильная: выдаётся сообщение, что отсутствует информация.
Но если обновить страницу любым способом (F5, Ctrl+R и т.д), то ранее набранный комментарий повторно заносится в базу данных. При этом визуально поля формы, повторяю, пустые. Рефрешить можно до бесконечности и каждый раз будет добавлятся старая информация.

Попытка обнулять переменные, соответствующие полям формы результата не дали. Похоже инфа где-то кэшируется, хотя на странице стоит запрет кэширования.

Как поступить в этом случае?
 

kenZZZo

Старожил
Я в таких случаях применяю переадресацию
(Т.е. после занесения данных в БД клиент перенаправляется на др. УРЛ)
либо внешнюю - через мета тег
Код:
<meta http-equiv='Refresh' Content='0; URL=postdata.php'>
либо внутреннюю
Код:
<?php
header("Location: postdata.php");
?>
предпочтительнее второе
 

Незнайка

Старожил
Это понятно. В таком случае, проще разнести форму и запись в БД по разным скриптам и вызывать срипт записи чере action="file2.php", а в этом скрипте в конце через
Код:
header("Location: file1.php");
возвращаться на страницу с формой. Щас так и попробую.

Кстати, столкнулся ещё с одной бякой: текст сохраняется и выводиться не форматированный. При этом, если при написании комента использовать теги <P>, <BR> - то форматирование сохраняется.
Как быть в этом случае?

---------------------------------------
Разнёс по файлам - всё супер. С форматированием пока гемор.
 

Незнайка

Старожил
Не сохраняются переводы строк и деление на абзацы. Текст выводится сплошняком.

Вот я щас нажал 2 раза <ENTER> и эта строка началась с нового абзаца. А при сохранении комментария всё выводится одной строкой.
 

A4

Старожил
ммм. комментарии в базе? дык сохраняй их в html-виде. ф-ция nl2br() например.
 

Незнайка

Старожил
Ну а где ещё хранить? Это к новостям комментриев немного будет - только в день выкладывания новости. А статьи, их читают и сейчас и читать будут через 5 лет. За это время сколько коментов накопится. Не хранитьже всё в текстовых файлах. И потом, текстовые файлы используют, когда проблемы с созданием БД (допустим хостер такой услуги не оказывает).

Дело не в способе сохранения и не в базе данных.

Ещё до сохранения есть возможность предосмотра комментария (типа как здесь в форуме). Так вот, уже в превьюшке форматирование теряется.

Ну а по большому счёту, если просмотреть соответствующие поля базы данных, то там введённый текст сохраняется с учётом переноса строки. Но при выводе всё-равно выглядит как неформатированный.
 
Верх