imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 21.10.2004, 19:49     # 1
ВОПРОСНИК
Guest
 
Сообщения: n/a

Помогите скрестить фрейм с чатом.

В общем такая ситуация, есть стартовая страница чата 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">&nbsp;</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>&nbsp;</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 . – уважаемые админы это не реклама, по этому просьба не удаляйте адрес, мне нужна помощь.
 
Старый 22.10.2004, 17:29     # 2
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
По моему фрейм стартует отдульно от основной страницы. Так что там получается большая запарка... Это нужно проверку пароля вывести в файл с фреймами и там устанавливать сессии. (не уверен, что сработает). Или использовать области типа <div>.
EvroStandart вне форума  
Старый 23.10.2004, 02:58     # 3
ВОПРОСНИК
Guest
 
Сообщения: n/a

Цитата:
Сообщение от EvroStandart
По моему фрейм стартует отдульно от основной страницы. Так что там получается большая запарка... Это нужно проверку пароля вывести в файл с фреймами и там устанавливать сессии. (не уверен, что сработает). Или использовать области типа <div>.
Если бы я знал как всё это сделать... Есть пример где можно посмотреть и скатать код???
 
Старый 23.10.2004, 12:22     # 4
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Вот <div>:

<div style="position:absolute;top:100px;left:100px;width:210px;height:250px ;overflow:auto">
<table width="650" height="180" align="center" border="0" cellspacing="0" cellpadding="0">
<tr align="center" valign="bottom">
<td height="30" colspan="2"><font size="2" face="Arial, Helvetica, sans-serif"><strong><font size="3">
Здесь мой текст </font></strong></font></td>
</tr>
<tr valign="bottom">
<td height="30"><font size="2" face="Arial, Helvetica, sans-serif"> Ещё немного текста</font></td>
<td height="30"><font size="2" face="Arial, Helvetica, sans-serif"> Ну и хватит наверно...</font></td>
</tr>
</table>
</div>

Можно попробовать в такую область запихать код чата.

Ещё вариант - использовать IFRAME
EvroStandart вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 22:12.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.