$SESSION[""] - Változóvesztés
Sziasztok!
Kezdő lévén a következő problémába ütköztem:
Íme a kód, mely egy formról kapja az adatot "action=action.php" módszerrel:
<?php
$OK = false;
if (isset($_POST["PHPSESSID"])):
$PHPSESSID = $_POST["PHPSESSID"];
elseif (isset($_GET["PHPSESSID"])):
$PHPSESSID = $_GET["PHPSESSID"];
endif;
function admin_sess ()
{
session_name ("admin");
$PHPSESSID = session_id();
}
function logout ()
{
if (isset($_GET["logout"])):
session_destroy();
header( "Location: index.php" );
elseif (isset($_POST["logout"])):
session_destroy();
header( "Location: index.php" );
endif;
}
function name_save ()
{
if ( isset ( $_POST["login_inp"] ) ):
$_SESSION["usr_name"] = $_POST["login_inp"];
elseif ( isset ( $_GET["login_inp"] ) ):
$_SESSION["usr_name"] = $_GET["login_inp"];
endif;
if ( isset ( $_POST["passw_inp"] ) ):
$_SESSION["psw"] = $_POST["passw_inp"];
elseif ( isset ( $_GET["passw_inp"] ) ):
$_SESSION["psw"] = $_GET["passw_inp"];
endif;
}
function db_connect()
{
$database["server"]="192.168.0.1";
$database["name"]="underground";
$database["user"]="developer";
$database["pass"]="network";
$connect = mysql_connect( $database["server"], $database["user"], $database["pass"]);
if ( ! $connect )
die( "Nincs Kapcsolat". mysql_error () );
mysql_select_db( $database["name"] )
or die ( $database["name"]. mysql_error() );
}
function admin_log ()
{
db_connect();
$a = $_SESSION["usr_name"];
$b = $GLOBALS["PHPSESSID"];
$admin_log_in = ("INSERT INTO temp ( id, usr_log_in_time, usr_name, Session_id )VALUES ( '', NOW(NULL), '$a', '$b' );");
mysql_query ($admin_log_in);
print mysql_error();
}
function test ()
{
if ( !isset ( $_SESSION["usr_name"] ) ):
print ( "A kért beavatkozás nem végrehajtható!!!!!!!!!" );
else:
$GLOBALS["OK"] = true;
endif;
return ($GLOBALS["OK"]);
}
function false_name ()
{
if ( $_SESSION["usr_name"] !== "admin" & $_SESSION["psw"] !== "admin" ):
print "false_name ()";
header( "Location: http://192.168.0.1/under/index.php" );
endif;
}
name_save ();
false_name ();
logout ();
if ( $_SESSION["usr_name"] == "admin" & $_SESSION["psw"] == "admin" ):
admin_sess();
admin_log ();
test ();
if ( isset ( $GLOBALS["OK"] ) & isset ( $_SESSION["usr_name"] ) & isset ( $_SESSION["psw"] ) ):
if ( $OK == true ):
header( "Location: http://192.168.0.1/under/index.php?id=9" );
endif;
endif;
endif;
?>
Idáig még minden OK!
Amit várnék tőle:
- a "header( "Location: http://192.168.0.1/under/index.php?id=9" );" után becélzott helyen is őrizze meg a változókat a $_sesson[""] tömmben, de nem teszi a drága!
Így próbálom lekérni tőle a célállomáson, de süket, mint a ... :
<?php
session_start ();
if (isset($_POST["PHPSESSID"])):
$PHPSESSID = $_POST["PHPSESSID"];
elseif (isset($_GET["PHPSESSID"])):
$PHPSESSID = $_GET["PHPSESSID"];
endif;
$PHPSESSID = session_id();
if ( isset ( $_POST["psw_hidden"] ) ):
$_SESSION["psw"] = $_POST["psw_hidden"];
elseif ( isset ( $_GET["psw_hidden"] ) ):
$_SESSION["psw"] = $_GET["psw_hidden"];
else:
print " Nincs itt semmi " ;
endif;
if ( isset ( $_POST["usr_name_hidden"] ) ):
$_SESSION["usr_name"] = $_POST["usr_name_hidden"];
elseif ( isset ( $_GET["usr_name_hidden"] ) ):
$_SESSION["usr_name"] = $_GET["usr_name_hidden"];
else:
print " Nincs itt semmi " ;
endif;
if ( $_SESSION["usr_name"] !== "admin" & $_SESSION["psw"] !== "admin" ):
header( "Location: http://192.168.0.1/under/index.php?id=9" ); */
print $_SESSION["usr_name"];
endif;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>..::abc underground.::.admin::..</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a.indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a;}}
}
//-->
</script>
................
Nagyon köszönök minden hozzászólást!
■ Kezdő lévén a következő problémába ütköztem:
Íme a kód, mely egy formról kapja az adatot "action=action.php" módszerrel:
<?php
$OK = false;
if (isset($_POST["PHPSESSID"])):
$PHPSESSID = $_POST["PHPSESSID"];
elseif (isset($_GET["PHPSESSID"])):
$PHPSESSID = $_GET["PHPSESSID"];
endif;
function admin_sess ()
{
session_name ("admin");
$PHPSESSID = session_id();
}
function logout ()
{
if (isset($_GET["logout"])):
session_destroy();
header( "Location: index.php" );
elseif (isset($_POST["logout"])):
session_destroy();
header( "Location: index.php" );
endif;
}
function name_save ()
{
if ( isset ( $_POST["login_inp"] ) ):
$_SESSION["usr_name"] = $_POST["login_inp"];
elseif ( isset ( $_GET["login_inp"] ) ):
$_SESSION["usr_name"] = $_GET["login_inp"];
endif;
if ( isset ( $_POST["passw_inp"] ) ):
$_SESSION["psw"] = $_POST["passw_inp"];
elseif ( isset ( $_GET["passw_inp"] ) ):
$_SESSION["psw"] = $_GET["passw_inp"];
endif;
}
function db_connect()
{
$database["server"]="192.168.0.1";
$database["name"]="underground";
$database["user"]="developer";
$database["pass"]="network";
$connect = mysql_connect( $database["server"], $database["user"], $database["pass"]);
if ( ! $connect )
die( "Nincs Kapcsolat". mysql_error () );
mysql_select_db( $database["name"] )
or die ( $database["name"]. mysql_error() );
}
function admin_log ()
{
db_connect();
$a = $_SESSION["usr_name"];
$b = $GLOBALS["PHPSESSID"];
$admin_log_in = ("INSERT INTO temp ( id, usr_log_in_time, usr_name, Session_id )VALUES ( '', NOW(NULL), '$a', '$b' );");
mysql_query ($admin_log_in);
print mysql_error();
}
function test ()
{
if ( !isset ( $_SESSION["usr_name"] ) ):
print ( "A kért beavatkozás nem végrehajtható!!!!!!!!!" );
else:
$GLOBALS["OK"] = true;
endif;
return ($GLOBALS["OK"]);
}
function false_name ()
{
if ( $_SESSION["usr_name"] !== "admin" & $_SESSION["psw"] !== "admin" ):
print "false_name ()";
header( "Location: http://192.168.0.1/under/index.php" );
endif;
}
name_save ();
false_name ();
logout ();
if ( $_SESSION["usr_name"] == "admin" & $_SESSION["psw"] == "admin" ):
admin_sess();
admin_log ();
test ();
if ( isset ( $GLOBALS["OK"] ) & isset ( $_SESSION["usr_name"] ) & isset ( $_SESSION["psw"] ) ):
if ( $OK == true ):
header( "Location: http://192.168.0.1/under/index.php?id=9" );
endif;
endif;
endif;
?>
Idáig még minden OK!
Amit várnék tőle:
- a "header( "Location: http://192.168.0.1/under/index.php?id=9" );" után becélzott helyen is őrizze meg a változókat a $_sesson[""] tömmben, de nem teszi a drága!
Így próbálom lekérni tőle a célállomáson, de süket, mint a ... :
<?php
session_start ();
if (isset($_POST["PHPSESSID"])):
$PHPSESSID = $_POST["PHPSESSID"];
elseif (isset($_GET["PHPSESSID"])):
$PHPSESSID = $_GET["PHPSESSID"];
endif;
$PHPSESSID = session_id();
if ( isset ( $_POST["psw_hidden"] ) ):
$_SESSION["psw"] = $_POST["psw_hidden"];
elseif ( isset ( $_GET["psw_hidden"] ) ):
$_SESSION["psw"] = $_GET["psw_hidden"];
else:
print " Nincs itt semmi " ;
endif;
if ( isset ( $_POST["usr_name_hidden"] ) ):
$_SESSION["usr_name"] = $_POST["usr_name_hidden"];
elseif ( isset ( $_GET["usr_name_hidden"] ) ):
$_SESSION["usr_name"] = $_GET["usr_name_hidden"];
else:
print " Nincs itt semmi " ;
endif;
if ( $_SESSION["usr_name"] !== "admin" & $_SESSION["psw"] !== "admin" ):
header( "Location: http://192.168.0.1/under/index.php?id=9" ); */
print $_SESSION["usr_name"];
endif;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>..::abc underground.::.admin::..</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a.indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a;}}
}
//-->
</script>
................
Nagyon köszönök minden hozzászólást!