Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на PHP

Выпуск № 117
от 02.03.2004, 19:30

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 194
Отправлено ответов: 333
Активность: 171.6 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

samum2000
Статус: Опытный
Общий рейтинг: 127.29
[Подробней >>]
NeiTrinO
Статус: Опытный
Общий рейтинг: 124.55
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 192. Люди!! Помогите!!! Такая трабла: имеется файл my_file.php, в котором такое содержание: ... (ответов: 1)
Вопрос № 193. Вопрос: Как мне вставить в html страничку файл Excel (допустим имя файла table.xls) посредством PHP.... (ответов: 2)

Вопросов: 2, ответов: 3


 Вопрос № 192

Люди!! Помогите!!!
Такая трабла:
имеется файл my_file.php, в котором такое содержание:
if(!empty($HTTP_POST_VARS["myvar"]))
{
$myvar2=$HTTP_POST_VARS["myvar"];

if($myvar2=="222")
{
unset($HTTP_POST_VARS["myvar"]);
header("Location:my_file.php");
}
my_function(); // здесь трабла
}
function my_function()
{
бла-бла
}
?>
html-форма.. в которой action="my_file.php"
Как работать должно: после первого запуска условие не срабатывает и выдается форма. После отправки из формы условие срабатывает и если $myvar2="222" опять запускает этот файл и опять условие не срабатывает, иначе, запускается функция my_function().
Проблема в том, что если myvar=222, выполняются все операторы(unset и т.д.) и функция все равно запускается!!!!! Хотя по идее должно выбросить снова на этот файл без HTTP_POST_VARS..
Что я сделал, если вместо функции написать например echo("сработала функция"), то все работает правильно - если 222, то echo не выполняется, и открывается чистая форма.
Я решил эту проблему так, после строки header(...); поставил exit; В этом случае все работает правильно и с функцией.
Работает... Но объясните мне почему именно нужно ставить exit чтобы функция не срабатывала, а если вместо функции просто выводить текст, то работает правильно?????? Ведь независимо от того что написано после header(), скрипт должен сразу выкинуть на указанный файл... Или нет??? Почему?????
Извините, за мои длинные и скучные вопросы, но хочу понять раз и навсегда данный трабл!!!
Реализовать все это можно по другому, но меня интересует именно почему в данном случае такая непонятка??
Премного благодарен откликнувшимся!!!!



Вопрос отправлен: 28.02.2004, 03:48
Отправитель: Ильдар

[Следующий вопрос >>] [Список вопросов]

Отвечает samum2000

Добрый день, Ильдар!
У функции есть несколько особых случаев, и "Location:" - один из них. Согласно оригинальному руководству, после Header('Location:...'); не должен исполняться никакой код. Иначе говоря, совершенно правильно, что вы поставили exit.
Далее, если вместо функции вы отправляете текст на вывод, то после этого начинается обработка посланых header-ов (как они были бы обработаны, если бы PHP встретил инструкцию exit, и решил бы, что документ полностью сформирован), и вас, соответственно, переадресуют на соответствующую страницу.

Ответ отправлен: 01.03.2004, 12:06
Отправитель: samum2000


 Вопрос № 193

Вопрос: Как мне вставить в html страничку файл Excel (допустим имя файла table.xls) посредством PHP. Один эксперт сказал, что 'это закрытый формат корпорации Microsoft', но это не так.
Мне не нужно использовать Excel как db, меня пока устраивает MySql, мне просто нужно взять таблицу и вывести ее в браузере. Просто ссылаться на нее выдается сообщение загрузить или открыть из текущего места - тоже не подходит. В стандартном PHP (без подключения модулей) такой функции нет, но при подключении модулей такое возможно.
Не могли бы Вы мне подсказать, где взять эти модули и как это все реализовать



Вопрос отправлен: 28.02.2004, 14:39
Отправитель: Максим

[Следующий вопрос >>] [Список вопросов]

Отвечает NeiTrinO

Добрый день, Максим!
все просто. Вот мой скрипт, для вывода инфы из файла екселя:
привожу сам скрипт. Дальше меняйте что нужно и все.
Обратите внимание, что файл должен быть с расширением .csv
$str = "г. Краснодар ";
$f = fopen("expay.csv", "r") or die ("Ошибка!");
for($i = 0; $data = fgetcsv($f, 1000, ";"); $i++)
{
$num = count($data);
if($num == 1 && $data[0] === "") continue;
echo "";
for($c = 0; $c < $num; $c++)
{
if(ereg("г. ", $data[$c]) == true && $data[2] == "")
{
$data[$c] = ereg_replace($data[$c], $data[$c], "$data[$c]");
echo $data[$c];
$c++;
}
if(ereg("пос. ", $data[$c]) == true && $data[2] == "")
{
$data[$c] = ereg_replace($data[$c], $data[$c], "$data[$c]");
echo $data[$c];
$c++;
}
if(ereg("ст. ", $data[$c]) == true && $data[2] == "")
{
$data[$c] = ereg_replace($data[$c], $data[$c], "$data[$c]");
echo $data[$c];
$c++;
}
echo "$data[$c]";
}
echo "";
}
fclose($f);
?>


Ответ отправлен: 28.02.2004, 22:32
Отправитель: NeiTrinO


Отвечает samum2000

Доброе время суток, Максим!
Этим одни экспертом был я. Вот тебе ссылочка http://phpexcel.h11.ru/
Но это не значит, что я отказываюсь от своих слов. Пойди и спроси у кого-нибудь из Microsoft'a о формате Excel... Потом расскажи мне, что тебе ответили :))).

Ответ отправлен: 29.02.2004, 09:16
Отправитель: samum2000



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (26)
C / C++ (19)
Perl (2)
Builder / Delphi (19)
Pascal (21)
Basic / VBA (8)
Java / JavaScript (3)
PHP (12)
Криптография (7)
WinAPI (14)
Радиоэлектроника (8)
Пользователю
Windows 95/98/Me (37)
Windows NT/2000/XP (56)
"Железо" (31)
Поиск информации (14)
Администратору
Windows NT/2000/XP (29)
Linux / Unix (11)
Юристу
Гражданское право (16)
Семейное право (12)
Трудовое право (12)
КоАП (10)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное