gRoOvE 0 Denunciar post Postado Dezembro 3, 2007 quero criar uma matriz e atribuir o valor das SESSION as variaveis mas nao consigo de jeito nenhum, alguem ajuda ae plzz segue o codigo <?php session_start(); include "config.php"; $login = trim($_POST['login']); $senha = trim($_POST['senha']); if (empty($login) || empty($senha)) { if (empty($login)) { echo "Digite seu Login<br />"; } if (empty($senha)) { echo "Digite sua Senha<br />"; } } else { $sql_login = "SELECT * FROM membros WHERE login ='$login' AND senha='$senha'"; $exe_login = mysql_query($sql_login) or die(mysql_error()); $num_login = mysql_num_rows($exe_login); if ($num_login > 0) { while ($reg_login = mysql_fetch_array($exe_login)){ foreach($reg_login AS $key => $val) $_SESSION['id'] = $id; $_SESSION['nome'] = $nome; $_SESSION['sobrenome'] = $sobrenome; $_SESSION['login'] = $login; mysql_query("UPDATE membros SET data_ultimo_login = now() WHERE login = '$login'"); header("Location:index.php?categoria=protegido"); } } else { echo "Login e/ou senha incorretos"; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 3, 2007 Seu sistema ta inseguro, ta facil aplicar um sql injection ali , dai qualquer um pode logar no seu sistema sem saber a senha e sobre as session eu recomendo voce criar apenas 1 session e nao varias como voce esta fazendo, fica mais organizado e pratico exemplo: $dados = array(); $dados["id"] = $id; $dados["nome"] = $nome; $dados["sobrenome"] = $sobrenome; $dados["login"] = $login; $_SESSION["dados"] = $dados; Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Dezembro 3, 2007 primeiro tenho q conseguir passar as SESSION, o codigo ta certo ?? pq ele nao passa as session, nao grava elas...eu jah tinha feito isso antes mas peguei um virus aki tive q formata o pc perdi td q tinha feito "/ Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 3, 2007 faça um teste de gravação das session bem simples pra ver uma coisa que pode estar acontecendo é que você nao configurou o session.save_path = "" no php.ini Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Dezembro 3, 2007 ta esse endereco no path C:\DOCUME~1\gRoOvE\CONFIG~1\Temp\php\session, na otra vez q eu tava mexendo nem mexi nesse patch ae e agora instalei td igual antes Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Dezembro 3, 2007 e ta descomentado essa linha no php.ini tb, eh algum erro no codigo que nao consigo indentificar...2 hrs mexendo nisso "/ Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 3, 2007 se o path ta certo, entao faça um teste de session só pra ver onde ta o erro ligue o display_errors = on e error_reporting(E_ALL); Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Dezembro 3, 2007 as session tao funcionando normal, fiz teste aki...agora é no codigo msm, eu nao intendo muito de foreach...da uma olhada a fundo ali eu fiz $_SESSION['id'] = $reg_login['id']; deu certo...confirmei msm o erro ta no foreach "/ Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 3, 2007 é seu display_error ta em off senao você veria o erro logo foreach($reg_login AS $key => $val) { $_SESSION['id'] = $id; $_SESSION['nome'] = $nome; $_SESSION['sobrenome'] = $sobrenome; $_SESSION['login'] = $login; } e aqui nao precisa do foreach while ($reg_login = mysql_fetch_array($exe_login)){ $id = $reg_login["id"]; $nome = $reg_login["nome"]; $sobrenome = $reg_login["sobrenome"]; $_SESSION['id'] = $id; $_SESSION['nome'] = $nome; $_SESSION['sobrenome'] = $sobrenome; $_SESSION['login'] = $login; Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Dezembro 3, 2007 meu display_errors ta ON sim, confirmei no phpinfo()...agora ate posso fazer sem foreach mas se usar ele vai poupar um trabalho de ter q ficar digitando $nome = $reg_login["nome"]; um por um "/ Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 3, 2007 é ate mais simples sem o foreach: //com foreach while ($reg_login = mysql_fetch_array($exe_login)){ foreach($reg_login AS $key => $val) $_SESSION['id'] = $id; $_SESSION['nome'] = $nome; $_SESSION['sobrenome'] = $sobrenome; $_SESSION['login'] = $login; //sem foreach while ($reg_login = mysql_fetch_array($exe_login)){ $_SESSION['id'] = $reg_login["id"]; $_SESSION['nome'] = $reg_login["nome"]; $_SESSION['sobrenome'] = $reg_login["sobrenome"]; $_SESSION['login'] = $reg_login["login"]; 1 linha a menos = ) Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Dezembro 3, 2007 mas ai que ta velho, nao consigo fazer funcionar com foreach e o meu interesse eh aprender foreach :D Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 3, 2007 mas ja te mostrei, voce esqueceu as { } e um exemplo assim é quando voce quer separar um array com seu elemento por exemplo campo = valor foreach($array as $key => $val){ echo $key." ".$val; } mas no caso do banco pode usar um simples com seu elemento por exemplo campo = valor foreach($array as $key){ echo $key; } só que fica ruim voce usar o foreach no seu caso por 2 motivos 1 voce ta usando 2 loop e 1 a toa outra o foreach separa os elementos do array, dai voce precisa saber a ordem dos elementos para nao salvar errado na session Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Dezembro 3, 2007 heaue aheiuahe vo te fala q nao intendi nada...mas dexa queto esse foreach, vo fazer pelo mysql_fetch_array msm, vlw Compartilhar este post Link para o post Compartilhar em outros sites