Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись данных из формы в файл, в header() ошибка 
:(
    Опции темы
vitalina
Дата 1.9.2008, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.11.2007
Где: Riga

Репутация: -3
Всего: -4



Это основной файл:
Код


<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">


<TITLE>dfg.html</TITLE>
</HEAD>
<style type="text/css">
BODY { 
overflow: hidden; /*prokrutka*/
 background-image: url('web_jurm.gif'); /* */
 background-position: center top; /*  */
 background-repeat: repeat-y; /* */
background-color:transparent; /*cvet fona*/


}
.div1 {
  border: #000000 1px solid;
/*  float: left;
  width: 100px;
  height: 550px; */
  width:780px;
  height: 20px;
  background-color: #6666ff;
  margin-top:0px;

}
a:visited {
   color: #00CC00;
   text-decoration:none;
   font-weight: bolder;
}

a:link {
   color: #9900FF;
   text-decoration:none;
   font-weight: bolder;

}

a:hover {
   color: #9900FF;
   text-decoration:underline;
   font-weight: bolder;
}

a:active {
   color: #FF0000;
   text-decoration:underline;
   font-weight: bolder;
}


.div2 {
  border: #000000 1px solid;
/*  float: right;
  width: 600px;
  height: 550px;     */
  width:780px;
  height: 361px;
 /* background-color: #87CEEB;*/
background-color: #ffffff;



}


</style>

<BODY topmargin="0" leftmargin="0">

<table align="center" border="0"><tr><td valign="top">
 <div class="div1" align="center">

 <a href="index.php?page=portfolio">Портфолио</a>


  </div>

<div class="div2" >


    <div style="margin-top: 0px; margin-left: 7px;">

    <?php


if (isset($_GET['page'])) {
    //навигация

//переменная "где вы находитесь"
$history = ' <a href="index.php">Главная страница</a>';
//прием переменной $pages
switch( $_GET['page'] ) {

    //если выбрано books
    case "portfolio":
        //добавляем продолжение "пути"
        $history .= '/ <a href="index.php?page=portfolio">Портфолио</a>';
        echo $history;
     
        break;
    
    //если выбрано главная страница
    default:
        echo $history;
      
        break;
};

  //навигация

//переменная "где вы находитесь"
$history = ' <a href="index.php">Главная страница</a>';
//прием переменной $pages
switch( $_GET['pa'] ) {

   
    case "fbm":
        //добавляем продолжение "пути"
        $history2 = '/ <a href="index.php?page=portfolio&pa=fbm">ФБМ</a>';
        echo $history2;
      
        break;
    case "grafika":
        //добавляем продолжение "пути"
        $history2 = '/ <a href="index.php?page=portfolio&pa=fbm">Графика</a>';
        echo $history2;
      
        break;
  
       
    //если выбрано главная страница
    default:
        echo $history2;
     
        break;
};
    include($_GET['page'].'.php');

}

else
{


include('formafail.php');



}
?>
    </div>

</div>
<div class="div1" align="center">
 Контакты


  </div>
</td></tr></table>

</BODY>
</HTML>



Файл с формой:

Код

<?php
Error_Reporting(E_ALL & ~E_NOTICE);

//переменная ошибок
$error=array();

//обработчик формы 
if (!empty($_POST))
{
    //проверка параметра
    //функция str_replace() необходима чтобы вырезать переводы строк ( \n ) 
    $var=str_replace("\n",'',trim($_POST['var']));
    if (empty($var))
    $error['empty']='не введен параметр';
    

    //если все нормально пишем в файл
    if (empty($error))
    {
        //открываем
        $f=fopen('db.txt','a+');
        
        //блокируем 
        flock($f,2);
        
        //запись с переводом строки
        fwrite($f,$var."\n");
         //32

        //закрытие
        fclose($f);
        
        /*переадресация , чтобы сбросить пост, это нужно чтобы при нажатии кнопки обновить 
         данные не добавились вновь*/
    header('Location: '.$_SERVER["PHP-SELF"].'?ok=1'); // [color=orangered]не срабатывает[/color]
     die();
    }
}

//если есть ошибки выводим
if (!empty($error))
echo '<p>'.implode('<br />',$error).'</p>';

if (isset($_GET['ok'])) 
{

echo '<br><br>Выберите наверху один из разделов сайта!';

} else {



//сама форма
?>

<form action="<?=$_SERVER["PHP-SELF"];?>" method="post"> //[color=orangered]ругается[/color]
<p>
Сколько Вам лет?:<br />
<input name="var" value="<?=isset($_POST['var']) ? htmlspecialchars(stripslashes(trim($_POST['var']))) : '';?>" /><br />
<input type="submit" value="отправить" />
</p>
</form>
<?php
}


?> 


В результате на главной странице вы даёт:

Warning: Cannot modify header information - headers already sent by (output started at C:\Documents and Settings\kornijenkon\Desktop\index.php:9) in C:\Documents and Settings\kornijenkon\Desktop\formafail.php on line 35

--------------------
kornienko.ru - мой настоящий проект.
PM MAIL WWW Skype   Вверх
americanets
Дата 1.9.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



vitalina, нельзя ничего принтить эхоть , вобщем выводить до   header , иначе он тебе и пишет то, что  заголовки уже отправлены


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
vitalina
Дата 1.9.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.11.2007
Где: Riga

Репутация: -3
Всего: -4



Ti imeesh vvidu formu do header? Ja probovala, ne polu4aetsja. 

Это сообщение отредактировал(а) vitalina - 1.9.2008, 13:09
--------------------
kornienko.ru - мой настоящий проект.
PM MAIL WWW Skype   Вверх
Wheels
Дата 1.9.2008, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 1.2.2007

Репутация: нет
Всего: 1



в каком месте выводится форма? Обратите внимание, что что-то уже выведено до header.


попробуйте открыть страницу с ошибкой в виде кодам в браузере, иногда помогает)

Долго разбираться не стал, но по-моему у Вас инклюдится файл с формой уже после того, как выведено это:

Код

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">


<TITLE>dfg.html</TITLE>
</HEAD>
<style type="text/css">
BODY { 
overflow: hidden; /*prokrutka*/
 background-image: url('web_jurm.gif'); /* */
 background-position: center top; /*  */
 background-repeat: repeat-y; /* */
background-color:transparent; /*cvet fona*/


}
.div1 {
  border: #000000 1px solid;
/*  float: left;
  width: 100px;
  height: 550px; */
  width:780px;
  height: 20px;
  background-color: #6666ff;
  margin-top:0px;

}
a:visited {
   color: #00CC00;
   text-decoration:none;
   font-weight: bolder;
}

a:link {
   color: #9900FF;
   text-decoration:none;
   font-weight: bolder;

}

a:hover {
   color: #9900FF;
   text-decoration:underline;
   font-weight: bolder;
}

a:active {
   color: #FF0000;
   text-decoration:underline;
   font-weight: bolder;
}


.div2 {
  border: #000000 1px solid;
/*  float: right;
  width: 600px;
  height: 550px;     */
  width:780px;
  height: 361px;
 /* background-color: #87CEEB;*/
background-color: #ffffff;



}


</style>

<BODY topmargin="0" leftmargin="0">

<table align="center" border="0"><tr><td valign="top">
 <div class="div1" align="center">

 <a href="index.php?page=portfolio">Портфолио</a>


  </div>

<div class="div2" >


    <div style="margin-top: 0px; margin-left: 7px;">

PM MAIL ICQ   Вверх
americanets
Дата 1.9.2008, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



vitalina, + у вас utf , обратите внимание на bom символы


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
vitalina
Дата 1.9.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.11.2007
Где: Riga

Репутация: -3
Всего: -4



Wheels,  da i 4to?


americanets, na kakie simvoli? Poponjatnee mozhno?
--------------------
kornienko.ru - мой настоящий проект.
PM MAIL WWW Skype   Вверх
americanets
Дата 1.9.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12





--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
vitalina
Дата 1.9.2008, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.11.2007
Где: Riga

Репутация: -3
Всего: -4



Ja ne ponjala! Objasni sam.
--------------------
kornienko.ru - мой настоящий проект.
PM MAIL WWW Skype   Вверх
Wheels
Дата 1.9.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 1.2.2007

Репутация: нет
Всего: 1



Header прописан в файле с формой, так?

А файл с формой инклюдится в другой файл. А в этом другом файле до того, как заинклюдится файл с формой уже отдали кучу информации пользователю:
Код

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">


<TITLE>dfg.html</TITLE>
</HEAD>
<style type="text/css">
BODY { 
overflow: hidden; /*prokrutka*/
 background-image: url('web_jurm.gif'); /* */
 background-position: center top; /*  */
 background-repeat: repeat-y; /* */
background-color:transparent; /*cvet fona*/


}
.div1 {
  border: #000000 1px solid;
/*  float: left;
  width: 100px;
  height: 550px; */
  width:780px;
  height: 20px;
  background-color: #6666ff;
  margin-top:0px;

}
a:visited {
   color: #00CC00;
   text-decoration:none;
   font-weight: bolder;
}

a:link {
   color: #9900FF;
   text-decoration:none;
   font-weight: bolder;

}

a:hover {
   color: #9900FF;
   text-decoration:underline;
   font-weight: bolder;
}

a:active {
   color: #FF0000;
   text-decoration:underline;
   font-weight: bolder;
}


.div2 {
  border: #000000 1px solid;
/*  float: right;
  width: 600px;
  height: 550px;     */
  width:780px;
  height: 361px;
 /* background-color: #87CEEB;*/
background-color: #ffffff;



}


</style>

<BODY topmargin="0" leftmargin="0">

<table align="center" border="0"><tr><td valign="top">
 <div class="div1" align="center">

 <a href="index.php?page=portfolio">Портфолио</a>


  </div>

<div class="div2" >


    <div style="margin-top: 0px; margin-left: 7px;">


До того места, где в коде встречается функция Header не должно быть ниодного символа, который бы был отдан пользователю, а у Вас - целая поэма). Как-то так.

Добавлено через 1 минуту и 34 секунды
Тут нужно целиком структуру пересматривать. Изначально неправильно "скелет" построен. Или уже отказываться от заголовков (перенаправления с помощью header).

Добавлено через 5 минут и 24 секунды
На вскидку: объедините файл с формой с основным файлом и сделайте обработку формы еще ДО вывода 
Код

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">

и т.д.


если это возможно, конечно.
PM MAIL ICQ   Вверх
americanets
Дата 1.9.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



vitalina, про bom , некоторые редакторы сохраняют файлы с bom символами, те до вызова header  у тебя по любой что то будет, делаешь сохранить как, в чем ты там пишешь  и ставишь опцию без bom .

А у тебя проблема с
Код

 include('formafail.php');


реши что сделать с  
Код

header('Location: '.$_SERVER["PHP-SELF"].'?ok=1'); // [color=orangered]не срабатывает[/color]



--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
vitalina
Дата 1.9.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.11.2007
Где: Riga

Репутация: -3
Всего: -4



Peresmotretj strukturu? kak?  


ja ho4u 4tobi bilo tak:


------------------------------
menu
------------------------------
content



------------------------------
memo
------------------------------

u menja ssilki menju otkrivajutsja v contente. V contente ho4u, 4tob bila forma. Posle nazhatija knopki v contente bil text, 4to vse zapisano i nizhe bili bi novosti sajta. I 4tob header rabotal.  Napishite kod, kak bi vi eto sdelali.
--------------------
kornienko.ru - мой настоящий проект.
PM MAIL WWW Skype   Вверх
americanets
Дата 1.9.2008, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



вынеси всю обработку до принта в браузер


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
vitalina
Дата 1.9.2008, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.11.2007
Где: Riga

Репутация: -3
Всего: -4



Ne polu4aetsja!

Добавлено через 33 секунды
 smile  smile 
--------------------
kornienko.ru - мой настоящий проект.
PM MAIL WWW Skype   Вверх
Wheels
Дата 1.9.2008, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 1.2.2007

Репутация: нет
Всего: 1



Да как-то так... другое дело, что это уже мешанина...  Это с обязательным условием наличия Header, правда он тут уже нафиг не нужен)

Код

<?
If (isset($sent))
{
....Обработка формы.....

   If(обработано успешно)
   {
         Header(на этот же файл?submit=ok)
   }
   else
   {
         Header(на этот же файл?submit=error)
   }


}
?>
<html>
<head>
</head>
<body>
....

<?
if (isset($submit))
{
   if ($submit=='ok')
   {
        echo '...Сообщение успешно отправлено...';
   }
   elseif ($submit=='error')
   {
        echo $error; 
   }
   else
   {
?>
<form action="на этот же файл">
<input type text>
...
<input type=submit name=sent>
</form>
<?
}
?>
</body>


Это сообщение отредактировал(а) Wheels - 1.9.2008, 14:35
PM MAIL ICQ   Вверх
vitalina
Дата 1.9.2008, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.11.2007
Где: Riga

Репутация: -3
Всего: -4



Po4emu ne nuzhen. Ja header delaju, 4tobi ne bilo povtornoj otpravki. V kommentah napisano.
--------------------
kornienko.ru - мой настоящий проект.
PM MAIL WWW Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0583 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.