|
|
|
| блин..не передаётся не функция, а переменная
здравствуйте, у меня немного глупый вопрос..но он всё же возник, при входе администратора на сайт ставлю $admin = true, в в одной из функций: if ($admin){echo "abc";} else{echo "123";}, он почему-то выводит мне то, что идёт в else(123), при echo $admin; - не выводит ничего, хотя должен единичку..помогите, кто может :) | |
|
|
|
|
|
|
|
для: GooD
(02.01.2006 в 15:13)
| | А переменная $admin передаётся через параметры функции? | |
|
|
|
|
|
|
|
для: cheops
(02.01.2006 в 15:32)
| | да, я же написал, если я это передаю не функцией, а просто иклюдом, то всё хорошо работает | |
|
|
|
|
|
|
|
для: GooD
(02.01.2006 в 15:46)
| | Не понятно передаётся переменная $admin в функцию через параметры или нет - приведите весь код, если не сложно? | |
|
|
|
|
|
|
|
для: cheops
(02.01.2006 в 16:06)
| | вот место, где я задаю переменную
<?
if ($_SESSION['auth'] == true)
{
$admin = true;
switch ($_GET["op"])
{
default:
do_header("$title :: Просмотр");
n_list();
break;
}
}
?>
|
a вот та самая функция:
function do_header($t)
{
?><html>
<head>
<title><?=$t?></title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<link rel=stylesheet type=text/css href=style.css>
</head>
<body leftmargin=0 rightmargin=0 topmargin=0 bottommargin=0 marginheight=0 marginwidth=0>
<table border=0 cellpadding=0 cellspacing=0 width=100% class=u height=60 valign=center align=center>
<td align=center valign=center><?if ($admin){echo"$title";} else {echo"Вход";}?></td>
</table>
<?
if ($admin)
{
echo "
<table border=0 cellpadding=4 cellspacing=0 height=10 width=100% class=adm align=center>
<td class=back align=right><a href=?op=add>Добавление</a></td>
<td class=back align=left><a href=$PHP_SELF>Просмотр</a></td>
<td class=back align=left><b><a href=?act=logout>Выход</a></b></td>
</table>
";
}
else
{
echo "
<table border=0 cellpadding=4 cellspacing=0 height=10 width=100% class=adm align=center>
<td class=back align=center> </td>
</table>
";
}
echo "<br>";
?>
}
|
| |
|
|
|
|
|
|
|
для: GooD
(02.01.2006 в 16:10)
| | При таком определении функции, переменную $admin нельзя увидить внутри функции, поэтому она создаётся по новой со значением false. Необходимо либо добавить её в параметры функции
<?php
function do_header($t, $admin)
{
?>
|
и соответственно
<?
if ($_SESSION['auth'] == true)
{
$admin = true;
switch ($_GET["op"])
{
default:
do_header("$title :: Просмотр", $admin);
n_list();
break;
}
}
?>
|
либо объявить переменную $admin глобальной
<?php
function do_header($t)
{
global $admin;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(02.01.2006 в 16:16)
| | спасибо, я думал об этом, однако, думал что можно как-то по-другому..раз нельзя - то так и сделаю | |
|
|
|
|
|
|
|
для: GooD
(02.01.2006 в 16:10)
| | $admin - это глабальная переменная.
Исправить ваш код можно так:
function do_header($t)
{
global $admin;
.......
или так
....
do_header("$title :: Просмотр", $admin);
function do_header($t, $admin)
{
..... | |
|
|
|