Показать полную графическую версию : Общие вопросы по коду
Страниц :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[
16]
17
18
19
20
21
22
помоги с версткой
к примеру 2 таблицы: 1 таблица в центре другая правее её и прижата к ней
<table width="200" border="1" align="center">
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
<table width="200" border="1" align="right">
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
tristar_ivc
21-06-2010, 09:52
доброго времени суток, столкнулся с такой проблемой, пишу авторизацию (по кукам и по сессии), в шапку файла инклудится соединение с бд, проверка переменных, старт сессии, при включеном дисплэй еррор показывает ошибку на header из header("Location:$url"); и header("Refresh:$time;url=$url"); если отключить дисплей еррор то ошибок нет, но вот переадресация не происходит, кто что может подсказать? кто может сьалкивался с такой проблемой?
показывает ошибку на header »
Какую ошибку показывает? Невозможно передать header, т.к. уже отправлены данные, или что-то другое?
По тому объёму кода, что вы показали, можно только посоветовать удалить пробелы перед открывающим тэгом <?php
Другие предположения можно начать делать, когда увидим код.
tristar_ivc
21-06-2010, 13:24
вот такую ошибку:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\ch.ww\www\auth.php:1) in Z:\home\ch.ww\www\auth.php on line 29
вот те строки где переадресация находится:
$rm = isset($_POST['rm']) ? check($_POST['rm']) : check($_GET['rm']);
if($rm==='who') header("Refresh:3;url=/who");
elseif($rm==='enter') header("Refresh:3;url=/menu");
elseif($rm==='13') header("Refresh:3;url=/chat?rm=23");
elseif($rm==='10') header("Refresh:3;url=/inf/int?rm=10");
elseif($rm==='9') header("Refresh:3;url=/inf/sort?rm=9");
elseif($rm==='11') header("Refresh:3;url=/inf/klaz?rm=11");
elseif($rm>=0 && $rm<23) header("Refresh:3;url=/chat?rm=$rm");
elseif($rm=='') header("Refresh:3;url=/menu");
Итак, вы запускаете файл auth.php, а к нему подключается всё то, что вы перечислили выше. Правильно? Значит, где-то до 29 строки производится вывод данных.
Тогда интересуют первые 30 строк файла auth.php и полностью файлы, которые подключаются до этого момента. Всякие там логин-пароли не нужны.
tristar_ivc
21-06-2010, 13:45
вот 29 строка elseif($rm==='enter') header("Refresh:3;url=/menu");
вот то что инклудится
require_once (INC.'base/start.php');
require_once (INC.'base/gzip.php');
require_once (INC.'base/sid.php');
require_once (INC.'base/db.php');
require_once (INC.'base/login.php');
require_once (INC.'base/utf_to_win.php');
require_once (INC.'base/game.php');
require_once (INC.'base/other.php');
require_once (INC.'base/fnc.php');
require_once (INC.'sys/page.php');
tristar_ivc
21-06-2010, 13:48
вот собственно и сами файлики
Море кода и ни одного комментария)
Во-первых, я бы не стал ставить куки до выставления header'ов.
Во-вторых, перед header'ами у вас идёт include_once "skin/head.php"; И, наверное, оттуда уже идёт вывод данных. Перенесите вообще эти две строки в самое начало файла:
$rm = isset($_POST['rm']) ? check($_POST['rm']) : check($_GET['rm']);
if($rm==='who') header("Refresh:3;url=/who");
elseif($rm==='enter') header("Refresh:3;url=/menu");
elseif($rm==='13') header("Refresh:3;url=/chat?rm=23");
elseif($rm==='10') header("Refresh:3;url=/inf/int?rm=10");
elseif($rm==='9') header("Refresh:3;url=/inf/sort?rm=9");
elseif($rm==='11') header("Refresh:3;url=/inf/klaz?rm=11");
elseif($rm>=0 && $rm<23) header("Refresh:3;url=/chat?rm=$rm");
elseif($rm=='') header("Refresh:3;url=/menu");
header'ы должны быть установлены до того, как вы будете выводить любые другие данные.
tristar_ivc
21-06-2010, 15:11
вроде бы куки не должны мешать хеадеру,,, вынес хеадер до инклуда скин/хеад но как было так и осталось
tristar_ivc, если сохраняете файл в кодировке UTF-8, то нужно выбирать опцию UTF-8 без BOM. BOM - это метка, которую не отображают редакторы, но она есть, и инициирует вывод. Если сложно отследить все файлы, то включите буферизацию вывода (ob_start() в начале скрипта).
по крайней мере, auth.php сохранен c BOM...
tristar_ivc
21-06-2010, 15:49
все разобрался, дело было как раз таки в кодировке, т.е. в BOM, ее нужно было поставить, всем спасибо за помощь!!!
Здравствуйте. Мне нужно чтоб php скрипт делал определенную функцию при получении письма на почтовый ящик. Единственное решение которое мне пришло в голову, это запускать скрипт по crontab, каждых например 30 сек., и проверять есть ли новое письмо, и если есть то запускать функцию. Есть ли другое решение данной задачи? Например чтоб скрипт "висел" на линии(pop3 или imap), и как только появилось письмо, то он делал определенную функцию? Спасибо.
Крон - оптимально. По идее, событие генерирует почтовый софт на сервере (он сидит на порту и ловит письма), значит в нем дб возможность запускать другой софт по событию. Если нет возможности, то и события нет.
чтоб скрипт "висел" на линии(pop3 или imap) »
Почтовый сервер - сложный софт, выполняющий протоколы smtp, pop, imap. Не видел, чтоб был написан на PHP.
Спасибо, за ответ. Пару вопросов:
1. Если почта, допустим на Gmail, то ничего кроме кронтаба вообще, не возможно, поскольку оно не будет делать никакого события, верно?
2. Дают ли возможность запускать другой софт по событию » хостинги?
3. А другие языки программирование для веба (например PERL), дают возможность "висеть" на линии и по получении сообщения запускать что-нибудь?
4. Поскольку нужна очень быстрая реакция на письмо, то нужно запускать крон чуть ли не каждые 10 сек., можно ли придумать какую-нибудь махинацию, например пересылать почту не на е-мейл адрес, а на скрипт(тем-самым запуская его)?
Ну и последний вопрос, как в этой статьи (http://www.codenet.ru/webmast/php/mrobot.php), запускается скрипт по событию нового сообщения цитирую"Способ "COMMAND" - можно запускать обработчик писем как только оно приходит. Самый прогрессивный способ. Ваша программа получает письмо входным потоком - удобнее придумать трудно."?
1. вроде так.
2. если есть поддержка файлов .forward (или типа этого, где список команд по событию прихода письма), то можно прописать там команду на скрипт. Но это заморочка с правами и способами запуска (CGI, CLI) - это надо конкретно уточнять у админов и тестить...
3. большинство языков работают с сокетами, но тут это не нужно.
4. см. п.2, в статье многое описано.
Спасибо. Теперь другой вопрос. Изучал команды pop3 на php, работал с gmail. Попробовал как удалить сообщения, и скрипт показал что сообщения больше нет, и он его удалил. Захожу на почту а сообщение осталось. Вообщем я игрался - игрался, и никак не получается чтоб увидеть сообщения по pop3(даже через почтовый клиент). Это что получается, что существует две версии почты, одна для pop3, а другая для imap/просмотра :) ?
http://ru.wikipedia.org/wiki/POP3 , http://tools.ietf.org/html/rfc1939 ...
gmail вроде как требует SSL (шифрование), поэтому хз. Можно через сокет (протокольные команды), или через функции (http://docs.php.net/manual/en/book.imap.php).
запарился, колбасит от этой вертки -помогите
все работает кроме IE8
убираю#header { top:0; position:absolute; } нормально показывает левая- середина -правая ячейка нормально растягивается, но появляется проблема d IE6,7 c высотой header
ставлю обратно <td id="bbb" width="*"> -не растягивается
каркас страницы резиновый без скроллингат.е без бокового и нижнего ползунка
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>
<style type="text/css">
html, body {height:100%; width:100%; table-layout:fixed; margin:0; padding:0;}
.stol{background-color:blue; }
#header { top:0; position:absolute; }
#aaa {background-color:green; left:0px; width:100px;}
#bbb {background-color:yellow;}
#ccc {background-color:red; right:0px; width:150px; }
</style>
<body>
<table width="100%" height="100%" border="1" cellspacing="0" class="content" >
<tr id="header">
<td id="aaa" height="20px">111111</td>
<td id="bbb" width="*">222222</td>
<td id="ccc">3333</td>
</tr>
<tr>
<td colspan="3" class="stol"></td>
</tr>
</table>
</body>
</html>
а в опере 10 фон стола залит на приблизительно 70% снизу вверх
в IE5,6,7 mozilla всё нормально
#header { top:0; position:absolute; } »
к tr нельзя, это элемент таблицы, также как и td нельзя позиционировать (right, left, position...), а только table.
все размерности лучше убрать в стили.
margin:0; padding:0; »
это лучше ко всем элементам * {margin:0; padding:0;}
одной таблицей имхо не обойтись, и лучше в контейнеры div, и к ним применяйте абсолютное позиционирование...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.