Ir para conteúdo

POWERED BY:

Arquivado

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

MARCIA_SP

e agora o retorno

Recommended Posts

E AI GALERA DO FORUM MINHA DUVIDA AGORA É A SEGUINTE, eu consigui fazer com que minha tela de login validase atraves do meu banco de dados MSSQL, até ai tudo bem, eu vou ter que usar session mesmo????

ai vai meu script

 

index.php

<html><head><title>LOGIN</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#FFFFFF" text="#000000"><div align="center">  <p> </p>  <p> </p>  <p> </p>  <p><font face="Verdana, Arial, Helvetica, sans-serif"><b>LOGIN E SENHA</b></font></p>  <p><font face="Verdana, Arial, Helvetica, sans-serif"><b> </b></font></p>  <form name="form1" method="post" action="acesso.php">    <img src="../../logonovo2.gif" width="269" height="98">     <table width="22%" border="1">      <tr>        <td width="17%"><font face="Verdana, Arial, Helvetica, sans-serif">LOGIN</font></td>        <td width="83%">          <input type="text" name="login">        </td>      </tr>      <tr>        <td width="17%"><font face="Verdana, Arial, Helvetica, sans-serif">SENHA</font></td>        <td width="83%">          <input type="password" name="senha">        </td>      </tr>    </table>    <p>      <input type="submit" name="Submit" value="OK">    </p>    <p>  </p>  </form></div></body></html>
acesso.php

<?$nome = $HTTP_POST_VARS[login];$pass = $HTTP_POST_VARS[senha];$db = mssql_connect ("IP:1433", "USER", "123");$basedados = mssql_select_db("TestePHP");$confirmacao = mssql_query("SELECT * FROM Usuario WHERE Usuario = '$nome' AND Senha = '$pass'", $db);$contagem = mssql_num_rows($confirmacao);if ( $contagem == 1 ) {  include "sucesso.htm";  } else {    echo "Você não está logado.";	}?>
a pagina sucesso.htm é uma pagina simples com uma mensagem

Alguem pode me ajudar?????????? Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imagem Postada eu tenho mesmo que abrir uma seção entaum??? é so colocar isso e pronto????

  Citar

No começo do script coloque session_start() e pra gravar na sessão:

  Citar

 

$_SESSION["login"] = $login; // Assim vai gravar o login na sessão

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

É meio óbvio que só colocando session_start não apareça nada, pra pegar o valor da sessão use:

  Citar

$login = $_SESSION["login"];

você pode colocar um if, se a senha e o user estiver certo você grava na sessão, caso contrário aparece uma mensagem de erro. Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

QUANDO EU USO O COMANDO

<? include('index.php'); ?>
NA MINHA PAGINA A SER BLOQUEADA, ELA ME LEVA PARA O INDEX.PHP QUE É ONDE EU LOGO, QUE É VALIDADO PELO ACESSO.PHP, A RESPOSTA ME APARECE NO PROPRIO ACESSO.PHP, MAIS ESSA RESPOSTA (TERIA QUE SER A PAGINA BLOQUEADA) ME APARECE JUNTO COM INDEX.PHP

 

ENTENDARAM??????? ME DEEM UM HELP PLEASE

 

OLHA SÓ O MEU FORM, EU FIZ SESSION??????????

 

INDEX.PHP

<html><head><title>LOGIN</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#FFFFFF" text="#000000"><div align="center"> <p> </p> <p> </p> <p> </p> <p><font face="Verdana, Arial, Helvetica, sans-serif"><b>LOGIN E SENHA</b></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif"><b> </b></font></p> <form name="form1" method="post" action="acesso.php">   <img src="../../logonovo2.gif" width="269" height="98">    <table width="22%" border="1">     <tr>       <td width="17%"><font face="Verdana, Arial, Helvetica, sans-serif">LOGIN</font></td>       <td width="83%">         <input type="text" name="login">       </td>     </tr>     <tr>       <td width="17%"><font face="Verdana, Arial, Helvetica, sans-serif">SENHA</font></td>       <td width="83%">         <input type="password" name="senha">       </td>     </tr>   </table>   <p>     <input type="submit" name="Submit" value="OK">   </p>   <p>  </p> </form></div></body></html>
ACESSO.PHP

 

<?$login = $_SESSION["login"];$nome = $HTTP_POST_VARS[login];$pass = $HTTP_POST_VARS[senha];$db  =	mssql_connect ("ip:1433", "USER", "123");$basedados	=	mssql_select_db("TestePHP");$confirmacao = mssql_query("SELECT * FROM Usuario WHERE Usuario = '$nome' AND Senha = '$pass'", $db);$contagem = mssql_num_rows($confirmacao);if ( $contagem == 1 ) {  include "OK.php";  } else {    echo "Você não está logado.";	}?>

 

<? include('index.php'); ?><?{$con = mssql_connect ("IP:1433","USER","123")or die ("Conexao com o Servidor não esta OK!!");mssql_select_db ("TestePHP")or die ("Banco de Dados naum encontrado");$SQL = "SELECT * FROM Usuario";$busca = mssql_query($SQL,$con);if( mssql_num_rows($busca) < 1){ echo "nao ha ninguem com este nome";}else{echo "<table border=1>";while ($r = mssql_fetch_array($busca)) {$user = $r[Usuario];$senha = $r[Senha];echo "<tr><td>$user</td><td>$senha</td></tr>"; }echo "</table>";}mssql_close($con);}?>
Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na primeira linha do acesso.php falta o codigo abaixo

 

session_start();
Lembre, sempre que for utilizar valores armazenados em sessoes, a primeira linha do arquivo deve conter o session_start();

 

e arruma lá no acesso.php

 

$_SESSION["login"] = $HTTP_POST_VARS[login];
e não

 

$login = $_SESSION["login"];
pois você não tinha setado valor pra $SESSION["login"], portanto o $login se tornava uma string vazia....

 

 

Um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só que seu script está totalmente sem lógica pelo que notei. VocÊ criou a session antes de verificar se o usuário existe. Ela deve ser criado somente se o usuário exisitir no banco de dados, para utilizar os dados gravados em futuras verificações.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  MARCIA_SP disse:

Como posso mudar? eu abro a session en qual form?????

 

Imagem Postada

Após verificar se o usuario existe no banco de dados no arquivo acesso.php.

 

A respeito de fechar sessão, você pode criar um arquivo logout.php

<? session_destroy();header ("Location: index.php");?>
Terminará a sessão e redirecionará para a index do site.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim? Você não entende como funciona para validar em outras páginas?Explique melhor... posso ajudar vocÊ.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha o codigo do ok.php

 

<? include('index.php'); ?><?{$con = mssql_connect ("192.168.1.3:1433","Rodrigo","123")or die ("Conexao com o Servidor não esta OK!!");mssql_select_db ("TestePHP")or die ("Banco de Dados naum encontrado");$SQL = "SELECT * FROM Usuario";$busca = mssql_query($SQL,$con);if( mssql_num_rows($busca) < 1){ echo "nao ha ninguem com este nome";}else{echo "<table border=1>";while ($r = mssql_fetch_array($busca)) {$user = $r[Usuario];$senha = $r[Senha];echo "<tr><td>$user</td><td>$senha</td></tr>"; }echo "</table>";}mssql_close($con);}?>

é o seguinte, tento entrar nessa pagina certu, me redireciona para o index.php(tela de login)

quando eu coloco senha e login corretos ele verifica no acesso.php e minha resposta é a pagina de index.php e a ok.php

 

 

melhorou???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está fazendo errado. Não tem como incluir um arquivo e depois outro desse jeito como você quer.VocÊ deve incluir o OK na index. Basta fazer as modificações abaixo:

  Citar

if ( $contagem == 1 ) { header("Location: index.php?acao=logado");  } else {    echo "Você não está logado.";}

na index, no local onde você quer que apareça a mensagem de logado ou não, coloque o código abaixo
  Citar

<? if($acao == "logado") {$con = mssql_connect ("192.168.1.3:1433","Rodrigo","123")or die ("Conexao com o Servidor não esta OK!!");mssql_select_db ("TestePHP")or die ("Banco de Dados naum encontrado");$SQL = "SELECT * FROM Usuario";$busca = mssql_query($SQL,$con);if( mssql_num_rows($busca) != 1){echo "nao ha ninguem com este nome";}else{echo "<table border=1>";while ($r = mssql_fetch_array($busca)) {$user = $r[usuario];$senha = $r[senha];echo "<tr><td>$user</td><td>$senha</td></tr>"; }echo "</table>";}mssql_close($con);} ?>

Testa isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Você está fazendo errado. Não tem como incluir um arquivo e depois outro desse jeito como você quer.
incluir ? naum intendi, naum estou querendo incluir nada eu disse que quando eu logo me aparece a tabela que eu chamei + a tela de index Imagem Postada é isso quie eu naum quero q aconteça, deveria só mostar a tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você colocou "include('index.php')" é porque incluiu um arquivo.

 

Não intendi direito o que você quer que apareça. Se quer uma tabela com usuario e senha logados somente, deve retirar o código da tela de login da index e coloca-la em um arquivo formulario.php e adicionar as linha em vermelho no codigo que lhe dei anteriormente que funcionará:

 

 

  Citar

<? if($acao == "logado") {

$con = mssql_connect ("192.168.1.3:1433","Rodrigo","123")

or die ("Conexao com o Servidor não esta OK!!");

 

mssql_select_db ("TestePHP")

or die ("Banco de Dados naum encontrado");

 

$SQL = "SELECT * FROM Usuario";

$busca = mssql_query($SQL,$con);

if( mssql_num_rows($busca) != 1)

{

echo "nao ha ninguem com este nome";

}

else

{

echo "<table border=1>";

while ($r = mssql_fetch_array($busca)) {

$user = $r[usuario];

$senha = $r[senha];

echo "<tr><td>$user</td><td>$senha</td></tr>";

}

echo "</table>";

}

 

mssql_close($con);

}

else {

  include('formulario.php');

}

?>

Se logar exibe a tabela...se não estiver logado exibe o formulario. Mas isto é inseguro. Esta verificação deve ser feita com a session, mas isto depois te explico. Primeiro vamos entender isto. Era isso????

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.