Прошу помочь разобраться с функцией session_is_registered как ее и чем можно заменить , занимаюсь доработкой браузерной игрули и сталкнулся с этой проблемкой, при входе в игру вылетает ошибка ругается на предпоследнюю строчку с функцией session_is_registered код приведен ниже прошу помочь разобраться и строго не судить )) я новичек в пхп -- код ниже
if(!empty($login) AND !empty($password)){
function check( $str, $maxchar = 30){
$str = htmlspecialchars($str);
$str = substr( $str, 0, $maxchar );
$str = trim( $str );
$str = str_replace( "'", "", $str );
$str = str_replace( '"', "", $str );
$str = str_replace( "\n", "<BR>", $str );
return $str;
}
check($login);
check($password);
$login = str_replace("'","",$login);
$password = str_replace("'","",$password);
$CHECK = mysql_query("SELECT * FROM `users` WHERE login='$login'");
$DATA = mysql_fetch_array($CHECK);
if(session_is_registered('traffik'))
{
session_unset();
}
или стукните в аську кто желает помочь 450-138-654
Спустя 1 минута, 55 секунд (8.07.2010 - 15:29) linker написал(а):
if (isset($_SESSION['traffik'])) { ... }
Спустя 3 минуты, 36 секунд (8.07.2010 - 15:33) burlex написал(а):
теперь белый экран и в игру не входит
заменил на if (isset($_SESSION['traffik']))
пустило без ошибки ))
заменил на if (isset($_SESSION['traffik']))
пустило без ошибки ))
Спустя 12 минут, 33 секунды (8.07.2010 - 15:45) linker написал(а):
burlex, а зачем вообще удалять сессию юзверя?
Спустя 2 минуты, 10 секунд (8.07.2010 - 15:48) burlex написал(а):
у меня под 5 мускулем ошибки выскакивают скрипт писан под 4 мускуль вот приходиться оптимизировать под 5 чтолб ошибки не вылетали в игре
Спустя 4 часа, 49 минут, 48 секунд (8.07.2010 - 20:37) linker написал(а):
А причем здесь пхп и мускуль? Это разные вещи.
if (isset($_SESSION['traffik']))
{
unset($_SESSION['traffik']);
}
Спустя 1 час, 11 минут, 37 секунд (8.07.2010 - 21:49) twin написал(а):
Это один из немногих случаев, когда некошерная запись
выгоднее во всех отношениях.
@unset($_SESSION['traffik']);
выгоднее во всех отношениях.

Спустя 5 минут, 29 секунд (8.07.2010 - 21:54) linker написал(а):
twin, интересно чем?
p.s. Хотя логично, зачем делать проверку на существование, если один хрен убивается тутже. Упустил.
p.s. Хотя логично, зачем делать проверку на существование, если один хрен убивается тутже. Упустил.
Спустя 15 часов, 3 минуты, 41 секунда (9.07.2010 - 12:58) burlex написал(а):
[code]
<?
session_start();
Error_Reporting(E_ALL & ~E_NOTICE);
include "conf.php";
if (@ereg("[<>\\/-]",$login) or @ereg("[<>\\/-]",$password)) {print "?!"; exit();}
$login=htmlspecialchars($login);
$password=htmlspecialchars($password);
$chas = date("H");
$server_date=date("d.m.Y", mktime($chas-$GSM));
$server_time=date("H:i:s", mktime($chas-$GSM));
if(!empty($login) AND !empty($password)){
function check( $str, $maxchar = 30){
$str = htmlspecialchars($str);
$str = substr( $str, 0, $maxchar );
$str = trim( $str );
$str = str_replace( "'", "", $str );
$str = str_replace( '"', "", $str );
$str = str_replace( "\n", "<BR>", $str );
return $str;
}
check($login);
check($password);
$login = str_replace("'","",$login);
$password = str_replace("'","",$password);
$CHECK = mysql_query("SELECT * FROM `users` WHERE login='$login'");
$DATA = mysql_fetch_array($CHECK);
if(session_is_registered('traffik'))
{
session_unset();
}
$ip = $REMOTE_ADDR;
$file = file("magic/1/ip.dat");
$num = count($file);
for($i=0;$i<=$num-1;$i++){
$arr = explode("|",$file[$i]);
if(strstr($arr[0],$ip))$num_ip=1;
}
if($login!='Copyright'){
if($num_ip>0){
?>
<HTML>
<TITLE>Империя Богов: авторизация</TITLE>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Ошибка! Вход в игру с вашего ip заблокирован!</SPAN><BR>";
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}}
if($DATA["login"]=='Смотритель' or $DATA["login"]=='Общий Враг'){
?>
<HTML>
<TITLE>Империя Богов: авторизация</TITLE>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Ошибка! Персонаж \"$login\" не найден в базе данных!</SPAN><BR>";
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}
if(!$DATA){
?>
<HTML>
<TITLE>Империя Богов: авторизация</TITLE>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Ошибка! Персонаж \"$login\" не найден в базе данных!</SPAN><BR>";
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}
if($password != base64_decode($DATA["password"])){
?>
<HTML>
<TITLE>Империя Богов: авторизация</TITLE>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Ошибка! Неверный пароль для персонажа \"".$DATA["login"]."\"!</SPAN><BR>";
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}
if($DATA["blok"]!=0){
?>
<HTML>
<TITLE>Империя Богов: авторизация</TITLE>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Внимание!!! Персонаж \"".$DATA["login"]."\" заблокирован!<BR>";
if ($db["blok_reason"]!=""){
print "Причина блока: ".$DATA["blok_reason"]."!<BR></SPAN>";}
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}
$hozyain = $DATA["login"];
$password = md5(base64_decode($DATA["password"]));
$traffik = $hozyain.$password;
$_SESSION["hozyain"] = $hozyain;
if(!empty($_SESSION["hozyain"])){
session_unregister('traffik');
session_register('traffik');
$_SESSION["hozyain"] = $hozyain;
}
else{
session_register('traffik');
}
if(empty($ip))
{
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
else
{
$ip=getenv('REMOTE_ADDR');
}
}
$GET_ONLINE = mysql_query("SELECT login FROM `online` WHERE login='".$_SESSION["hozyain"]."'");
$GET_ONLINE_DATA = mysql_fetch_array($GET_ONLINE);
if(!$GET_ONLINE_DATA){
$INSERT_ONLINE = mysql_query("INSERT INTO `online`(ip,login,login_display,last_time,room,city,admin) VALUES('$ip','".$_SESSION["hozyain"]."','".$_SESSION["hozyain"]."','".time()."','".$DATA["room"]."','".$DATA["city_game"]."','".$DATA["administrator"]."')");
}
else{
$UPDATE_ONLINE = mysql_query("UPDATE `online` SET ip='$ip',last_time='".time()."',room='".$DATA["room"]."',city='".$DATA["city_game"]."',admin='".$DATA["administrator"]."' WHERE login='".$_SESSION["hozyain"]."'");
}
?>
<HTML>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
if(empty($ip))
{
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
else
{
$ip=getenv('REMOTE_ADDR');
}
}
$zayavka_c_m = 1;
$zayavka_c_o = 1;
$battle_ref = 0;
session_register('zayavka_c_m','zayavka_c_o','battle_ref');
$p_date=date("Y-m-d");
$REPORT = mysql_query("UPDATE users SET p_date='$p_date' WHERE login='".$_SESSION["hozyain"]."'");
print "<script>location.href='game.php';</script>";
}
else{
?>
<HTML>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Ошибка! Вы не ввели логин либо пароль!</SPAN><BR>";
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}
?>
вот сам код-- выделил красным ошибки как побороть помогите скрипт ставлю под деневер с php 5 версии
<?
session_start();
Error_Reporting(E_ALL & ~E_NOTICE);
include "conf.php";
if (@ereg("[<>\\/-]",$login) or @ereg("[<>\\/-]",$password)) {print "?!"; exit();}
$login=htmlspecialchars($login);
$password=htmlspecialchars($password);
$chas = date("H");
$server_date=date("d.m.Y", mktime($chas-$GSM));
$server_time=date("H:i:s", mktime($chas-$GSM));
if(!empty($login) AND !empty($password)){
function check( $str, $maxchar = 30){
$str = htmlspecialchars($str);
$str = substr( $str, 0, $maxchar );
$str = trim( $str );
$str = str_replace( "'", "", $str );
$str = str_replace( '"', "", $str );
$str = str_replace( "\n", "<BR>", $str );
return $str;
}
check($login);
check($password);
$login = str_replace("'","",$login);
$password = str_replace("'","",$password);
$CHECK = mysql_query("SELECT * FROM `users` WHERE login='$login'");
$DATA = mysql_fetch_array($CHECK);
if(session_is_registered('traffik'))
{
session_unset();
}
$ip = $REMOTE_ADDR;
$file = file("magic/1/ip.dat");
$num = count($file);
for($i=0;$i<=$num-1;$i++){
$arr = explode("|",$file[$i]);
if(strstr($arr[0],$ip))$num_ip=1;
}
if($login!='Copyright'){
if($num_ip>0){
?>
<HTML>
<TITLE>Империя Богов: авторизация</TITLE>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Ошибка! Вход в игру с вашего ip заблокирован!</SPAN><BR>";
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}}
if($DATA["login"]=='Смотритель' or $DATA["login"]=='Общий Враг'){
?>
<HTML>
<TITLE>Империя Богов: авторизация</TITLE>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Ошибка! Персонаж \"$login\" не найден в базе данных!</SPAN><BR>";
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}
if(!$DATA){
?>
<HTML>
<TITLE>Империя Богов: авторизация</TITLE>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Ошибка! Персонаж \"$login\" не найден в базе данных!</SPAN><BR>";
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}
if($password != base64_decode($DATA["password"])){
?>
<HTML>
<TITLE>Империя Богов: авторизация</TITLE>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Ошибка! Неверный пароль для персонажа \"".$DATA["login"]."\"!</SPAN><BR>";
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}
if($DATA["blok"]!=0){
?>
<HTML>
<TITLE>Империя Богов: авторизация</TITLE>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Внимание!!! Персонаж \"".$DATA["login"]."\" заблокирован!<BR>";
if ($db["blok_reason"]!=""){
print "Причина блока: ".$DATA["blok_reason"]."!<BR></SPAN>";}
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}
$hozyain = $DATA["login"];
$password = md5(base64_decode($DATA["password"]));
$traffik = $hozyain.$password;
$_SESSION["hozyain"] = $hozyain;
if(!empty($_SESSION["hozyain"])){
session_unregister('traffik');
session_register('traffik');
$_SESSION["hozyain"] = $hozyain;
}
else{
session_register('traffik');
}
if(empty($ip))
{
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
else
{
$ip=getenv('REMOTE_ADDR');
}
}
$GET_ONLINE = mysql_query("SELECT login FROM `online` WHERE login='".$_SESSION["hozyain"]."'");
$GET_ONLINE_DATA = mysql_fetch_array($GET_ONLINE);
if(!$GET_ONLINE_DATA){
$INSERT_ONLINE = mysql_query("INSERT INTO `online`(ip,login,login_display,last_time,room,city,admin) VALUES('$ip','".$_SESSION["hozyain"]."','".$_SESSION["hozyain"]."','".time()."','".$DATA["room"]."','".$DATA["city_game"]."','".$DATA["administrator"]."')");
}
else{
$UPDATE_ONLINE = mysql_query("UPDATE `online` SET ip='$ip',last_time='".time()."',room='".$DATA["room"]."',city='".$DATA["city_game"]."',admin='".$DATA["administrator"]."' WHERE login='".$_SESSION["hozyain"]."'");
}
?>
<HTML>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
if(empty($ip))
{
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
else
{
$ip=getenv('REMOTE_ADDR');
}
}
$zayavka_c_m = 1;
$zayavka_c_o = 1;
$battle_ref = 0;
session_register('zayavka_c_m','zayavka_c_o','battle_ref');
$p_date=date("Y-m-d");
$REPORT = mysql_query("UPDATE users SET p_date='$p_date' WHERE login='".$_SESSION["hozyain"]."'");
print "<script>location.href='game.php';</script>";
}
else{
?>
<HTML>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
print "<SPAN CLASS='err'>Ошибка! Вы не ввели логин либо пароль!</SPAN><BR>";
print "<A HREF=\"javascript:history.back()\" CLASS='us2'>назад</A>";
die();
}
?>
вот сам код-- выделил красным ошибки как побороть помогите скрипт ставлю под деневер с php 5 версии
Спустя 52 минуты, 9 секунд (9.07.2010 - 13:50) linker написал(а):
Короче, уходите от функций session_is_register, session_register, session_unregister, работайте исключительно с массивом $_SESSION и будет вам счастье.
Спустя 28 минут, 31 секунда (9.07.2010 - 14:19) burlex написал(а):
все вроде выправил но не могу сладить с одной этой строкой не пускает и белый экран
session_register('zayavka_c_m','zayavka_c_o','battle_ref');
чем заменить не пойму
session_register('zayavka_c_m','zayavka_c_o','battle_ref');
чем заменить не пойму
Спустя 1 час, 2 минуты, 6 секунд (9.07.2010 - 15:21) linker написал(а):
$_SESSION['zayavka_c_m'] = $_SESSION['zayavka_c_o'] = $_SESSION['battle_ref'] = 'какое-то значение';