Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Joao emilioborges

PHP Comanda Eletronica PHP buscando "Usuario" no" Banco de Dados"

Recommended Posts

Galera estou quebrando a cabeça ..como faço para Fazer um sistema de login que ao invés de usar o input ..eu queria usa uma "Combobox" buscando  o usuario no "Banco de Dados"

<!DOCTYPE html>
<html lang="pt-br">
  <head>
    <meta charset="utf-8">	
	<title>Login na Comanda</title>
	<link rel="stylesheet" href="Css/EstiloLogin.css">	        
	</head>
	<body>
	  <form method="post" action="processa_login.php">

        <div style="width:100%; height:120px; overflow:hidden; margin: 0 auto; background-color:#333; margin-top:0px; border-radius:100px;">
        <div style="width:800px; height:90px; margin: 0 auto ;">   
        <p style="text-align:center; color:#CCC; font-family:'Lucida Sans Unicode'; font-size:40px;">Sistema de Comanda Eletrônica</p>
        </div>
        </div>
		
		
        <fieldset><legend >Mesas</legend>  
	    <input type="text" name="Mesa" placeholder="Nome da Mesa" required autofocus><br>
   		<input type="password" name="SenhaMesa" placeholder="Senha" required><br>
		
		<div>
		<input type="submit" style="background-color:#bfdade; width:200px; height:35px; font-size:15px; font-family:Lucida Sans Unicode; border:0; border-radius:50px;"  value="Entrar no Sistema">		
		</div>		
	
		</fieldset>
		
	</body>
</html>

 

Captura de Tela (3).png

adicionado 2 minutos depois

Tipo Issso

Captura de Tela (4).png

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

@Joao emilioborges "Combobox", no caso você diz um campo com elemento select?

 Basicamente basta trocar isto:

<input type="text" name="Mesa" placeholder="Nome da Mesa" required autofocus>

por isto:

<select name="mesa">
  <option value="mesa1">Mesa1</option> 
  <option value="mesa2">Mesa2</option> 
  <option value="mesa3">Mesa3</option> 
</select>  

No lugar do elemento <option>, você põe o PHP, para fazer uma consulta a sua tabela do banco de dados, com um laço de while você preenche o  <option>  com seu devido "value" para emitir ao processa_login.php

 

Este tipo de campo para login não é indicado, a menos que você permita que mais de um usuário use o mesmo login.

É 99.9% de certeza que você não verá um site com sistema de login assim.

Editado por DiF
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

     

<!DOCTYPE html>
    <html lang="pt-br">
    <head>
    <meta charset="utf-8">	
	<title>Login na Comanda</title>
	<link rel="stylesheet" href="Css/EstiloLogin.css">	        
	</head>
	<body>
	  
        <form name="Mesa" method="post" action="processa_login.php">
        <div style="width:100%; height:120px; overflow:hidden; margin: 0 auto; background-color:#333; margin-top:0px; border-radius:100px;">
        <div style="width:800px; height:90px; margin: 0 auto ;">   
        <p style="text-align:center; color:#CCC; font-family:'Lucida Sans Unicode'; font-size:40px;">Sistema de Comanda Eletrônica</p>
        </div>
        </div>
		
		
        <fieldset><legend >Mesas</legend>          
		<select name="Mesa" style="width:200px; height:35px; font-size:15px; font-family:Lucida Sans Unicode; border:0;" >
		<label style="color:#f2e915;">Selecione uma Mesa</label>
		
		 <?php 
         $Conexao = mysqli_connect("localhost","root","","comanda_eletronica");
		 $Select = "SELECT mesa FROM mesas";
		 $query = mysqli_query($Conexao, $Select); 
		 ?>
		 	 
		 <?php while($Mesas = mysqli_fetch_row($query)) { ?>
         <option value="<?php echo $Mesas['Mesa']; ?>"></option>
         <?php } ?> 
		 
		
		 </select><br><br>
		
		
   		<input type="password" name="SenhaMesa" placeholder="Senha" required><br>
		
		<div>
		<input type="submit" style="background-color:#bfdade; width:200px; height:35px; font-size:15px; font-family:Lucida Sans Unicode; border:0; border-radius:50px;"  value="Entrar no Sistema">		
		</div>		
	
		</fieldset>
		</form>
	</body>
</html>

 

Captura de Tela (5).png

Editado por Joao emilioborges

Compartilhar este post


Link para o post
Compartilhar em outros sites
<html lang="pt-br">
  <head>
    <meta charset="utf-8">
	<title>Comanda</title>
	<link rel="stylesheet" href="css/EstiloLogin.css">
	</head>
</html>

<?php
require_once 'conecta_login.php';
$Mesa= $_POST['Mesa'];
$SenhaMesa = $_POST['SenhaMesa'];

$sql = "select Mesa, SenhaMesa from mesas where Mesa = '$Mesa' and SenhaMesa = '$SenhaMesa'";
$query = mysqli_query($link, $sql);
$linhas = mysqli_affected_rows($link);

 if($linhas > 0){
	 session_start();
	 $_SESSION['Mesa'] = $Mesa;
 while($exibirNome = mysqli_fetch_array($query)){
 $Mesa =      $exibirNome[0];
 $SenhaMesa = $exibirNome[1];
 
 
 }
 $_SESSION['Mesa'] = $Mesa;
 header ("Location:sistema.php");
 }else{
	 print "Dados Incorretos!<br>";
	 print "<a href='index.php'>Voltar</a>"; 
  }
?>

Esse é o script para Processar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Joao emilioborges Vejo algumas coisas que podem estar dando o problema.

 

Vamos a código do post #04:

esta parte:

 

 <?php 
         $Conexao = mysqli_connect("localhost","root","","comanda_eletronica");
		 $Select = "SELECT mesa FROM mesas";
		 $query = mysqli_query($Conexao, $Select); 
		 ?>
		 	 
		 <?php while($Mesas = mysqli_fetch_row($query)) { ?>
         <option value="<?php echo $Mesas['Mesa']; ?>"></option>
         <?php } ?> 

Você esqueceu de colocar o valor dos elementos <option>. No caso, colocou somente o value.

 

Não que seja ruim o fetch_row, mas eu aconselho a aprender e se acostumar a usar o fetch_object, para tratar os dados como objetos!

 

Desta forma:

<select name="mesas"> 
<?php 
         $Conexao = mysqli_connect("localhost","root","","comanda_eletronica");
		 $Select = "SELECT mesa FROM mesas";
		 $query = mysqli_query($Conexao, $Select); 
 	 	 
	     while($Mesas = mysqli_fetch_object($query)) : 
           echo "<option value='$Mesas->Mesa'>$Mesas->Mesa</option>";
         endwhile; 
?> 
</select>  

Basicamente, as mudanças que eu fiz foi: retirar os vários blocos de abertura do php, puxar do banco de dados o nome da mesa e mostrar como um objeto.

 

 

Agora, o código do post #05.

Como  o arquivo php é apenas de autenticação, você pode eliminar as tags de marcação do HTML. Além disso, quando se lida com sessions, é necessário que a sessão seja iniciada antes de tudo.  Deve ser a primeira coisa a ser declarada.

//Inicia a sessão
session_start();
	
    //Recebe os dados vindo do formulário
	$Mesa      = $_POST['Mesa'];
	$SenhaMesa = $_POST['SenhaMesa'];
	
	//Testa se nenhum campo ficou vazio
	if (empty($Mesa) or empty($SenhaMesa)) :
       echo "<script>
          alert('Preencha todos os campos');
          history.go(-1);
          </script>";
       exit;    
    endif;
	
	//inclui a conexão. Repare que no seu código usa $link, mas no outro de cima você usa $conecta
	include 'conexao.php';
	
    //Instrução SQL que consulta a Mesa, senha e compara com os campos no banco de dados
	$sql = "SELECT Mesa, SenhaMesa FROM mesas WHERE Mesa ='$Mesa' AND SenhaMesa = '$SenhaMesa' ";
	
    //Armazena em uma variável com a função mysqli_query(), que leva como parâmetro o $sql
    $dados = mysqli_query($conecta, $sql);

    //Pega o número de linhas encontradas
	$num = mysqli_num_rows($dados);
	
    //Se igual a zero, ou seja, não encontrou nada, mostra mensagem de erro e volta para tela anterior 
	if ($num == 0):
		echo "<script>
		         alert('Mesa ou senha Incorreta');
			 history.go(-1);
		      </script>";
		exit;
	else :
 
        //Recebe o fetch_object()  
		$linha = mysqli_fetch_object($dados);

        //Armazena o nome/ numero da mesa
		$codMesa = $linha->Mesa;
		
        //Coloca na Sessão o valor do campo Mesa 
		$_SESSION["Mesa"] = $codMesa;
	
        //Redireciona para o arquivo sistema.php
		header ("Location: sistema.php");
		
	endif;
	//Fecha a conexão
 	mysqli_close($conecta);

 

Agora para tudo funcionar, o macete é colocar um código php no inicio do arquivo sistema.php que testa a sessão, se não faz o usuário voltar para a tela de login.

 

O código é este:

<?php
//Abre a sessão
session_start();

//Define um cookie de autenticação
setcookie("ck_authorized", "true", 0, "/");

//testa se a sessão NÃO está vazia com !isset(), lembre que "null" é um valor. por isso testar com isset
if(!isset($_SESSION["Mesa"])):

    //Redireiona para a página de login 
    header("location: index.php");
else:
    //armazena a sessão.
    $Mesa = $_SESSION["Mesa"];
endif;    
?>

Sim, só esse fragmento de código no inicio testa a sessão!

Com isso você por exemplo exibir na tela de sistema.php o nome da mesa com  

 

<div class="identificacao">
  <p>Você está logado na <?php echo $Mesa; ?></p>
  <a href="logout.php">Sair</a>
</div>  

O arquivo logout.php seria assim:

<?php
    //inicia a sessão
	session_start();

	if(isset($_SESSION['Mesa'])):
        // Como você possui um cookie relacionado com o login deve ser removido
        session_destroy();
    
        //Redireciona para a página de login
        header("location: index.php");
 
        //para a execução do script php
        exit;
    endif;
?>	

Basicamente aí está o sistema de login e logout.

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 06/04/2018 às 01:40, DiF disse:

@Joao emilioborges Vejo algumas coisas que podem estar dando o problema.

 

Vamos a código do post #04:

esta parte:

 


 <?php 
         $Conexao = mysqli_connect("localhost","root","","comanda_eletronica");
		 $Select = "SELECT mesa FROM mesas";
		 $query = mysqli_query($Conexao, $Select); 
		 ?>
		 	 
		 <?php while($Mesas = mysqli_fetch_row($query)) { ?>
         <option value="<?php echo $Mesas['Mesa']; ?>"></option>
         <?php } ?> 

Você esqueceu de colocar o valor dos elementos <option>. No caso, colocou somente o value.

 

Não que seja ruim o fetch_row, mas eu aconselho a aprender e se acostumar a usar o fetch_object, para tratar os dados como objetos!

 

Desta forma:


<select name="mesas"> 
<?php 
         $Conexao = mysqli_connect("localhost","root","","comanda_eletronica");
		 $Select = "SELECT mesa FROM mesas";
		 $query = mysqli_query($Conexao, $Select); 
 	 	 
	     while($Mesas = mysqli_fetch_object($query)) : 
           echo "<option value='$Mesas->Mesa'>$Mesas->Mesa</option>";
         endwhile; 
?> 
</select>  

Basicamente, as mudanças que eu fiz foi: retirar os vários blocos de abertura do php, puxar do banco de dados o nome da mesa e mostrar como um objeto.

 

 

Agora, o código do post #05.

Como  o arquivo php é apenas de autenticação, você pode eliminar as tags de marcação do HTML. Além disso, quando se lida com sessions, é necessário que a sessão seja iniciada antes de tudo.  Deve ser a primeira coisa a ser declarada.


//Inicia a sessão
session_start();
	
    //Recebe os dados vindo do formulário
	$Mesa      = $_POST['Mesa'];
	$SenhaMesa = $_POST['SenhaMesa'];
	
	//Testa se nenhum campo ficou vazio
	if (empty($Mesa) or empty($SenhaMesa)) :
       echo "<script>
          alert('Preencha todos os campos');
          history.go(-1);
          </script>";
       exit;    
    endif;
	
	//inclui a conexão. Repare que no seu código usa $link, mas no outro de cima você usa $conecta
	include 'conexao.php';
	
    //Instrução SQL que consulta a Mesa, senha e compara com os campos no banco de dados
	$sql = "SELECT Mesa, SenhaMesa FROM mesas WHERE Mesa ='$Mesa' AND SenhaMesa = '$SenhaMesa' ";
	
    //Armazena em uma variável com a função mysqli_query(), que leva como parâmetro o $sql
    $dados = mysqli_query($conecta, $sql);

    //Pega o número de linhas encontradas
	$num = mysqli_num_rows($dados);
	
    //Se igual a zero, ou seja, não encontrou nada, mostra mensagem de erro e volta para tela anterior 
	if ($num == 0):
		echo "<script>
		         alert('Mesa ou senha Incorreta');
			 history.go(-1);
		      </script>";
		exit;
	else :
 
        //Recebe o fetch_object()  
		$linha = mysqli_fetch_object($dados);

        //Armazena o nome/ numero da mesa
		$codMesa = $linha->Mesa;
		
        //Coloca na Sessão o valor do campo Mesa 
		$_SESSION["Mesa"] = $codMesa;
	
        //Redireciona para o arquivo sistema.php
		header ("Location: sistema.php");
		
	endif;
	//Fecha a conexão
 	mysqli_close($conecta);

 

Agora para tudo funcionar, o macete é colocar um código php no inicio do arquivo sistema.php que testa a sessão, se não faz o usuário voltar para a tela de login.

 

O código é este:


<?php
//Abre a sessão
session_start();

//Define um cookie de autenticação
setcookie("ck_authorized", "true", 0, "/");

//testa se a sessão NÃO está vazia com !isset(), lembre que "null" é um valor. por isso testar com isset
if(!isset($_SESSION["Mesa"])):

    //Redireiona para a página de login 
    header("location: index.php");
else:
    //armazena a sessão.
    $Mesa = $_SESSION["Mesa"];
endif;    
?>

Sim, só esse fragmento de código no inicio testa a sessão!

Com isso você por exemplo exibir na tela de sistema.php o nome da mesa com  

 


<div class="identificacao">
  <p>Você está logado na <?php echo $Mesa; ?></p>
  <a href="logout.php">Sair</a>
</div>  

O arquivo logout.php seria assim:


<?php
    //inicia a sessão
	session_start();

	if(isset($_SESSION['Mesa'])):
        // Como você possui um cookie relacionado com o login deve ser removido
        session_destroy();
    
        //Redireciona para a página de login
        header("location: index.php");
 
        //para a execução do script php
        exit;
    endif;
?>	

Basicamente aí está o sistema de login e logout.

 

 

Deu super certo aqui Dif ..a unica coisa que tive que alterar foi a variavel $conecta por $link prque no meu arquivo de conexao eu usei ela..muito obrigado pelas dicas 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera mais uma duvida !!

não estou conseguindo fazer o meu projeto linkar na pagina inicial(index.php) ja criei um botao no Carrinho.php linkando mais devido no meu sistema eu por meus links dentro dessa DIV ..tudo que eu linko fica dentro dela ..alguem pode me ajudar??

 

Segue abaixo a imagem do Projeto..

<!--buttons-->
<div style="width:750px; height:450px; overflow:hidden; margin: 0 auto; position:relative; margin-top:50px;">

	<a href="pizza.php" target="main"><div id="btn1" style="float:left"> <p>Pizzas </p> </div> </a>
    <a href="lanche.php" target="main"><div id="btn2" style="float:left"> <p> Lanches</p> </div> </a>
    <a href="porcao.php" target="main"><div id="btn3" style="float:left"> <p>Porções </p> </div> </a>
    <a href="sobremesa.php" target="main"><div id="btn4" style="float:left"> <p> Sobremesas</p> </div> </a>
    <a href="bebidas.php" target="main"><div id="btn5" style="float:left"> <p> Refrigerantes e Sucos </p> </div> </a>
    <a href="alcoolicas.php" target="main"><div id="btn6" style="float:left"> <p> Bebidas Alcoólicas</p> </div> </a>
    <div id="content" style="position:absolute"> <iframe name="main" frameborder=0 height=450 width=750></iframe>  </div>    
</div>

 

sistema.php.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Joao emilioborges Não sei bem como você está fazendo isso.. em cada página.. seria interessante postar pelo menos o código de um dos links.

Por exemplo o pizza.php

 

Além disso, você definiu o target..  que desconheço.  

Para o carrinho.php, lembre de usar sessions para ter um vetor de produtos.

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php  
    require_once "Funcoes/product.php";
	$pdoConnection = require_once "conecta_carrinho.php";
	$products = getProducts($pdoConnection);
?>

<!DOCTYPE html>
<html lang="pt-br">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1">
	    <title>Pizzas</title>
		<link href="Css/bootstrap.min.css" rel="stylesheet">
		<style type="text/css">

         #content{
	     overflow:auto;
	     padding:10px;
	     text-align:justify;
	     color:#FFF;
         }

        </style>
         	</head>
	
	                   <body>                	 		 
			           <div id="content" style="width: 730px; height: 430px !important;">
                       <table width="100%" border="0" cellpadding="0">
                                	 		 
			           <br>
					   
					   
					  <?php foreach($products as $product):?> 
				        <?php if ($product['categoria'] == 'Pizzas'):?>
						  
			            <div class="col-sm-6 col-md-4">
							<div class="thumbnail">							    
							    <div class="caption text-center">						
								
								    <img src="imagens/<?php echo $product['imagens']; ?>" alt="<?php echo $product['nome']; ?>">								
								   						   
								    <h3><?php echo $product['nome']?></h3>
							        <h4>
							  	    R$ <?php echo number_format($product['preco'], 2, ',', '.')?>
							        </h4>
									
							<p><a href="carrinho.php?acao=add&id=<?php echo $product['id']?>" class="btn btn-primary" role="button">Comprar</a> </p>
							 						  
							</div>
						</div>						
					</div>	
				         
						 <?php endif; ?>
					     <?php endforeach;?>			
        	
	</table>
   </div>
</body>
</html>

O código do pizza.php 

Editado por Joao emilioborges

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo aqui ..no botao que finaliza o pedido coloquei o target="_top" e encerrou meu projeto direitinho ..obrigado pela compreensao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera tenho mais uma dúvida ..gostaria da ajuda de vcs 

Estou Enviando esses produtos ao carrinho mais queria enviar esses produtos ao mesmo tempo ao carrinho e ao Banco de Dados ..tem como ?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×