Jump to content
Fórum Script Brasil
  • 0

Me ajudem! Sistema de login


Baldit

Question

Olá, tenho um sistema de login que tem o formulário que faz POST para o arquivo validar.php

Eis o arquivo validar.php:

<?php
session_start();
$usuario = "admin";
$senha = "12345";

if($_POST['usuario'] == $usuario && $_POST['senha'] == $senha) {
        $_SESSION['usuario'] = $_POST['usuario'];
        $_SESSION['senha'] = $_POST['senha'];
        header("Location: pasta-do-cliente");
}else{
        header("Location: erro.php");
}
?>

Se o usuário for ADMIN e a senha for 12345 ele manda pra "PASTA-DO-CLIENTE" se não, ele manda para o arquivo ERRO.php

Pois bem, quero montar uma página inicial onde vários clientes vão ter acesso, ou seja,

Na INDEX.php terá o formulário para login:

Tenho dois clientes, o CLIENTE João e o Cliente Pedro. Ambos tem um sistema instalado em minha hospedagem.

Quero: Usuário: JOão Senha: João123 mande para a pasta /joao/

e o usuário: Pedro Senha: Pedro123 mande para apasta /pedro/

Ambos dentro do meu site

www.meusite.com.br/index (LOGIN)

www.meusite.com.br/joao (sistema do joao)

www.meusite.com.br/pedro (sistema do pedro)

Podem me ajudar?

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Ah sim, lendo melhor a sua redação deu para perceber que você quer apenas redirecionar o usuário para a pasta com o mesmo nome, neste caso você primeiro vai ter que remover os caracteres especiais (ê, ç , etc...), pode usar str_replace, após isto é só mandar no Location que você já tem.

Link to comment
Share on other sites

  • 0
Ah sim, lendo melhor a sua redação deu para perceber que você quer apenas redirecionar o usuário para a pasta com o mesmo nome, neste caso você primeiro vai ter que remover os caracteres especiais (ê, ç , etc...), pode usar str_replace, após isto é só mandar no Location que você já tem.

Você ainda não entendeu :P

Aquele VALIDAR.php quando o usuário e a senha forem a que está na linha 3 e 4 ele acessa a PASTA-DO-CLIENTE.

Ai quero criar MAIS desses, pra ter MAIS USUARIOS e MAIS SENHAS. Ai cada usuário que logar terá sua pasta distinta.

Por exemplo:

Cliente 1:

Casa de Ração

Usuário: Casaderacao

Senha: 1234

Manda para a pasta: www.meusite.com.br/casaderacao

Cliente 2:

Açougue

Usuário: acougue

Senha: 1234567

Manda para a pasta: www.meusite.com.br/acougue

Entendeu?

Link to comment
Share on other sites

  • 0

Não sei se entendi bem teu problema, mas tenho algumas observações.

1) Se o nome do diretório for o mesmo do login, podes direcionar direto para "$_POST['usuario']/index.php" - e se não for recomendo utilizar um banco de dados ou no mínimo arquivo de configuração para obter dinamicamente o diretório do usuário. Fazer elseifs pode ser massante e difícil de manter se o número de usuários puder crescer no futuro.

2) Não tenho certeza de que tua sessão vai funcionar. Não tenho contato com web há anos, mas tenho uma leve suspeita de que teu header de "Location" sendo enviado os cookies de sessão não o serão a tempo da forma como ocorre no código. Voltando ao caso 1, se o usuário for o mesmo do diretório, no teu lugar eu esqueceria tudo isso e faria no próprio formulário um javascript que muda o action do formulário direto para o index do usuário propriamente dito. (se é que eu entendi bem o que queres fazer).

E lembre-se do principal: eu sou um verdadeiro "enferrujado" em matéria de programação, não tenho contato há anos, então posso ter dito muita besteira.

Link to comment
Share on other sites

  • 0

as sessions só vão funcionar nas proximas paginas.. não funcionam na mesma que foram criadas

sendo o login o mesmo nome da pasta pode fazer algo como:

<?php

session_start();

$usuario = "admin";

$senha = "12345";

if($_POST['usuario'] == $usuario && $_POST['senha'] == $senha) {

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

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

$LocalCliente = $_POST['usuario']."/index.php";

header("Location: $LocalCliente");

}else{

header("Location: erro.php");

}

?>

Edited by jissa
Link to comment
Share on other sites

  • 0

Amigo,

quando criar o usuário no banco de dados, coloque um campo para colocar o nome da pasta, toda vez que a pessoa logar você busca pelo nome de usuário o nome da pasta deste usuário, grava ele em uma variável da sessão que abriu e depois é só redirecionar com a url comum a todos + o nome da pasta.

Se não souber como fazer isso na prática me diga que eu posto aqui o código.

Abraços!

Link to comment
Share on other sites

  • 0
as sessions só vão funcionar nas proximas paginas.. não funcionam na mesma que foram criadas

Isso ocorre com os cookies (por motivos óbvios), mas com sessões não...

<?php
session_start();

$teste = 'alguma coisa';

$_SESSION['x'] = $teste;

print_r($_SESSION);

?>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...