Ir para conteúdo

Arquivado

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

Vales & Dores

mesmo sem usuario e senha o acesso e permitido

Recommended Posts

<?php
   include('conectar_bd.php');

$user = $_POST['login'];
$senha = $_POST['senha'];

$consulta = mysql_query("SELECT * FROM cadastro WHERE login='{$_POST['login']}' AND senha='{$_POST['senha']}'");
$num_rows = mysql_num_rows($consulta);


               if($num_rows == 1 AND session_start()){

                 $_SESSION['login'] = $_POST['login'];
                 $_SESSION['senha'] = $_POST['senha'];
                 header('location:defalt.php');

               }
               if($num_rows != 1){
               echo 'Acesso negado';
                   }
?>

 

ai pessoal se eu colocar usuario e senha correto a pagina acessa.

se eu colocar usuario e senha errados nao acessa da erro Acesso negado!!

 

mas se eu deixar sem usuario e senha ele entra do mesmo geito.

 

eu to usando session mas estou destruindo com esse comando:

 

<?php



session_start();

  if(!isset($_SESSION['login']) AND !isset($_SESSION['senha']))
  {
  header('location:sub_index.php');

  }

 ?>

 

e ai gente vamos la como fazer uma verificação no $_POST['login'] e $_POST['senha'] e se nao tiver nada dentro dele negar acesso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 pontos interessantes:

  1. Verifique com a função empty se as variáveis vinda por $_POST estão vazias, se sim você dá um "die()" pedindo pra digitar os dados
  2. O seu código está vulnerável a SQL Injection

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai gente vamos fazer um seguinte como e que um sisteminha com session que diz assim:

 

<?php

 

session_start();

if(!isset($_SESSION['login']) AND !isset($_SESSION['senha']))

{

header('location:sub_index.php');

 

}

?>

 

que é chamada dentro de quase todas paginas includer(session.php);

deixa entrar no sistema sem ter nada dentro do usuário e senha ?

 

eu ja fiz o debug e a session quando entra sem nada nos input nao existe mesmo.

nao era por sua vez voltar a pagina sub_index.php?

poxa se !isset volta mas sera que pode melhorar se fizes com emply?

 

Aparentemente resolvido rssss

<?php

 

 

 

session_start();

 

if(empty($_SESSION['login']) AND empty($_SESSION['senha']))

{

header('location:sub_index.php');

 

}

 

?>

 

Gente boa que esta começando se voce fizer um sistema de login e senha e quando voce clica em entrar mas nao tem nada no login e na senha e mesmo assim entrar sugiro a session a cima para resolver isso.

 

e a segurança contra acesso via URL (barra de endereço) tambem esta funcionando.

 

Você que ta desanimando você que esta achando php impossível de aprender continue amigo e pergunte para mim e para os amigos do forun por que e aqui que eu to me formando programador com os amigos que me ajudam, obrigado a todos voces que da uma força pra esse burro aqui muito obrigado e continue ajudando, pois em breve estarei sentando em meu trono de conhecimento atualizado com a quela visão de que eu posso tudo rsss e vou ajudar também do mesmo jeito que vocês me ajudam vamos la php

 

2 pontos interessantes:

  1. Verifique com a função empty se as variáveis vinda por $_POST estão vazias, se sim você dá um "die()" pedindo pra digitar os dados
  2. O seu código está vulnerável a SQL Injection

Obrigado amigo pela sua ajuda com voce amigo consegui aprender para quer serve esse empty muito bom obrigado mesmo

 

se eu mudar o conteúdo de name='?' no input eu mudo o gatilho dos meus POST?

 

Exe:

Por esse voce acessa depois do cadastro.

<form action='unir_arquivo.php' method='POST'>

 

Nome: <input type='text' name='login'><br>

senha: <input type='password' name='senha'><br>

<br>

<BR>

<input type='submit' value='Alterar' name="acao">

 

</form>

FIM

 

e o outro que voce cadastra o cliente:

 

<form action='unir_arquivo.php' method='POST'>

 

Login: <input type='text' name='login'><br>

senha: <input type='' name='senha'><br>

Email Civel: <input type='password' name='senha'><br>

nome: <input type='password' name='senha'><br>

 

<BR>

<input type='submit' value='Alterar' name="acao">

 

</form>

 

FIM

 

Repare que os dois passa pelo mesmo action sendo assim eles dividem o POST [login] e [senha]

se eu mudar no input e mudo na programação e consigo fazer o desvio ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara onde você viu if com AND

 

seguinte nem li todo

 

você ta fazendo assim

 

if($valor AND $valor2)

 

quanto na verdade você quer

 

if($valor && $valor) //&& = and e || = or

 

outra coisa... faça empty dos seus post e depois use o mysql_real_escape_string($_POST['seuPost']); para evitar injetion

 

e boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara onde você viu if com AND

 

seguinte nem li todo

 

você ta fazendo assim

 

if($valor AND $valor2)

 

quanto na verdade você quer

 

if($valor && $valor) //&& = and e || = or

 

outra coisa... faça empty dos seus post e depois use o mysql_real_escape_string($_POST['seuPost']); para evitar injetion

 

e boa sorte

 

Muito obrigado pelo seu conselho nao tinha pensado nisso, sobre empty nos post boa ideia vou fazer.

e sobre o AND e que na hora eu queria que passa-se para o session_start mas nao estava passando ai eu coloquei o AND ganbiarra de iniciante mas funciono, sobre o que voce falo de colocar && nao e a mesma coisa ?

 

Se nao for me ajuda esclarecendo a duvida de um iniciante

 

eu tinha um arquivo para login e senha.

e um que tratava os cadastros do site, eu quis reunir todas essas tarefas em um arquivo só, mas no meu cadastro eu tenho cadastro de login e senha ($_POST['login'] e $_POST['senha'])

e por causa disso eu posso entrar no sistema se digitar a login e senha no campo de login e senha do cadastro ele aceita e entra.

 

quero saber se eu trocar o gatilho ['login'] e ['senha'] por ['txt-login']['txt-senha'] eu mudo o acesso via cadastro?

 

Ta tudo ai como eu sou iniciante estou fazendo uma senhora bagunça mas esta funcionando.

se eu tiver feito alguma besteira por favor me ajudem (-:

Obrigado a todos voces

 

<?php

include('conectar_bd.php');

 

$user = $_POST['login'];

$senha = $_POST['senha'];

 

$verifica_acao = $_POST["acao"];

 

 

$consulta = mysql_query("SELECT * FROM cadastro WHERE login='{$_POST['login']}' AND senha='{$_POST['senha']}'");

$num_rows = mysql_num_rows($consulta);

 

if(!$user || !$senha){

$seguranca_senha = mysql_real_escape_string($_POST['senha']);

$seguranca_login = mysql_real_escape_string($_POST['login']);

}

 

if(empty($user))

{

die ('Escreva algo no login e senha');

}

 

if(empty($senha))

{

die ('Escreva algo no login e senha');

}

 

if($verifica_acao = "login")

{

$login_digitada = $_POST["login"];

$senha_digitada = $_POST["senha"];

 

 

 

$result = mysql_query("SELECT * FROM cadastro WHERE login='{$_POST['login']}' AND senha='{$_POST['senha']}'");

$num_rows = mysql_num_rows($result);

 

 

 

if($num_rows == 1 AND session_start())

{

 

$_SESSION['login'] = $_POST['login'];

$_SESSION['senha'] = $_POST['senha'];

header('location:defalt.php');

}

 

else

{

echo '

<BR>

<BR>

<BR>

<BR>

<BR>

<BR>

<BR>

<BR>

<BR>

<BR>

<center><h1>Acesso negado!</h1></center>';

echo'<center><a href="logof.php">voltar</a></center>';

}

} $sair = exit;

 

 

 

 

 

 

 

if($verifica_acao = "registrar")

{

$login = $_POST['login'];

$senha = $_POST['senha'];

$email = $_POST['email'];

$nome = $_POST['nome'];

echo $email;

$query = mysql_query("INSERT INTO cadastro VALUE('','$login','$senha','$email','$nome')");

 

if($query == 1)

{

 

echo'<center><font color="#000000" size="6">CADASTRO EFETUADO COM SUCESSO!!!<p>

<a href="sub_index.php">Voltar</a></center>';

 

}

else

{

echo'<center><h1>

<br>

<br>

<br>

<br>

<br>

<br>

<br>

Seu E-mail já esta cadastrado<br><a href="logof.php">Voltar</a> <h1/></center>';

 

}

 

 

}$sair

 

 

 

?>

 

2 pontos interessantes:

  1. Verifique com a função empty se as variáveis vinda por $_POST estão vazias, se sim você dá um "die()" pedindo pra digitar os dados
  2. O seu código está vulnerável a SQL Injection

 

kara que Sa#%$##o eu não tó conseguindo ver as fotos que estão em uma pasta e os Path no BD

o problema esta no while array.

 

e agora quem podera me ajudar???

 

 

<?php

//Autor Fabyo Guimaraes

 

//conecta no banco

include('conectar_bd.php');

 

//seleciona a tabela

 

 

$query = mysql_query("SELECT * FROM foto");

 

while($row = mysql_fetch_array($query))

{

 

$fotos = $row['fotos'];

 

echo "<img src=\"$foto\"> <br><br>";

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vales, antes de colocar o seu código aqui no fórum, faça isso:

use o "<>" que ta ai em cima no editor

 

Pela aamorrrrrr de Deus u.u

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara onde você viu if com AND

 

seguinte nem li todo

 

você ta fazendo assim

 

if($valor AND $valor2)

 

quanto na verdade você quer

 

if($valor && $valor) //&& = and e || = or

 

outra coisa... faça empty dos seus post e depois use o mysql_real_escape_string($_POST['seuPost']); para evitar injetion

 

e boa sorte

 

Mas AND e OR também funcionam. O detalhe é que possuem precedência menor que && e ||.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vales, antes de colocar o seu código aqui no fórum, faça isso:

use o "<>" que ta ai em cima no editor

 

Pela aamorrrrrr de Deus u.u

 

 

como assim lucar '<>' o que isso faz ?

tenho que colocar o codigo dentro das chavez

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim lucar '<>' o que isso faz ?

tenho que colocar o codigo dentro das chavez

 

Ele falou dentro do formulário da mensagem do fórum. Lá em cima, na mesma linha que o rostinho :), têm um ícone "<>".

Você clicando nele vai aparecer duas tags code. Você deve inserir seus códigos entre elas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele falou dentro do formulário da mensagem do fórum. Lá em cima, na mesma linha que o rostinho :), têm um ícone "<>".

Você clicando nele vai aparecer duas tags code. Você deve inserir seus códigos entre elas.

 

 

Hoo Roberto PC obrigado vou usar sim.

 

Mas pessoal vamos focar.

 

Resolvi colocar todo o tratamento de autenticar e insert do cadastro em um arquivo só.

 

Só que neste caso estou tendo problema com os posts, digo isso por que se eu digitar user e senha no input do campo usuario e senha do cadastro ele entra no sistema, o método post esta compartilhando informação com o post do cadastro.

 

tava pensando em alterar o seguinte dados

 

no post login e senha

$_POST['login'];

$_POST['senha'];

 

OBS esse vai ser o de acesso ao sistema (Usuario e senha)

 

$_POST['txt-login'];

$_POST['txt-senha'];

$_POST['txt-email'];

$_POST['txt-nome'];

 

e claro que o verdadeiro nao esta com esse txt- esse é somente a forma que estou pensando em fazer.

claro que tenho que alterar o nome do FROM do site o name de input.

 

mas o caso é que eu fiz isso e nao funciono, o que os amigos tem a dizer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugestão.

Separe toda funcionalidade do seu programa em partes menores, deixe o login em um arquivo, o cadastro em outro e assim por diante. Dessa maneira o seu código fica mais legível e funcional.

Em relação ao formulário, se você não setar um action, ele envia para o próprio arquivo. Para dividir as partes, faça uma verificação de em qual página se encontra por meio de flags.

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.