В общем такая ситуация, есть стартовая страница чата index.php, на которой пользователь регистрируется и входит в чат. Вот её код:
<?
$fn = "preferences.php";
if (is_file($fn) && is_readable($fn)) require ($fn);
$filename = "logins.php";
if (!is_file($filename) && !is_readable($filename)) {
echo "<center>Файл '$filename' не найден или из него нельзя читать!</center>";
exit();
}
$im = array("<img src=sources/green.gif>", "<img src=sources/yellow.gif>", "<img src=sources/blue.gif>", "<img src=sources/red.gif>");
$f = file($filename);
$vsego = 0;
sort($f);
function girls() {
global $f, $vsego, $im;
echo "<br><b>Девушки</b><br><br>";
for ($i = 0; $i < count($f); $i++) {
$mas = explode("|", $f[$i]);
if ($mas[9] == "/a") $n = 0;
else if ($mas[9] == "/b") $n = 1;
else if ($mas[9] == "/c") $n = 2;
else if ($mas[9] == "/d") $n = 3;
if (($mas[3] == "*g*") && ($mas[0] == "Admin") && ($mas[5] == "*on*")) {
$vsego++;
echo "$im[$n] <b><font id=b> $mas[0] </font></b><br>";
}
else if (($mas[5] == "*on*") && ($mas[3] == "*g*")) {
$vsego++;
echo "$im[$n] $mas[0]<br>";
}
}
}
function boys() {
global $f, $vsego, $im;
echo "<br><b>Парни</b><br><br>";
for ($i = 0; $i < count($f); $i++) {
$mas = explode("|", $f[$i]);
if ($mas[9] == "/a") $n = 0;
else if ($mas[9] == "/b") $n = 1;
else if ($mas[9] == "/c") $n = 2;
else if ($mas[9] == "/d") $n = 3;
if (($mas[3] == "*m*") && ($mas[0] == "Admin") && ($mas[5] == "*on*")) {
$vsego++;
echo "$im[$n] <b><font id=b> $mas[0] </font></b><br>";
}
else if (($mas[5] == "*on*") && ($mas[3] == "*m*")) {
$vsego++;
echo "$im[$n] $mas[0]<br>";
</script>
<?
}
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>COSMO-CHAT</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript" src="sources/scripts.js"></script>
<link rel="stylesheet" type="text/css" href="sources/styles.css">
</head>
<body onLoad="document.f.login.focus();">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="351" valign="top">
<table width="80%" border="0" align="center" style="border: 1px #D0D0D0 solid">
<tr>
<td bgcolor="#DDEEFF" class="main">Сейчас в чате</td>
<td bgcolor="#DDEEFF" class="main">Вход в чат</td>
</tr>
<tr>
<td valign="top" height="96">
<?
girls();
boys();
echo "<br><br><b>Всего в чате:</b> $vsego";
?>
</td>
<td height="96" valign="top">
<table width="100%" align="center" cellpadding="0" cellspacing="0" id="b">
<form action="INFR.htm" method="post" name="f">
<tr>
<td width="25%" height="26">Логин</td>
<td width="75%"><input type="text" maxlength="15" name="login" style="width: 300"></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" maxlength="15" name="pass" style="width: 300">
<input name="subm" type="submit" value="Войти" id="button"></td>
</tr>
<tr>
<td height="17" colspan="2"> </td>
</tr>
<tr>
<td height="16" colspan="2"> <center>
<a href='#' onClick="window.open('reg.php', '_blank', 'width=400 height=215 scrollbars=no resize=no')">Регистрация</a>
| <a href="#" onClick="window.open('restore.php', '_blank', 'width=400 height=25 scrollbars=no resize=no')">Забыли
пароль?</a> | <a href="mailto:<? echo $em ?>">Написать
администратору</a> </center></td>
</tr>
<tr>
<td height="2" colspan="2"> <p> </p>
</td>
</tr>
</form>
</table></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
Вот что я хочу: что бы после регистрации пользователь попадал на страницу фрейм, разделённую на две части. В верхней части сам сайт, в нижней части чат, как в БК. Для этого я создал такую страницу INFR.htm, вот её код:
<html>
<head>
<title>This page contains frames.</title>
</head>
<frameset rows="75%, 25%">
<frame src="IN1.htm">
<frame src="online.php">
<noframes>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p>This page contains frames. You need a Web browser that supports frames
to view this page correctly.</p>
</body>
</noframes>
</frameset>
</html>
То есть получается что пользователь после ввода логина и кода попадает на эту страницу. В верхней части находится сам сайт, там всё нормально работает, а в нижней должен находится уже активный чат, код этой страницы чата online.php ниже:
global $st, $filename, $color, $login, $host, $tvoipol, $intop;
$fn = "preferences.php";
if (is_file($fn) && is_readable($fn)) require ($fn);
$filename = "logins.php";
if (!is_file($filename) || !is_writable($filename)) {
echo "<center>Файл '$filename' не найден или в него нельзя писать!</center>";
exit();
}
//-------------------------
function chk() {
global $login, $pass, $filename;
$flag = 0;
$mass = file($filename);
for ($i = 0; $i < count($mass); $i++) {
$newmass = explode("|", $mass[$i]);
if (($login == $newmass[0]) && ($pass == $newmass[1])) {
$flag = 1;
}
}
if ($flag == 0) {
echo "<center><b><font face=Arial color=#FF0000 size=3>Не правильный логин или пароль!</font></b><center>";
exit();
}
}
//------------
function dead() {
global $login, $REMOTE_ADDR, $em;
$fn = "banlogin.php";
if (!is_file($fn) || !is_readable($fn)) {
echo "<center>Файл '$fn' не найден или из него нельзя читать!</center>";
exit();
}
$f = file($fn);
if ($f) for ($i = 0; $i < count($f); $i++) {
$m = explode("|", $f[$i]);
$d1 = date("d");
$d2 = date("m");
$d3 = date("Y");
$t = date("H:i:s");
if ($login == $m[0]) {
$m1 = explode(".", $m[1]);
if ($d3 < $m1[2]) {
echo "<center><b><font face=Arial color=#FF0000 size=3>Логин $login заблокирован до <u>$m[1] | $m[2]</u><br><br><br>С вопросами обращаться по адресу <a href='mailto:$em'>$em</a></font></b><center>";
exit();
} else if (($d3 == $m1[2]) && ($d2 < $m1[1])) {
echo "<center><b><font face=Arial color=#FF0000 size=3>Логин $login заблокирован до <u>$m[1] | $m[2]</u><br><br><br>С вопросами обращаться по адресу <a href='mailto:$em'>$em</a></font></b><center>";
exit();
} else if (($d3 == $m1[2]) && ($d2 == $m1[1]) && ($d1 < $m1[0])) {
echo "<center><b><font face=Arial color=#FF0000 size=3>Логин $login заблокирован до <u>$m[1] | $m[2]</u><br><br><br>С вопросами обращаться по адресу <a href='mailto:$em'>$em</a></font></b><center>";
exit();
} else if (($d1 == $m1[0]) && ($d2 == $m1[1]) && ($d3 == $m1[2]) && ($t < $m[2])) {
echo "<center><b><font face=Arial color=#FF0000 size=3>Логин $login заблокирован до <u>$m[1] | $m[2]</u><br><br><br>С вопросами обращаться по адресу <a href='mailto:$em'>$em</a></font></b><center>";
exit();
}
}
}
if(isset($HTTP_X_FORWARDED_FOR)){
$hostname = gethostbyaddr($HTTP_X_FORWARDED_FOR);
} else {$hostname=gethostbyaddr($REMOTE_ADDR);}
$hostip=gethostbyname("$hostname");
$fn = "banip.php";
if (!is_file($fn) || !is_readable($fn)) {
echo "<center>Файл '$fn' не найден или из него нельзя читать!</center>";
exit();
}
$f = file($fn);
if ($f) for ($i = 0; $i < count($f); $i++) {
$m = explode("|", $f[$i]);
$d1 = date("d");
$d2 = date("m");
$d3 = date("Y");
$t = date("H:i:s");
if ($hostip == $m[0]) {
$m1 = explode(".", $m[1]);
if ($d3 < $m1[2]) {
echo "<center><b><font face=Arial color=#FF0000 size=3>IP-адрес $hostip заблокирован до <u>$m[1] | $m[2]</u><br><br><br>С вопросами обращаться по адресу <a href='mailto:$em'>$em</a></font></b><center>";
exit();
} else if (($d3 == $m1[2]) && ($d2 < $m1[1])) {
echo "<center><b><font face=Arial color=#FF0000 size=3>IP-адрес $hostip заблокирован до <u>$m[1] | $m[2]</u><br><br><br>С вопросами обращаться по адресу <a href='mailto:$em'>$em</a></font></b><center>";
exit();
} else if (($d3 == $m1[2]) && ($d2 == $m1[1]) && ($d1 < $m1[0])) {
echo "<center><b><font face=Arial color=#FF0000 size=3>IP-адрес $hostip заблокирован до <u>$m[1] | $m[2]</u><br><br><br>С вопросами обращаться по адресу <a href='mailto:$em'>$em</a></font></b><center>";
exit();
} else if (($d1 == $m1[0]) && ($d2 == $m1[1]) && ($d3 == $m1[2]) && ($t < $m[2])) {
echo "<center><b><font face=Arial color=#FF0000 size=3>IP-адрес $hostip заблокирован до <u>$m[1] | $m[2]</u><br><br><br>С вопросами обращаться по адресу <a href='mailto:$em'>$em</a></font></b><center>";
exit();
}
}
}
}
function chat() {
global $login, $filename, $pol, $status, $REMOTE_ADDR, $HTTP_USER_AGENT;
if(isset($HTTP_X_FORWARDED_FOR)){
$hostname = gethostbyaddr($HTTP_X_FORWARDED_FOR);
} else {$hostname=gethostbyaddr($REMOTE_ADDR);}
$hostip=gethostbyname("$hostname");
$sys = $HTTP_USER_AGENT;
$d = date("d.m.Y - H:i:s");
$con = file($filename);
for ($i = 0; $i < count($con); $i++) {
$m = explode("|", $con[$i]);
if (($m[0] == $login) && strstr($m[5], "*on*")) {
echo "<center><b><font face=Arial color=#FF0000 size=3>Такой логин уже в чате!</font></b><center>";
exit();
} else if (($m[0] == $login) && ($m[5] == "*off*")) {
$con[$i] = str_replace("*off*", "*on*", $con[$i]);
$con[$i] = str_replace($m[12], $sys, $con[$i]);
$con[$i] = str_replace($m[10], $hostip, $con[$i]);
$con[$i] = str_replace($m[14], $d, $con[$i]);
$star = $m[7];
break;
}
}
$f = fopen($filename, "w");
for ($i = 0; $i < count($con); $i++) {
$con[$i] = trim(str_replace("\n", "", $con[$i]));
fwrite($f, "$con[$i]\n");
}
fclose($f);
if (!is_dir("data")) {
echo "<center><b><font face=Arial color=#FF0000 size=3>Нет папки для отчетов!</font></b><center>";
exit();
}
$dname = date("d.m.Y");
$fn = "data/$dname.php";
$f = fopen($fn, "a+") or die("Не могу писать в файл!");
$d = date('H:i:s');
if ($status == "admin") fwrite($f, "$d||:s||:$star||:$login\n");
else fwrite($f, "$d||:s||:$star||:$login\n");
fclose($f);
?>
<html>
<head>
<title>COSMO-CHAT</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<script language="JavaScript" src="sources/scripts.js"></script>
<link rel="stylesheet" type="text/css" href="sources/styles.css">
<frameset cols="50,*" frameborder="no" border="0" framespacing="0">
<frame src="smiles.php" name="leftFrame" scrolling="auto" noresize>
<frameset rows="*,70" cols="*" framespacing="0" frameborder="no" border="0">
<frameset cols="*,160" frameborder="no" border="0" framespacing="0">
<frameset rows="353,80" cols="*" framespacing="0" frameborder="yes" border="0">
<frameset rows="0,*" frameborder="no" border="0" framespacing="0">
<frame src="null.php" name="topFrame1" scrolling="NO" noresize >
<frameset rows="0,*" frameborder="no" border="0" framespacing="0">
<frame src="all.php" name="topFrame2" scrolling="NO" noresize>
<frame src="chat.php" name="topFrame" scrolling="auto">
</frameset>
</frameset>
<frame src="private.php" name="mainFrame" scrolling="auto">
</frameset>
<frameset rows="0,*" frameborder="no" border="0" framespacing="0">
<frame src="users.php" name="topFrame3" scrolling="NO" noresize >
<frame src="usr.php" name="rightFrame" scrolling="auto" noresize>
</frameset>
</frameset>
<frame src="mess.php" name="bottomFrame" scrolling="NO" noresize>
</frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>
<?
}
if ($login) {
dead();
chk();
session_start();
$mass = file($filename);
for ($i = 0; $i < count($mass); $i++) {
$newmass = explode("|", $mass[$i]);
if ($login == $newmass[0]) {
$st = $newmass[4];
$color = $newmass[6];
$host = $newmass[10];
$tvoipol = $newmass[3];
$intop = $newmass[13];
break;
}
}
session_register('name', 'status', 'col', 'refresh', 'ipnow', 'sob', 'gender', 'top');
$name = $login;
$status = $st;
$col = $color;
$refresh = $l_obn;
$ipnow = $host;
$sob = $l_soob;
$gender = $tvoipol;
$top = $intop;
chat();
} else {
echo "<center><b><font face=Arial color=#FF0000 size=3>Не введен логин или пароль!</font></b><center>";
exit();
}
?>
По моим догадкам всё должно было работать… Но видимо я совсем чайник и не соображаю в PHP. Нечего не работает… Пользователь вводит код и логин и попадает на INFR.htm, её код см. выше, в верхней части страницы открывается сам сайт, там всё Ок… А вот в нижней за место активного сайта, файл online.php, пишется что «не введён логин или код»… По моим соображениям просто в файл online.php не передаются переменные из файла index.php… Пожалуйста помогите сделать эти страницы функциональными… пожалуйста-з-з-з-з, иначе мне придётся застрелиться…
Неработающий пример здесь nogame.ru/top/ index.php