login problema

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Wayn3
Mesaje:111

login problema

Cod: Selectaţi tot

<?
include("config.php");
include("include/session.php");
if($session->logged_in){
   echo  "
  &nbsp;&nbsp; <a href=\"http://ro-gamblers.info/userinfo.php?user=$session->username\">Contul meu</a><br> <br>"
       ."&nbsp;&nbsp;&nbsp;<a href=\"http://ro-gamblers.info/useredit.php\">Editeaza cont</a><br> <br>";
   if($session->isAdmin()){
     echo "  &nbsp;&nbsp;&nbsp;<a href=\"http://ro-gamblers.info/admin/index.php\">Panou administrare</a> &nbsp;&nbsp; <br> <br> ";
}
   echo "&nbsp;&nbsp;&nbsp;<a href=\"http://ro-gamblers.info/process.php\">Iesire</a>";
}
else{
?>
<div id="fcf2">
<form action="http://ro-gamblers.info/process.php" method="POST">
<table border="0" cellspacing="0" cellpadding="3">
<tr><td>Username:</td></tr>
<tr><td><input type="text" name="user" maxlength="30" value="<? echo $form->value("user"); ?>"></td><td><? echo $form->error("user"); ?></td></tr>
<tr><td>Password:</td></tr>
<tr><td><input type="password" name="pass" maxlength="30" value="<? echo $form->value("pass"); ?>"></td><td><? echo $form->error("pass"); ?></td></tr>
<tr><td colspan="2""><input type="checkbox" name="remember" <? if($form->value("remember") != ""){ echo "checked"; } ?>>
<font size="2">Retine-ma &nbsp;&nbsp;&nbsp;&nbsp;
<input type="hidden" name="sublogin" value="1">
<input type="submit" value="Login"></td></tr>
<tr><td colspan="2"><br><font size="2">[<a href="http://ro-gamblers.info/forgotpass.php">Ai uitat parola?</a>]</font></td></tr>
<tr><td colspan="2"><br>N-ai cont? <a href="http://ro-gamblers.info/inregistrare.php">Sign-Up!</a></td></tr>
</table>
</form>
</div>
<?
};
?>

<?
echo "</td></tr><tr><td align=\"center\"><br><br>";
echo "<b>Total membri inregistrati:</b> ".$database->getNumMembers()."<br>";
echo "$database->num_active_users user<b>(i)</b> navigheaza pe site <br> ";
echo "$database->num_active_guests vizitator<b>(i)</b> navigheaza pe site.<br>";

?>
aceasta este un meniu inclus in fiecare pagina si situat in stanga paginii..

Cod: Selectaţi tot

<?php
session_start();


switch($_GET['actiune'])
{
case '':


$sql="SELECT * FROM `poker-categ`";
$r=mysql_query($sql);
while($row = mysql_fetch_array($r)){
echo '<table cellpadding=10 cellspacing=10>';
echo '<tr><td><b><a href=http://www.ro-gamblers.info/poker/forum.php?actiune='.$row[2].'>'.$row[0].'</a></b></td></tr><tr><td>'.$row[1].'</td></tr>';
echo '</table>';
}
break;
case '1':

$sql="SELECT * FROM `poker` WHERE categorie = '1' ";
echo '<a href="http://www.ro-gamblers.info/poker/newtopic.php?actiune=1"><img src="http://ro-gamblers.info/images/new_topic.gif" ></a>';
$r=mysql_query($sql);
while($row = mysql_fetch_array($r)){
$data = time() + (7 * 24 * 60 * 60);
echo '<table cellpadding=10 cellspacing=10>';
echo '<tr><td><b><a href=http://ro-gamblers.info/userinfo.php?user='.$row[0].'>'.$row[0].'</a></b></td><td><a href=http://www.ro-gamblers.info/poker/forum.php?categ='.$row[5].'>'.$row[2].'</a></td><td>'.date('Y-m-d').'</td></tr>';
echo '</table>';
}

break;


case '2':
$sql="SELECT * FROM `poker` WHERE categorie = '2' ";
echo '<a href="http://www.ro-gamblers.info/poker/newtopic.php?actiune=2"><img src="http://ro-gamblers.info/images/new_topic.gif" ></a>';
$r=mysql_query($sql);
while($row = mysql_fetch_array($r)){
$data = time() + (7 * 24 * 60 * 60);
echo '<table cellpadding=10 cellspacing=10>';
echo '<tr><td><b><a href=http://ro-gamblers.info/userinfo.php?user='.$row[0].'>'.$row[0].'</a></b></td><td><a href=http://www.ro-gamblers.info/poker/forum.php?categ='.$row[5].'>'.$row[2].'</a></td><td>'.date('Y-m-d').'</td></tr>';
echo '</table>';
}
break;
}

?>
iar aceasta este alta pagina
problema e ca daca eu ma loghez si cand intru pe aceasta pagina [a 2-a] .. imi arata pagina de log-in.. in stanga unde este inclus meniul .. faza e ca daca dau pe alta pagina.. imi arata ca sunt logat , iar daca dau inapoi pe acea pagina , imi arata pagina de login... de la ce ar putea fi ?

MarPlo Mesaje:4343
Nu stiu exact de la ce ar putea fi, dar ca parere, probabil in acea pagina trebuie adaugat session_start() ca sa preia sesiunea de logare.

Wayn3 Mesaje:111
session_start() este adaugat deja din fisierul inclus session.php .. unde sunt definite si alte sesiuni.
cred ca am dat peste o posibila cauza.. am testat , am verificat si tot asa pana am ajuns la concluzia ca trimiterea datelor la adresele de forma http:// www .site.ro?id='id' cauzeaza problema, insa nu stiu ce sa-i fac pentru a rezolva confuzia asta intre sesiunile php...
tin sa mentionez ca doar la paginile de forma pagina.php?id='id' imi cauzeaza probleme .. daca ma loghez de pe alta pagina [index.php exemplu] , merge si ramane conectat.
Dau apoi pe pagina cu probleme si sesiunea s-a pierdut , iar daca dau din nou pe index, este conectat.
va rog.. am nevoie de un raspuns concret si rapid

MarPlo Mesaje:4343
Poate in loc de id='id' ar trebui id=id (fara ghilimele simple).

Wayn3 Mesaje:111
am incercat si asa ceva.. nu stiu ce sa-i mai fac .
si inca un lucru care l-am observat este ca daca intru pe paginile de forma 'pag.php?id=id' , chiar daca sunt logat , imi returneaza functia false [adica si-a pierdut sesiunea si sunt delogat] .. imi porneste o sesiune noua .. adica pe langa faptul ca am un user logat care in acea pagina imi arata ca-i delogat , imi apare ca am si un vizitator , adica tot eu .

Wayn3 Mesaje:111
Am gasit problema.. si cred ca am rezolvato dar nu in totalitate.
Datele trimise de la http:// site.ro la http:// http://www.site.ro cauzeaza asta, si as vrea sa stiu cum fac , ca sesiunea sa ramana intacta chiar daca se face trecerea de la un url fara www , la unul cu www.

MarPlo Mesaje:4343
Se poate folosi .htaccess, cu un cod prin care seteaza serverul Apache sa faca redirectul adreselor fara www la cea cu www
In fisierul .htaccess se adauga urmatorul cod:

Cod: Selectaţi tot

Options +FollowSymLinks
RewriteEngine On

RewriteBase /

# Face ca URL sa aibe automat www.
RewriteCond %{HTTP_HOST} ^site.ro
RewriteRule ^(.*)$ http\:\/\/www.site.ro\/$1 [R=301,L]

Subiecte similare