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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> функция возвращает пустые значения 
V
    Опции темы
Gold Dragon
Дата 8.7.2008, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



есть функция
Код

function sR1Start($info=array('error'=>'')){
    GLOBAL $gd_sess, $gd_site;
    $error = ($info['error']!='') ? '<div class="col1" align="center"><b>Внимание, ошибка!</b>'.$info['error'].'<br></div>' : '';
    $gd_sess = number_format ($gd_sess / 60, 0);
    return <<<EOF
<div>
<table>
    <tr>
        <td><img src="{$gd_site}/images/knop4.gif" width="77" height="85" alt="Внимание, обманули!" border="0"></td>
        <td><h1>Внимание, обманули!</h1></td>
    </tr>
</table>
<p class="txt2">В разделе представлены записи  граждан и юридических лиц, которые считают, что пострадали от действий определенных людей, поступки которых, по их мнению, соответствует статьям 159 «Мошенничество», 
160 «Присвоение, растрата» УК РФ. Вы можете проверить данные интересующего вас человека или сделать новую запись.
<p>Проверить на судимость можно <a class="txt2" href="{$gd_site}/index.php?pages=in10">здесь</a>
{$error}
<p>&nbsp;</p>
<form action="index.php?pages=r1&id=1" method="post">
<input name="vid" type="hidden" value="4">
<hr>
<p>Для входа введите имя и пароль
<p><a class="txt2" href="http://befocus.qqq/index.php?pages=in06">Информация о получении пароля пользователя</a>
<table cellspacing="0" cellpadding="5" border="0" width="100%">
<tr class="txt1">
    <td align="right">Имя пользователя:</td>
    <td><input name="login" type="text" maxlength="20"></td>
</tr>
<tr class="txt1">
    <td align="right">Пароль:</td>
    <td ><input name="pasw1" type="password" maxlength="3" size="2">&nbsp;-&nbsp;<input
         name="pasw2" type="password" maxlength="3" size="2">&nbsp;-&nbsp;<input
         name="pasw3" type="password" maxlength="3" size="2">
    </td>
</tr>
<tr class="txt1">
    <td>&nbsp;</td>
    <td><input type="submit" value="Вход" name="id1"></td>
</tr>
</table>
</form>
<hr>
<span class="txt5">* если пользователь не произвел никаких активных действий в течение {$gd_sess} минут, он  автоматически выходит из регистрации</span><br><br>

</div>
EOF;
}

не могу понять ошибку. переменная $gd_sess и $error просто нулевые. Уже всю голову сломал и не знаю почему так. До return все переменные имеют значения, проверял

Помогите разобраться


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 8.7.2008, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

Репутация: 22
Всего: 32



С какой стати ты решил, что эта функция должна что-то возвращать, кроме кучи хтмл-а?
Где проверочный код, чтобы мы тоже могли увидеть, что "все пустое", а это тебе не померещилось?

Вообще, конечно, мешанина чудовищная. какие-то сессии вперемешку с HTML, все это засунуто в функцию...

PM   Вверх
Gold Dragon
Дата 8.7.2008, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



эта функция и должна вернуть чистый html

вот временно кинул на рабочий сервер
http://befocus.ru/index.php?pages=r1&id=1

перед return поставил print_r($error);

Добавлено через 57 секунд
Цитата(Feldmarschall @  8.7.2008,  09:07 Найти цитируемый пост)
Вообще, конечно, мешанина чудовищная. какие-то сессии вперемешку с HTML, все это засунуто в функцию...
всё там нормально smile это часть шаблона



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
MoLeX
Дата 8.7.2008, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Gold Dragon, 
return возращает в твой основной скрипт ответ в виде хтмл кода (в твоем случае). как понял ты хочешь чтобы он еще и возратил значение переменных $gd_sess и $error. для этого надо так
Код

function sR1Start($info=array('error'=>''))
{
.....
return array($text, $gd_sess, $error)
}

//а на выходе можно воспользоваться list для получения отдельных переменных из массива
list($text, $gd_sess, $error) = sR1Start();

$text, //действие
$gd_sess, //действие
$error, //действие



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 8.7.2008, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

Репутация: 22
Всего: 32



Цитата(Gold Dragon @  8.7.2008,  08:17 Найти цитируемый пост)
эта функция и должна вернуть чистый html

а что ж ты тогда нам голову морочишь, что она не возвращает тебе $error?

Цитата(Gold Dragon @  8.7.2008,  08:17 Найти цитируемый пост)
всё там нормально smile это часть шаблона

Это НЕНОРМАЛЬНО. Когда частью шаблона являются функции и сессии.



Это сообщение отредактировал(а) Feldmarschall - 8.7.2008, 08:29
PM   Вверх
Gold Dragon
Дата 8.7.2008, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



да нет там сессий! Там переменные. И шаблон у меня постоен по этому принципу

конструкция типа
Код

$a = 'что-то';
$b = <<<EOF
строка - {$a}
EOF;

отлично работает с переменными. Вот во всём сайте всё отлично, а тут не хочет

вот зайдите сюда
http://befocus.qqq/index.php?pages=r2

там внизу есть ".... 15 минут...." А эти модули практически одинаковые...



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 8.7.2008, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

Репутация: 22
Всего: 32



Ты сам пробовал читать, что пишешь?
Ладно, оставим в стороне твою кашу, речь не о ней.
Что у тебя твоя функция не возвращает, и почему должна? 

PM   Вверх
MoLeX
Дата 8.7.2008, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Код

<?php
    $gd_sess = "1200";
    $gd_site = "http://site";
    echo sR1Start("werwerwe");

function sR1Start($info = array("error" => ""))
{
    GLOBAL $gd_sess, $gd_site;
    $error = ($info["error"] != "")?"<div class=\"col1\" align=\"center\"><b>Внимание, ошибка!</b> ".$info."<br></div>":"";
    $gd_sess = number_format ($gd_sess / 60, 0);
    return <<<EOF
<div>
<table>
    <tr>
        <td><img src="{$gd_site}/images/knop4.gif" width="77" height="85" alt="Внимание, обманули!" border="0"></td>
        <td><h1>Внимание, обманули!</h1></td>
    </tr>
</table>
<p class="txt2">В разделе представлены записи  граждан и юридических лиц, которые считают, что пострадали от действий определенных людей, поступки которых, по их мнению, соответствует статьям 159 «Мошенничество», 
160 «Присвоение, растрата» УК РФ. Вы можете проверить данные интересующего вас человека или сделать новую запись.
<p>Проверить на судимость можно <a class="txt2" href="{$gd_site}/index.php?pages=in10">здесь</a>
{$error}
<p>&nbsp;</p>
<form action="index.php?pages=r1&id=1" method="post">
<input name="vid" type="hidden" value="4">
<hr>
<p>Для входа введите имя и пароль
<p><a class="txt2" href="http://befocus.qqq/index.php?pages=in06">Информация о получении пароля пользователя</a>
<table cellspacing="0" cellpadding="5" border="0" width="100%">
<tr class="txt1">
    <td align="right">Имя пользователя:</td>
    <td><input name="login" type="text" maxlength="20"></td>
</tr>
<tr class="txt1">
    <td align="right">Пароль:</td>
    <td ><input name="pasw1" type="password" maxlength="3" size="2">&nbsp;-&nbsp;<input
         name="pasw2" type="password" maxlength="3" size="2">&nbsp;-&nbsp;<input
         name="pasw3" type="password" maxlength="3" size="2">
    </td>
</tr>
<tr class="txt1">
    <td>&nbsp;</td>
    <td><input type="submit" value="Вход" name="id1"></td>
</tr>
</table>
</form>
<hr>
<span class="txt5">* если пользователь не произвел никаких активных действий в течение {$gd_sess} минут, он  автоматически выходит из регистрации</span><br><br>
</div>
EOF;
}
?>


 smile работает)))


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 8.7.2008, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Feldmarschall, а может попроще с наездами?


а теперь по сути...

часть функций это часть шаблона. Функция возвращает HTML-код. При этом получает несколько переменных. В данном случае при начальной загрузке станицы ошибки ($info['error']) нет. Если отправить форму без каких-то данных. то  переменная вернётся с описанием ошибки и эта переменная вставляется в код.

Проблема в том что я не понимаю почему переменная до оператора return существует, а возвращается нулевая.

Я дал ссылку на аналогичную страницу.. там это (как на всём сайте) работает


ps
что касается чудовещной мешанины. Это один вариантов шаблонов. Если мне не изменяет память то все скины этого форума постоены именно по этому принципу

Добавлено через 1 минуту и 57 секунд
MoLeX, я знаю что она работает, но именно на этой странице нет.. Вот и хочу понять что может быть


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 8.7.2008, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

Репутация: 22
Всего: 32



Цитата(Gold Dragon @  8.7.2008,  08:56 Найти цитируемый пост)
Если отправить форму без каких-то данных. то  переменная вернётся с описанием ошибки и эта переменная вставляется в код.

в приведенном коде нет и следа обработки форм. к чему это предложение?

Цитата(Gold Dragon @  8.7.2008,  08:56 Найти цитируемый пост)
Проблема в том что я не понимаю почему переменная до оператора return существует, а возвращается нулевая.

За 10 сообщений ты так ни разу и не написал, что имеется в виду под "возвращает"

Цитата(Gold Dragon @  8.7.2008,  08:38 Найти цитируемый пост)
отлично работает с переменными. 

это заметно, что отлично. по этому топику особенно =)

Это сообщение отредактировал(а) Feldmarschall - 8.7.2008, 09:03
PM   Вверх
Gold Dragon
Дата 8.7.2008, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Цитата(Feldmarschall @  8.7.2008,  10:03 Найти цитируемый пост)
в приведенном коде нет и следа обработки форм. к чему это предложение?
 вообще-то MoLeX, показал как она выводится (возвращается). А если быть более точным, то из таких блоков (функций) складывается вся страница. Например, так
Код

$page['headCenter'] = sIndexHeadCenter();
$page['title'] = 'Добро пожаловать на главную страницу - beFocus.ru';
$page['content'] = sIndexMain();
$result  = sIndexHead($page['title']);
$result .= sIndexBody($page);

echo $result


Цитата(Feldmarschall @  8.7.2008,  10:03 Найти цитируемый пост)
это заметно, что отлично. по этому топику особенно =)
поэтому и спрашиваю.


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 8.7.2008, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

Репутация: 22
Всего: 32



У тебя кривая и неочевидная система шаблонизации. 
И все проблемы - из-за неё.

А еще потому, что ты очвечаешь на какие-то другие вопросы, а не на те, которые я задаю. А я задаю их не просто так, а чтобы ты сам хотя бы попытался понять, что твой , такой замечательный, код делает.
PM   Вверх
Mal Hack
Дата 8.7.2008, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Gold Dragon, привет Тамбову =)
Скажи, какие условия обеспечивают: 
Цитата(Gold Dragon @  8.7.2008,  08:38 Найти цитируемый пост)
Вот во всём сайте всё отлично, а тут не хочет

т.е. в чем выражается это "тут"?
PM ICQ   Вверх
Gold Dragon
Дата 8.7.2008, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



ну значит у нас подмена понятий и различия в терминологи.  smile 

хорошо, попробую ещё раз повторить
Цитата(Feldmarschall @  8.7.2008,  09:43 Найти цитируемый пост)
Что у тебя твоя функция не возвращает, и почему должна? 

эта функция возвращает какой-то HTML-код. Не возвращает переменные которые я ей передаю. 
А именно $error = '', а $gd_sess = 0. Первая переменная передаётся этой функции, вторая берётся из конфигурации, т.е. простая глобальная переменная. 

Почему должна возвращать?.. Потому что
- возвращается весь код
- правильно вставляются, а следственно возвращаются другие переменные ($gd_site)
- в самой функции переменные существуют (ссылку на пример я дал. Если нажать на "ВХОД", то можно увидеть что переменная в функции существует.

Цитата(Feldmarschall @  8.7.2008,  10:21 Найти цитируемый пост)
У тебя кривая и неочевидная система шаблонизации. 
вся система постоена по принципу
Код

...
<<<EOF
....
<p>структура документа</p>
{какая_то_переменная}
<p>структура документа</p>
....
EOF;

потом из этих скинов составляется весь документ. Как я уже упоминал, форум IPB постоен именно по такому принципу, только с использованием классов. А у меня всё попроще и использую только функции. Может ты просто с такой не сталкивался? Но по мне очень удобная и гибкая система

Добавлено через 5 минут и 9 секунд
Mal Hack, и тебе привет.. всё некогда было smile

смотри две станицы
http://befocus.ru/index.php?pages=r1
и
http://befocus.ru/index.php?pages=r2

нажми на "ВХОД"
на первой странице переменная почему-то нулевая (её содержимое можешь увидеть в верху страницы, я в функции поставил print_r($errror) )
на второй странице всё работает..

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

Это сообщение отредактировал(а) Gold Dragon - 8.7.2008, 09:37


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 8.7.2008, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Тебе надо копать там, где у тебя эта функция вызывается, т.к. там содержимое $_POST теряется или переопределяется.
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0702 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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