Comunidad de diseño web y desarrollo en internet online

Problema con sesiones php/flash

Citar            
MensajeEscrito el 25 Jun 2008 10:25 am
Hola, agradeceros de antemano la ayuda y felicitaros por vuestro buen hacer, resulta que tengo un problema que llevo dandole vueltas y aún no se porqué, ocurre que tengo una página en flash desde donde se accede a una zona privada de usuarios, mi problema es que para acceder el usuario debe ingresar los datos dos veces, ya que la primera vez le redirecciona a la página principal, como si los datos fueran erroneos, pero los datos son correctos, de hecho al volver a meter los mismos datos si le deja acceder, creo que es un problema con las sesiones del archivo php de acceso pero nose pq hace eso.

El ActionScript es este :

Stage.scaleMode = "noScale";
var envio:LoadVars = new LoadVars();
var recibir:LoadVars = new LoadVars();

function login() {
envio.usuario = usuario_txt.text;
envio.password = password_txt.text;
envio.action = "login";
envio.sendAndLoad("consulta.php",recibir,"POST");
}
recibir.onLoad = function(exito) {
if (exito) {
switch (this.opcion) {
case "0" :
mensaje_txt.text = "no existe el usuario";
break;
case "1" :
mensaje_txt.text = "nombre de usuario o pass mal ingresado";
break;
case "2" :
mensaje_txt.text = "datos correctos";

switch (this.tipo) {
case "0" :
getURL("zonaprivada/index.php");

break;
case "1" :
default :

getURL("zonaprivada/usuario.php?id="+(this.usuario));
break;
}
break;
default :
mensaje_txt.text = "no hay conexión";
break;
}
} else {
mensaje_txt.text = "Error en el Script";
}
};

y aqui el código del archivo consulta.php

<?php
$action = $HTTP_POST_VARS['action'];
$usuario = $HTTP_POST_VARS['usuario'];
$password = $HTTP_POST_VARS['password'];
require_once('connections.php');
mysql_select_db($database, $conection);

if ($action == 'login'){
$sql = mysql_query("SELECT password,tipo,id FROM usuarios WHERE usuario='".$usuario."'");
if (!$sql) {
die('Could not query:' . mysql_error());
}
$sql2 = mysql_fetch_row($sql);
if (!$sql2){
//no existe usuario
echo 'no existe usuario<br>';
?>&opcion=0&<?
}else{
if ($password !== $sql2[0]){
//no coincide pass
echo 'el pass no coincide<br>';
?>&opcion=1&<?
}else{
//usuario y pass correctos
echo 'datos correctos<br>';
// Aqui creo que está el problema al darle nobre a la sesion.
session_start();
$_SESSION['nombre_session']=TRUE;
?>&opcion=2&
&tipo=<? echo $sql2[1]; ?>&
&usuario=<? echo $sql2[2]; ?>&
<?
}
}
mysql_close($conection);
}
?>

Eternamente agradecido
Salud para tod@s

Por Fer10

14 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Jun 2008 03:13 pm

Código :

<?php
$action = $HTTP_POST_VARS['action'];
$usuario = $HTTP_POST_VARS['usuario'];
$password = $HTTP_POST_VARS['password'];
require_once('connections.php');
mysql_select_db($database, $conection);

if ($action == 'login'){
$sql = mysql_query("SELECT password,tipo,id FROM usuarios WHERE usuario='".$usuario."'");
if (!$sql) {
die('Could not query:' . mysql_error());
}
$sql2 = mysql_fetch_row($sql);
if (!$sql2){
//no existe usuario
echo 'no existe usuario<br>';
?>&opcion=0&<?
}else{
if ($password !== $sql2[0]){
//no coincide pass
echo 'el pass no coincide<br>';
?>&opcion=1&<?
}else{
//usuario y pass correctos
echo 'datos correctos<br>';
// Aqui creo que está el problema al darle nobre a la sesion.
session_start();
$_SESSION['nombre_session']=TRUE;
?>&opcion=2&
&tipo=<? echo $sql2[1]; ?>&
&usuario=<? echo $sql2[2]; ?>&
<?
}
}
mysql_close($conection);
}
?>

El fallo estaba en

Código :

$action = $HTTP_POST_VARS['action'];
$usuario = $HTTP_POST_VARS['usuario'];
$password = $HTTP_POST_VARS['password'];
require_once('connections.php');
mysql_select_db($database, $conection);

if ($action == 'login'){
$sql = mysql_query("SELECT password,tipo,id FROM usuarios WHERE usuario='".$usuario."'");
if (!$sql) {
die('Could not query:' . mysql_error());
}
$sql2 = mysql_fetch_row($sql);
if (!$sql2){
//no existe usuario
echo 'no existe usuario<br>';
?>&opcion=0&<?
}else{
if ($password !== $sql2[0]){
//no coincide pass
echo 'el pass no coincide<br>';
?>&opcion=1&<?
}else{
//usuario y pass correctos

session_start();
$_SESSION['nombre_session']=TRUE;
[b]// hay que asignar la sesion antes de enviar nada.[/b]
echo 'datos correctos<br>';
?>&opcion=2&
&tipo=<? echo $sql2[1]; ?>&
&usuario=<? echo $sql2[2]; ?>&


Gracias

Por Fer10

14 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 03 Sep 2008 02:22 am
gracias
a mi me sirvio =) aunque necesitaba que se me vaya en vez de una url nueva a otra escena :( xq no se como restringir la pagina q es para usuarios...pero enfin ya vere
gracias :D

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.