Ajuda PHP

Sasukez0r

Power Member
Como faço para poder colocar variaveis da session na frame por exemplo ta a pagina normal ke tem a seesion depois com uma frame e nas paginas da frame como faço apra aparecer os valores das variaves session e ke nao da.... vou deixar o codigo....

login.php
<?
session_start();
if(!session_is_registered(myusername)){
header("location:index.html");
}
$host="*********";
$dusername="***********";
$dpassword="********";
$db_name="*****";
$username=$_SESSION['myusername'];
$myusername=$_SESSION['myusername'];
$mypassword=$_SESSION['mypassword'];

mysql_connect("$host", "$dusername", "$dpassword")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");


$result = mysql_query("SELECT * FROM client WHERE username='$username'")
or die(mysql_error());
$row = mysql_fetch_array( $result );

if($row['access'] == 1){
include("member.php");
}

else{
include("admin.php");
}


session_destroy();
?>

members.php
<html>
<head>
<title>Derma-Games</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
// add a zero in front of numbers<10
m=checkTime(m);
s=checkTime(s);
document.getElementById('clock').innerHTML=h+":"+m+":"+s;
t=setTimeout('startTime()',500);
}

function checkTime(i)
{
if (i<10)
{
i="0" + i;
}
return i;
}
function doPostBack(sData, sUrl)
{
var oForm = document.getElementById('postback');
var oData = document.getElementById('postback_data');
if (oForm != null && oData != null)
{
if (sUrl != null) {
oForm.action = sUrl;
}
oData.value = sData;
oForm.submit();
}
}

</script>
</head>
<body onload="startTime()">
<form id="postback" method="post" style="display:none;">
<input type="hidden" name="a" value="postback" />
<input type="hidden" name="data" id="postback_data" value="" />
</form>
<table width="100%" bgcolor="#7D99C5" class="home">
<tr><td valign="top"align="center"><img src="logo.jpg"></td></tr></table>
<table width="100%" bgcolor="#FFFFFF" class="home2">
<tr><td align="left" width="450"><div id="hlinfo">DG - Online RS Gold Business</div></td><td align="right"><div id="hrinfo"><b>Clients:</b> 2</div></td>
<td width="90">
<div id="date">
<script type="text/javascript">
<!--
var currentTime = new Date()
var month = currentTime.getMonth() + 1
var day = currentTime.getDate()
var year = currentTime.getFullYear()
document.write(year + "-" + day + "-" + month)

//-->
</script>
</div>
</td>
<td width="30">
<div id="clock"></div>
</td></tr></table>
<table width="100%" bgcolor="#FFFFFF" class="home3">
<tr><td>
<table width="200" align="left">
<tr><td>
<table width="150">
<tr><td>

<table class="login" cellpadding="0" cellspacing="0">
<tr>
<td class="head">Login</td>
</tr>
<tr>
<td class="box" style="width: 100%;">

Bem-Vindo <b><? echo $_SESSION['myusername']; ?></b>!
<br />
<center><a href="javascript: doPostBack('logout', '/')" class="logout" title="Log out">(Logout)</a></center>


</td>
</tr>
</table>
<table class="login" cellpadding="0" cellspacing="0">
<tr>
<td class="head">O nosso cantinho...</td>
</tr>
<tr>
<td align="center">
<br>
<a href="http://img151.imageshack.us/my.php?image=lanhouse1abril004nb8.jpg"><img src="images/lanhouse1abril004nb8.th.jpg"></a>
<br><br>
O nosso estabelecimento seja bem vindo :)<p>
Como um garagem rapidamente se torna numa empresa :P
<br><br>
</td>
</tr>
</table>

</tr></td>
</td></tr>
</table>
</td></tr></table>
<table align="right" width="200">
<tr><td>
<table align="right" class="menur" cellpadding="0" cellspacing="0">
<tr>
<td class="head">Menu</td>
</tr>
</table>
<table align="right" cellpadding="0" cellspacing="0"><tr><td>
<div id="menu">
<ul class="menu">
<li><a href="frame/client/stats.php" target="frame">&bull; Client</a></li>
<li><a href="frame/home.html" target="frame">&bull; Home</a></li>
<li><a href="frame/news.html" target="frame">&bull; News </a></li>
<li><a href="frame/shop.html" target="frame">&bull; Shop</a></li>
<li><a href="frame/support.html" target="frame">&bull; Support</a></li>
<li><a href="frame/faq.html" target="frame">&bull; FAQ</a></li>
<li><a href="frame/about.html" target="frame">&bull; About Us</a></li>
</ul>
</div>
</td></tr></table>
</td></tr></table>
<table align="center">
<tr><td>
<Iframe src="frame/client/stats.php" frameborder="0" width="580" height="550" name="frame"></Iframe>
<br><br>
<center><div="texto">HTML/JAVAScript/CSS/PHP used;<br>Programed by Sasukez0r;</div></center>
</td></td>
</table>
</table>
</body>
</html>

stats.php
<html>
<head>
<link rel="stylesheet" type="text/css" href="framestyle.css">
</head>
<body>
<div id="tab_container">

<ul id="tab">
<li class="left"><span>Stats</span></li>
<li class="left"><a href="compras.php">Compras</a></li>
<li class="left"><a href="info.php">Info</a></li>
</ul>
</div>
<br>
<table width="200">
<tr>
<td height="60">
<div id="titulo">Stats</div>
<div id="line"></div>
<p>
</td>
</tr>
<tr>
<td>
<div id="texto">Quantia Total Paga:</div>
</td>
<td>
<? echo "".$row['pago']; ?>
</td>
</tr>
<tr>
<td>
<div id="texto">Quantia Total Comprada:</div>
</td>
<td>
<? echo $row['comprado']; ?>
</td>
</tr>
<tr>
<td>
<div id="texto">Pagamentos:</div>
</td>
<td>
<? echo $row['pagamentos']; ?>
</td>
</tr>
<tr>
<td>
<div id="texto">Dermapoints:</div>
</td>
<td>
<? echo $row['dermapoints']; ?>
</td>
</tr>
</table>
</body>
</html>
 
Porque em vez de usares includes não utilizas mesmo headers?? e passas as variáveis de sessão, por exemplo:



if($row['access'] == 1){
//include("member.php"); -> esta era a tua linha de código
$_SESSION['username']= $username;
$_SESSION['myusername']= $myusername;
$_SESSION['password']=$mypassword;

header("location: member.php");
}

e depois na member.php fazes a recepção do valores dessas variáveis

<?
session_start();
$username=$_SESSION['username'];
$myusername=
$_SESSION['myusername'];
$mypassword=
$_SESSION['password'];
?>

Pelo que eu entendo, o include vai fazer com a member.php seja "incluida" na login.php, logo nao necessitarias de receber as variáves de secção na member.php e uma vez que já tens os valores da secção guardados em variáveis : $username, $myusername e $mypassword, era só usares essas variáveis!

Acho eu!
Espero não estar a dizer nenhuma barbaridade! Se estiver, peço que me corrijam!!

Espero ter ajudado.
 
Última edição:
Não sei se percebi a tua dúvida, mas arrisco: tens o session_start() no início do ficheiro de cada frame?

penso que é isso. no members.php não foi preciso porque o ficheiro foi incluido no anterior, ou seja, é como um copy+paste do código para o ficheiro anterior. mas o ficheiro que aparece na frame é chamado normalmente pelo browser por isso precisa do session_start no inicio do stats.php
 
Porque em vez de usares includes não utilizas mesmo headers?? e passas as variáveis de sessão, por exemplo:



if($row['access'] == 1){
//include("member.php"); -> esta era a tua linha de código
$_SESSION['username']= $username;
$_SESSION['myusername']= $myusername;
$_SESSION['password']=$mypassword;

header("location: member.php");
}

e depois na member.php fazes a recepção do valores dessas variáveis

<?
session_start();
$username=$_SESSION['username'];
$myusername=
$_SESSION['myusername'];
$mypassword=
$_SESSION['password'];
?>

Pelo que eu entendo, o include vai fazer com a member.php seja "incluida" na login.php, logo nao necessitarias de receber as variáves de secção na member.php e uma vez que já tens os valores da secção guardados em variáveis : $username, $myusername e $mypassword, era só usares essas variáveis!

Acho eu!
Espero não estar a dizer nenhuma barbaridade! Se estiver, peço que me corrijam!!

Espero ter ajudado.

isso nao funciona ja tentei =S
 
não funciona porque tu não estás sequer a usar váriaveis de sessão no stats.php.
estás é a tentar usar o $row com os resultados da query do login.php.

se queres usar esses resultados ai então no login.php, depois desta linha
$row = mysql_fetch_array( $result );

acrescenta:
$_SESSION['results_row']=$row;


e no stats.php, depois do session_start(), acrescenta:
$row=$_SESSION['results_row'];
 
Porque não fazes novamente a query no stats.php???
passas as variáveis de sessão para lá, porque precisas do username, e penso que funciona!!

Opá pode não ser a melhor maneira, porque vais estar a repetir código... mas pode funcionar!!

Em relação ao que MPalhas sugeriu, não sei porque não funciona a dica dele, mas uma outra experiência poderia ser (já que estás numa de tentativa-erro):

no login.php, depois da linha
$row = mysql_fetch_array( $result );

acrescenta:
$_SESSION['results_row']=
mysql_fetch_array( $result );

e então no stats.php, depois do session_start(), acrescentas:

$row=$_SESSION['results_row'];

Não sei se isto poderá funcionar, mas.........
 
$_SESSION['results_row']=mysql_fetch_array( $result );

esta não vai funcionar. tem que usar a variavel $row em vez do mysql_fetch_array para atribuir a variavel de sessão (basicamente, da maneira que eu tinha dito).
porque primeiro atribuis essa função ao $row, e quando a fores tentar usar novamente, a função vai tentar retornar o 2º registo da query, que provavelmente não existe visto ser uma query de login

@Sasukez0r, nada como? dá algum erro? vai usando a função print_r($row) por exemplo em vários pontos do código (e usa também com as outras variáveis) para saberes onde é que os valores se perdem
 
Back
Topo