Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gRoOvE

problema com foreach

Recommended Posts

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

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

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

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

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

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

é 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

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

é 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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.