пропала строка меню

avgur

Новичок
пропала строка меню

Страница выводилась нормально. Захожу с другого компа -
- выводится шапка, рисунки, осн.текст, а меню, выбираемое из таблицы MYSQL, не выводится.
Вывод ошибок включен, подавления ошибок @ нет - и никакого сообщения нет - просто пусто.
В чем трабла, не пойму?

function dbconnect() {
global $dbname,$host,$user,$pass,$seldb,$conn;

$ip = $REMOTE_ADDR;
if (!$ip) { $ip = $REMOTE_HOST; }
$host = @GetHostByAddr($ip);

if ($ip="127.0.0.1") {
$host="localhost";
} else {
$host="localhost.сервер.базы";
}

$dbname="база";
$user="юзер"; //
$pass="пароль";

$conn=MYSQL_CONNECT($host,$user,$pass) or die("Нет соединения с базой данных");
$seldb=mysql_select_db($dbname);
}

dbconnect(); // выбираем пункты подменю для меню $chmenu ($ch):
$str = "SELECT * from razdel where lang='".$lang."";
$result = MYSQL_QUERY($str);
while ($row=MYSQL_FETCH_ARRAY($result)) {
$idrazdel=$row["idrazdel"]; // id раздела
$razdel=$row["razdel"]; // наим. раздела меню
$wlink=$row["wlink"]; // линк

$link=$wlink."&lang=".$lang."&chrazdel=".$idrazdel;
echo "&nbsp;&nbsp;<a href='".$link."'>".$razdel."</a>&nbsp;&nbsp;";
}
 

RomikChef

Guest
и раздел...
скорее всего - регистер глобалс.
прежде, чем бежать в форум, надо научиться отлаживать свои программы.
Убеждаться, что во всех переменных лежат именно те значения, которые там ожидаются.

вот это
$idrazdel=$row["idrazdel"]; // id раздела
$razdel=$row["razdel"]; // наим. раздела меню
$wlink=$row["wlink"]; // линк
можно заменить одной командой
extract($row);
 

avgur

Новичок
register_globals= Off
И что?
Все это давно работает (месяца 2).
И вот, пытаясь, открыть сайт дома у друга, не обнаружил меню. А почему - не пойму.
 

RomikChef

Guest
если register_globals= Off , то $lang, если она пришла гетом - пустая.
и из базы не выберется ничего.
Я думаю, у тебя проблема именно в коде, а не в друге.
На то оно и серверное программирование, чтобы не зависеть от друга.

Ну, или в твоем хитром способе проверки хоста дело, но врядли.
 

avgur

Новичок
Да, нет. Там в начале стоит проверка:

if (!isset($lang)||empty($lang)) $lang="ru";

И все работало 2 месяца с разных компов.
Дело было в другом городе, и не было времени зайти и вставить строку проверки/вывода параметров.
Дело не в друге, но в чем?
Если проверка хоста дала сбой, то не было бы соединения с базой - должно же выдать сообщение?
 
Сверху