Jump to content
ricardonews

logar no banco com ajax e jquery

Recommended Posts

 Olá pessoal, fiz 2 formularios  de login em jquery e ajax, um eu vi na internert o modelo então fiz umas adaptações e funcionou com meu banco de dados. porem o outro que fiz baseado nele não funcionou. vou postar aqui pra voces o funcionando e o não funcionando, alguém pode me dar uma ajuda?, dizer que erro é esse? ele simplesmente não loga e não aparece erros no console.

<!doctype html>
<html>
<?php
    require_once"config.php";
?>
    <head>
        <title>APRENDIZ DE JS</title>
        <link href="style.css" rel="stylesheet" type="text/css">

        <script src="jquery-3.2.1.min.js" type="text/javascript"></script>

        <script type="text/javascript">
            $(document).ready(function(){

                $("#but_submit").click(function(){
                    var username = $("#meu_nome").val().trim();
                    var password = $("#minha_senha").val().trim();

                    if( username != "" && password != "" ){
                        $.ajax({
                            url:'pesquisar.php',
                            type:'post',
                            data:{username:username,password:password},
                            success:function(response){
                                var msg = "";
                                if(response == 1){
                                    window.location = "home.php";
                                }else{
                                    msg = "Invalid username and password!";
                                }
                                $("#message").html(msg);
                            }
                        });
                    }
                });

            });
        </script>
    </head>
    <body>
        
        <div class="container">

            <div id="div_login">
                <h1>Login</h1>
                <div id="message"></div>
                <div>
                    <input type="text" class="textbox" id="meu_nome" name="meu_nome" placeholder="Username" />
                </div>
                <div>
                    <input type="password" class="textbox" id="minha_senha" name="minha_senha" placeholder="Password"/>
                </div>
                <div>
                    <input type="button" value="logar" name="but_submit" id="but_submit" />
                </div>
            </div>

        </div>
    </body>
</html>

/* Container */
.container{
    width:40%;
    margin:0 auto;
}

/* Login */
#div_login{
    border: 1px solid gray;
    border-radius: 3px;
    width: 470px;
    height: 270px;
    box-shadow: 0px 2px 2px 0px  gray;
    margin: 0 auto;
}

#div_login h1{
    margin-top: 0px;
    font-weight: normal;
    padding: 10px;
    background-color: cornflowerblue;
    color: white;
    font-family: sans-serif;
}

#div_login div{
    clear: both;
    margin-top: 10px;
    padding: 5px;
}

#div_login .textbox{
    width: 96%;
    padding: 7px;
}

#div_login input[type=submit]{
    padding: 7px;
    width: 100px;
    background-color: lightseagreen;
    border: 0px;
    color: white;
}

#message{
    width:100%;
    text-align:center;
    color:red;
}
/* media */
@media screen and (max-width:720px){
    .container{
        width: 100%;
    }
    #div_login{
        width: 99%;
    }
}

<?php
    require_once "config.php";
 // AQUI É O PESQUISAR PHP
$uname = mysqli_real_escape_string($con,$_POST['username']);
$password = mysqli_real_escape_string($con,$_POST['password']);


if ($uname != "" && $password != ""){

    $sql_query = "SELECT count(*) as cntUser FROM usuarios WHERE username='".$uname."' and password='".$password."'";
    $result = mysqli_query($con,$sql_query);
    $row = mysqli_fetch_array($result);

    $count = $row['cntUser'];

    if($count > 0){
        $_SESSION['uname'] = $uname;
        echo 1;
    }else{
        echo 0;
    }

}
<?php
    require_once "config.php";
    // AQUI É A HOME.PHP
// Check user login or not
if(!isset($_SESSION['uname'])){
    header('Location: index.php');
}

// logout
if(isset($_POST['but_logout'])){
    session_destroy();
    header('Location: index.php');
}
?>
<!doctype html>
<html>
    <head>
    <title>SEJA BEM VINDO!</title>
    </head>
    <body>
        <h1>PÁGINA INICIAL</h1>
        <form method='post' action="">
            <input type="submit" value="SAIR" name="but_logout">
        </form>
    </body>
</html>
<?php
// ESSE AQUI É A CONFIG.PHP
session_start();

$host = "localhost"; /* Host name */
$user = "root"; /* User */
$password = ""; /* Password */
$dbname = "login2"; /* Database name */

$con = mysqli_connect($host, $user, $password,$dbname);
// Check connection
if (!$con) {
  die("Connection failed: " . mysqli_connect_error());
}

Então pessoal, até aqui funciona normal .

agora a linha abaixo é oque não funciona e eu vou postar só a index e o css porque repete o de cima.

se alguém poder me ajudar eu fico grato. desde já muito obrigado



<html>
<?php
    require_once"config.php";
?>
	<head>
		<title>Formulario de login </title>
		<link href="css/style.css" rel="stylesheet" type="text/css" />
        <script src="jquery-3.2.1.min.js" type="text/javascript"></script>

        <script type="text/javascript">
            $(document).ready(function(){

                $("#but_submit").click(function(){
                    var username = $("#meu_nome").val().trim();
                    var password = $("#minha_senha").val().trim();

                    if( username != "" && password != "" ){
                        $.ajax({
                            url:'pesquisar.php',
                            type:'post',
                            data:{username:username,password:password},
                            success:function(response){
                                var msg = "";
                                if(response == 1){
                                    window.location = "home.php";
                                }else{
                                    msg = "Invalid username and password!";
                                }
                                $("#message").html(msg);
                            }
                        });
                    }
                });

            });
        </script>
		
	</head>

	<body>
		<form id="formulario" method="post">
			<fieldset>
				<h2>Configuracoes da conta</h2>
				<h3>Area de login </h3>
				<input type="text"  id="meu_nome"name="meu_nome" placeholder="username" />
				<input type="password" id="minha_senha " name="minha_senha" placeholder="digite sua senha" />
				<input type="submit" class="next acao" value="Logar" />
			</fieldset>

	</body>
</html>

agora é o css

*{margin:0; padding:0;}
html{
	height:100%;
	background: linear-gradient(rgba(38, 128, 101, 0.9), rgba(52, 177, 140, 0.9));
}
.erros, .ok
{
	width:390px;
	padding:5px;
	background:rgba(238, 249, 113, 0.9);
	margin: 20px auto 0 auto;
	border: 1px solid rgba(222,239,10,0.9);
	border-radius: 4px;
	color: #333;

}
.ok{background: rgba(155,222,143,0.9);border-color: rgba(68, 171, 50, 0.9);color:white;}
body{
	font-family: "Trebuchet MS", tahoma, arial;
}

#formulario{
	width:500px;
	margin:40px auto;
	text-align:center;
	position:relative;
}
#formulario fieldset{
	background:white;
	border:0 none;
	border-radius:5px;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;

	box-shadow:0 0 15px 1px rgba(0,0,0, 0.4);
	padding:20px 30px;

	box-sizing: border-box;
	width:80%;
	margin:0 10%;
	position:absolute;
}
#formulario input, #formulario textarea{
	padding:10px;
	border:1px solid rgba(38, 128, 101, 0.9);
	border-radius:4px;
	-moz-border-radius:4px;
	-webkit-border-radius:4px;
	outline:none;
	box-sizing: border-box;
	width:100%;
	font:14px "Trebuchet MS", tahoma, arial;
	color:#090;
	margin-bottom:10px;
}
#formulario .acao{
	width:100px;
	background:rgba(38, 128, 101, 0.9);
	color:white;
	text-transform:uppercase;
	font-weight:bold;
	padding:12px 0;
	float:left;
	margin-right:5%;
}
#formulario .acao:hover{background:rgba(52, 177, 140, 0.9); cursor:pointer;}

 

Edited by ricardonews
na pressa eu não tinha visto o erro na pergunta

Share this post


Link to post
Share on other sites

Retorna algum erro PHP/JS?

 

Olhando por cima, aparentemente está tudo ok a consulta no banco, você verificou se chegou no 'pesquisar.php'? Está entrando no evento de OnClick do jQuery?

 

De um var_dump($_POST);exit; no 'pesquisar.php' e veja no network se está chegando lá. Se chegar no PHP, debugge o retorno da consulta.

Share this post


Link to post
Share on other sites

Obrigado pela dica, eu vou dar uma olhada nisso que ainda não vi, mas eu fiz o teste parecia não ser com o php, mas eu posso estar engando.

Share this post


Link to post
Share on other sites

Marcosmarcolin, desculpa pela falha, na correria eu havia colocado apenas o que estava funcionando, e não coloquei oque não estava funcionando, eu alterei a e pergunta e coloquei oque não estava funcionando também junto com oque estava funcionando. desculpa mesmo pela confusão.

Share this post


Link to post
Share on other sites

Seu Ajax não está disparando porque não está pegando o evento de 'onClick' que você espera no jQuery:

 

// Espera o click no botão #but_submit
$("#but_submit").click(function(){	
	// código
});

// seu botão está sem o ID que você espera
<input type="submit" class="next acao" value="Logar" />
  
// basta adicionar o id no botão
<input type="submit" id="but_submit" class="next acao" value="Logar" />
  

Testa aí e retorna.

Share this post


Link to post
Share on other sites

Marcosmarcolin, não sei oque houve, mas não funcionou eu fiz um outro usando apenas o css dele porque foi oque se aproveitou . eu fiz assim :

$("#but_submit").click(function(){
                    var username = $("#meu_nome").val().trim();
                    var password = $("#minha_senha").val().trim();

<input type="password" id="minha_senha " name="minha_senha" placeholder="digite sua senha" />
                <input type="submit" id="but_submit" class="next acao" value="Logar" />

até agora eu não entendi porque dessa maneira não funciona.

 

 

Share this post


Link to post
Share on other sites

Segue exemplo funcional, veja abaixo:

Spoiler

index.php

 


<html>
<head>
  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>

<script type="text/javascript">
    $(document).ready(function(){
        $("#btn_enviar").click(function(){

			var username = $("#meu_nome").val();
            var password = $("#minha_senha").val();

            $.ajax({
                type: 'POST',
                url: 'pesquisar.php',
				dataType: 'json',
				data: {username:username, password: password},
                success: function(data) {
                    $("#div1").text(data);
                }
            });
   });
});
</script>

</head>

<body>
			<fieldset>
				<h2>Configuracoes da conta</h2>
				<h3>Area de login </h3>
				<input type="text"  id="meu_nome"name="meu_nome" placeholder="username" />
				<input type="password" id="minha_senha" name="minha_senha" placeholder="digite sua senha" />
				<input type="submit" id='btn_enviar' class="next acao" value="Logar" />
			</fieldset>


	<div id="div1">Vazio!</div>

</body>
</html>

pesquisar.php

 


<?php

echo json_encode('Preenchendo com retorno Ajax!');exit;

 

 

Irá preencher a #div1 com o retorno do Ajax, tratando como um JSON. Veja mais sobre json_encode e ajax.

Share this post


Link to post
Share on other sites

aqui está a tabela só falta voce criar o banco

-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: 22-Jun-2019 às 18:05
-- Versão do servidor: 10.1.38-MariaDB
-- versão do PHP: 7.2.17

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `login2`
--

-- --------------------------------------------------------

--
-- Estrutura da tabela `usuarios`
--

CREATE TABLE `usuarios` (
  `id` int(11) NOT NULL,
  `nome` varchar(100) NOT NULL,
  `sobrenome` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(100) NOT NULL,
  `telefone` varchar(100) NOT NULL,
  `facebook` varchar(100) NOT NULL,
  `twitter` varchar(100) NOT NULL,
  `google` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Extraindo dados da tabela `usuarios`
--

INSERT INTO `usuarios` (`id`, `nome`, `sobrenome`, `email`, `password`, `telefone`, `facebook`, `twitter`, `google`) VALUES
(75, 'ar', 'dfsf', 'ff@bol.com', '264589', '5511981905686', 'http://facebook.com', 'http://facebofok.com', 'http://facebuook.com'),
(104, 'mister', 'bin', 'shadol@shadol', '7f99595cb5591cedc902395e4ecf1dde', '5516981905686', 'http://facebook1.com', 'http://twitter.com', 'http://google.com'),
(106, 'asd', 'afaf', 'a@nnn', '7f99595cb5591cedc902395e4ecf1dde', '5517981905686', 'http://facebook.com', 'http://facebook.com', 'http://facebook.com'),
(107, 'cai', 'fora', 'mane@mane', '7f99595cb5591cedc902395e4ecf1dde', '5510981905686', 'http://sei.com', 'http://manent.com', 'http://seila.com'),
(108, 'cai', 'fora', 'mane@mane', '7f99595cb5591cedc902395e4ecf1dde', '5510981905686', 'http://sei.com', 'http://manent.com', 'http://seila.com');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `usuarios`
--
ALTER TABLE `usuarios`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `usuarios`
--
ALTER TABLE `usuarios`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=109;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By henriquers
      Bom Dia,
       
      Estou fazendo um sistema para armazenar documento e tenho algumas tabelas de consulta onde a mesma aparece algumas informações necessarias como ID , Nome etc
      e estou tentando Ocultar a coluna que esta o ID para que o usuario não consiga ver,estou utilizando o seguinte codigo para ocultar a coluna.
      <script> $("#tabela_cons").ready(function () { $('td:nth-child(1),th:nth-child(1)').hide(); }); </script>  
      A coluna fica oculta certinho do modo que eu quero, mas esse código esta afetando as outras tabelas que eu tenho na pagina também, e não sei como ocultar apenas na tabela que eu desejo que seja oculta no caso a tabela com ID = tabela_cons;
    • By Aquiles Maior
      Olá pessoal, estou tentando refazer esta mesma requisição porém via axios devido fato que preciso que  funcione com o async em false, 
      porém não estou sabendo lidar com o axios ainda.  Não achei na doc, como requisitar o ResponseHeader('Date') no axios. Se alguém
      puder dar um help aqui pro barbudo.
       
      Obrigado!!!
      function horax(){ $.ajax({ type: 'GET', cache: false, url: location.href, 'async': false, complete: function (req, textStatus) { var date = new Date(req.getResponseHeader('Date')); serverTime = moment(date).format('x') $('#clock1').text(moment(date).format('HH:mm:ss')); }, error: function(txt) { } }); setTimeout(horax, 1000); } horax(); alert(+serverTime); //apenas pra testar se está recebendo valor glogal fora da funcao  
    • By luigiferrari
      Estou com um programa de estoque.
      A página index.php o pedido feito, e tem um botão(Fazer Recibo) ao lado que leva para a página de impressão, tipo um recibo.

       
       
      Ao clica em Fazer recibo, vou para uma página de impressão, segue abaixo a página:

       
      Gostaria de uma maneira, onde eu pudesse por exemplo, escrever o número dos pedidos, e já imprimisse todas as páginas.
      Ou qualquer outra maneira, mais pratica e rápida do que ir de uma em uma.
       
      Agradeço desde já
       
       
       
       
       
       
       
    • By João Vitor Teixeira
      Olá, galera
      Eu sou  iniciante nessa área de informatica e estou fazendo algo complicado no meu site ao meu ponto de vista.
      Estou tentando colocar uma imagem em modal que seja respectiva pelo funcionário que ele escolheu, ou seja,
      quando o usuário escolher um funcionário aparecerá um modal com uma imagem do funcionário escolhido 
      mas infelizmente não estou conseguindo, se puderem ajudar ficarei muito grato!!
      Estou usando dois arquivos principais nessa parte, o agendamento.php e o buscar.php(estou usando ajax nessa parte)
      agendamento.php:
      <?php include 'buscar.php'; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Agendamento</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/editar.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <script> function letra(campo){ var digits="qwertyuiopasdfghjklçzxcvbnmãâóáâô QWERTYUIOPASDFGHJKLÇZXCVBNM" var campo_temp for (var i =0;i<campo.value.length;i++){ campo_temp=campo.value.substring(i,i+1) if(digits.indexOf(campo_temp)==-1){ campo.value = campo.value.substring(0,i); break; } } } function numeros(campo){ var digits="0123456789()-" var campo_temp for (var j=0;j<campo.value.length;j++){ campo_temp=campo.value.substring(j,j+1); if(digits.indexOf(campo_temp)==-1){ campo.value = campo.value.substring(0,j); break; } } } function EMAIL_E_SENHA(campo){ var digits="qwertyuiopasdfghjklçzxcvbnmãâóáâô10123456789.-@ QWERTYUIOPASDFGHJKLÇZXCVBNM" var campo_temp for (var i =0;i<campo.value.length;i++){ campo_temp=campo.value.substring(i,i+1) if(digits.indexOf(campo_temp)==-1){ campo.value = campo.value.substring(0,i); break; } } } function formenviar(){ var senha = formulario_cliente.senha.value; var consenha = formulario_cliente.con_senha.value; if(document.getElementById("servico").value == ""){ window.alert("Escolha se quer exibir o e-mail."); document.getElementById("estado").focus(); return false; } if(senha != consenha){ alert('Sua senha está digitada errada digite novamente') return false; } } </script> </head> <body> <div class="userform"> <div class="uptab"> <a href="area_usuario.php"><i class="fa fa-arrow-circle-o-left left" style="font-size: 30px;"></i></a> </div> <center> <div class="tabs"> <button class="tablink " onclick="openCity(event,'dados')">AGENDAMENTO</button> <button class="tablink " onclick="openCity(event,'agenda')">‏</button> </div> </center> <div class="poscity"> <form method="post" name="form1" action="cadastro_agen.php" class="formulario"> <div id="dados" class="w3-container w3-border city dados"> <div> <div class="iconstab"> <i class="fa fa-scissors"></i> Serviço</div><br> <div class="box"> <select id="input-2" name="servico" id="servico"> <option selected value="">Escolha uma opção</option> <?php while($campo = $con->fetch_array()) { ?> <option><?php echo $campo['nome_serv'];?></option> <?php } ?> </select> </div> </div> <br> <div> <div class="iconstab"> <i class="fa fa-users"></i> Funcionário </div><br> <div class="box"> <select id="input-3" name="funcionario"> <option selected value="">Escolha uma opção</option> </select> </div> </div> <div> </div><br> </div> <div id="modalfunc" class="modalfunc"> <div class="headermodal"><span onclick="document.getElementById('modalfunc').style.display='none'" id="closemodal"><i class="fa fa-times" style="font-size:25px; padding-top: 25%; padding-left: 30%;"></i></span></div> <div class="frame"> <img src="upload/<?php echo $car20;?>"> </div> </div> <div id="agenda" class="w3-container w3-border city dados" style="display:none"> <div> <div class="iconstab"> <i class="fa fa-calendar"></i> Data </div><br> <div class="box"> <input id="myDate" type="date" name="data" min="2015-10-28" required /> </div> </div> <br> <div class="iconstab"> <i class="fa fa-clock-o"></i> Horário </div><br> <div class="box"> <select id="input-4" name="horario" required> <option disabled selected>Escolha uma opção</option>" </select> </div> <br> <input type="submit" value="AGENDAR" onclick="formenviar" style="font-size: 20px; border: none; background-color: transparent; color: #555"> </div> </form> <div class="footerdiv"> <center> <div class="links"> <button onclick="openCity(event,'dados')" class="tablink "><i class="fa fa-arrow-left"></i> Voltar</button> <button class="tablink " onclick="openCity(event,'agenda')">Próximo <i class="fa fa-arrow-right"></i></a> </div> </center> </div> </div> </div> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script src="js/index.js"></script> <script> $("select[name=servico]").change(function(){ $("select[name=funcionario]").html("") }) $("select[name=servico]").change(function(){ let valor = $(this).val() $.get("buscar.php", {valor:valor}, function(data){ $("select[name=funcionario]").append("<option disabled selected>Escolha uma opção</option>") $("select[name=funcionario]").append(data) }) }) $("select[name=servico]").change(function(){ $("select[name=horario]").html("") }) $("select[name=servico]").change(function(){ let valor1 = $(this).val() $.get("buscar.php", {valor1:valor1}, function(data1){ $("select[name=horario]").append("<option disabled selected>Escolha uma opção</option>") $("select[name=horario]").append(data1) }) }) $("input[name=data]").change(function(){ let valor2 = $(this).val() $.get("buscar.php", {valor2:valor2}, function(data2){ }) }) $("select[name=funcionario]").change(function(){ let valor3 = $(this).val() document.getElementById('modalfunc').style.display='block'; $.get("buscar.php", {valor3:valor3}, function(data3){ }) }) $("select[name=servico]").change(function(){ let valor4 = $(this).val() $.get("buscar.php", {valor4:valor4}, function(data4){ }) }) </script> <script> function openCity(evt, cityName) { var i, x, tablink; x = document.getElementsByClassName("city"); for (i = 0; i < x.length; i++) { x.style.display = "none"; } tablinks = document.getElementsByClassName("tablink"); for (i = 0; i < x.length; i++) { tablinks.className = tablinks.className.replace("", ""); } document.getElementById(cityName).style.display = "block"; evt.currentTarget.className += ""; } </script> <script> $("#edit-profile").submit(function(e) { var agendamento = $("#agend").val().split('T'); agendamento = new Date(agendamento[0]).setHours(24); var hoje = new Date(); if (agendamento <= hoje) { alert('Por favor, insira uma data válida!'); e.preventDefault(); } }); </script> <script> document.getElementById("myDate").min = new Date().getFullYear() + "-" + parseInt(new Date().getMonth() + 1 ) + "-" + new Date().getDate() </script> <script> // Exemplo de JavaScript inicial para desativar envios de formulário, se houver campos inválidos. (function() { 'use strict'; window.addEventListener('load', function() { // Pega todos os formulários que nós queremos aplicar estilos de validação Bootstrap personalizados. var forms = document.getElementsByClassName('needs-validation'); // Faz um loop neles e evita o envio var validation = Array.prototype.filter.call(forms, function(form) { form.addEventListener('submit', function(event) { if (form.checkValidity() === false) { event.preventDefault(); event.stopPropagation(); } form.classList.add('was-validated'); }, false); }); }, false); })(); </script> </body> </html> buscar.php: <?php define ('HOST','127.0.0.1'); define ('usuario', 'root'); define ('senha', ''); define ('db', 'estudiobecca'); $conexao = mysqli_connect(HOST, usuario, senha, db) or die ('Não foi possivel conectar'); session_start(); $nome = $_SESSION["email"]; if(!isset($_SESSION["email"]) || !isset($_SESSION["senha"])){ header("location: login.html"); exit(); } $valor = filter_input(INPUT_GET, "valor"); $valor1 = filter_input(INPUT_GET, "valor1"); $valor2 = filter_input(INPUT_GET, "valor2"); $valor2 = date("Y-m-d", strtotime(str_replace('/', '-', $valor2))); $valor3 = filter_input(INPUT_GET, "valor3"); $query20 = mysqli_query($conexao, "SELECT foto_func FROM funcionario WHERE nome_func = '{$valor3}'"); $result20 = mysqli_fetch_array($query20); $car20 = $result20['foto_func']; $consulta = "SELECT nome_serv FROM servico "; $con = $conexao->query($consulta) or die ($conexao->error); $consulta10 = "SELECT nome_func FROM funcionario "; $con10 = $conexao->query($consulta10) or die ($conexao->error); $query = mysqli_query($conexao, "select id_serv from servico where nome_serv = '{$valor}'"); $result = mysqli_fetch_array($query); $car = $result['id_serv']; $query1 = mysqli_query($conexao, "select id_func from funcionario_servico where id_serv ='{$car}'"); while ($id = mysqli_fetch_array($query1)) { $id_func = $id["id_func"]; $consulta2 = "SELECT nome_func FROM funcionario where id_func = '{$id_func}'"; $con2 = $conexao->query($consulta2) or die ($conexao->error); foreach ($con2 as $lista) { echo "<option>".$lista["nome_func"]."</option>"; } } $query3 = mysqli_query($conexao, "select id_serv from servico where nome_serv = '{$valor1}'"); $result3 = mysqli_fetch_array($query3); $car3 = $result3['id_serv']; $query12 = mysqli_query($conexao, "select id_func from funcionario where nome_func = '{$valor3}'"); $result12 = mysqli_fetch_array($query12); $car12 = $result12['id_func']; $query10 = mysqli_query($conexao, "select id_hor from agendamento where data = '{$valor2}' and id_func = '{$car12}' and id_serv = '{$car}'"); $result10 = mysqli_fetch_array($query10); $car10 = $result10['id_hor']; $query11 = mysqli_query($conexao, "select hora from horario where id_hor = '{$car10}'"); $result11 = mysqli_fetch_array($query11); $car11 = $result11['hora']; $query2 = mysqli_query($conexao, "select id_hor from servico_horario where id_serv ='{$car3}'"); while($id2 = mysqli_fetch_array($query2)){ $id_hor = $id2["id_hor"]; $consulta1 = "SELECT hora FROM horario where id_hor = '{$id_hor}' and hora != '{$car11}'"; $con1 = $conexao->query($consulta1) or die ($conexao->error); foreach ($con1 as $lista1) { echo "<option>".$lista1["hora"]."</option>"; } } ?>                        
          
          
       
      Como posso resolveu esse problema, como podem ver eu tentei colocar uma variável php para mostrar a imagem, mas não vai 
       
    • By granderodeo
      Criei um formulário para envio dos pedidos, assim que o cliente colocar os dados e concluir a compra. Fiz a maior parte com requisições ajax, está tudo funcionando perfeitamente, e como certeza disso, após clicar em finalizar compra, o cliente é redirecionado para página '4d-thank-you.php', onde ele recebe a mensagem de que o pedido foi efetuado com sucesso. Mais eu quero adicionar mais um campo, para o cliente inserir o endereço, mais já tentei de todas as formas, efetuo todas modificações certinhas, e quando clico em Finalizar compra, o cliente não é mais redirecionado para a página '4d-thank-you.php', ou seja a requisição não está sendo feita com sucesso. Vou deixar abaixo os códigos que fazem o carrinho funcionar e a inserir os dados do formulário no Mysql, esse código está funcionando, porém, quando adiciono mais um campo ele para de funcionar, se puderem me ajudar preciso urgente para um projeto. 
       
       
      Esse é o carrinho, e a parte onde o cliente coloca as informações para concluir o pedido.
      <?php // SHOPPING CART WILL BE STORED IN THE SESSION // $_SESSION['cart'][PRODUCT ID] = QUANTITY require __DIR__ . DIRECTORY_SEPARATOR . "lib" . DIRECTORY_SEPARATOR . "2a-config.php"; switch ($_POST['req']) { /* [INVALID REQUEST] */ default: echo "INVALID REQUEST"; break; /* [ADD ITEM TO CART] */ case "add": if (is_numeric($_SESSION['cart'][$_POST['product_id']])) { $_SESSION['cart'][$_POST['product_id']] ++; } else { $_SESSION['cart'][$_POST['product_id']] = 1; } echo "Produto adicionado ao carrinho"; break; /* [COUNT TOTAL NUMBER OF ITEMS] */ case "count": $total = 0; if (count($_SESSION['cart'])>0) { foreach ($_SESSION['cart'] as $id => $qty) { $total += $qty; } } echo $total; break; /* [SHOW CART] */ case "show": // Fetch products require PATH_LIB . "2b-lib-db.php"; require PATH_LIB . "4c-lib-cart.php"; $cartLib = new Cart(); $products = $cartLib->details(); // Cart contents in HTML $sub = 0; $total = 0; ?> <h1 style="font-family: 'Gotham Light;'" class="text-center text-info mt-2">Minhas compras&nbsp;<i class="fa fa-gift"></i></h1> <table id="cart-table"> <tr> <th>Remover</th> <th>Quantidade</th> <th>Nome do produto</th> <th>Preço</th> </tr> <?php if (count($_SESSION['cart'])>0) { foreach ($_SESSION['cart'] as $id => $qty) { $sub = $qty * $products[$id]['product_price']; $total += $sub; ?> <tr> <td> <a href="#" class="text-danger lead" onclick="cart.remove(<?= $id ?>);"> <i class="fa fa-trash"></i></a> </td> <td><input class="form-control" id='qty_<?= $id ?>' onchange='cart.change(<?= $id ?>);' type='number' value='<?= $qty ?>'/></td> <td><?= $products[$id]['product_name'] ?></td> <td><?= sprintf("$%0.2f", $sub) ?></td> </tr> <?php }} else { ?> <tr align="center" ><td colspan="3" align="center">&nbsp;Seu carrinho está vazio&nbsp;&nbsp;<button class="btn btn-success"><a style="color: white; text-decoration: none;" href="index.php">Continuar comprando</a></button></td></tr> <?php } ?> <tr> <td colspan="2"></td> <td><strong>Preço total</strong></td> <td><strong><?= sprintf("$%0.2f", $total) ?></strong></td> </tr> </table> <hr> <?php if (count($_SESSION['cart']) > 0) { ?> <button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bd-example-modal-lg"><i class="fa fa-credit-card"></i>&nbsp;Finalizar Compra</button> <div class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <form class="p-2" onsubmit="return cart.checkout();"> <div class="form-row"> <div class="form-group col-md-6"> <label for="co_name">Nome completo</label> <input type="text" class="form-control" id="co_name" placeholder="Nome completo"> </div> <div class="form-group col-md-6"> <label for="co_email">Seu email</label> <input type="email" class="form-control" id="co_email" value="" disabled> </div> </div> <div class="form-group"> <label for="co_address">Rua, Sítio</label> <input type="text" class="form-control" id="co_address" placeholder="Digite a rua ou sítio onde mora"> </div> <div class="form-group"> <label for="inputAddress2">Bairro</label> <input type="text" class="form-control" id="inputAddress2" placeholder="Digite o bairro onde mora"> </div> <div class="form-row"> <div class="form-group col-md-4"> <label for="inputState">Município</label> <select id="inputState" class="form-control" disabled> <option>União dos Palmares</option> </select> </div> <div class="form-group col-md-2"> <label for="inputZip">Zip</label> <input type="text" class="form-control" id="inputZip"> </div> </div> <input type="submit" class="btn btn-info btn-block" value="checkout"> </form> </div> </div> </div> <!---- FIM FINALIZAR COMPRA E MAIS DUVIDAS -----> <?php } break; /* [CHANGE QTY] */ case "change": if ($_POST['qty'] == 0) { unset($_SESSION['cart'][$_POST['product_id']]); } else { $_SESSION['cart'][$_POST['product_id']] = $_POST['qty']; } echo "Ação realizada com sucesso"; break; /* [CHECKOUT] */ // @TODO // Beef up this section on your own! // There are no error & security checks in this simple example // You may also want to add more of your own checkout procedures here case "checkout": require PATH_LIB . "2b-lib-db.php"; require PATH_LIB . "4c-lib-cart.php"; $cartLib = new Cart(); if ($cartLib->checkout($_POST['name'], $_POST['email'])) { $_SESSION['cart'] = []; echo "OK"; } else { echo $cartLib->error; } break; /* [ALTERNATIVE CHECKOUT] */ // This version sends an email to the customer on successful checkout case "checkout-email": require PATH_LIB . "2b-lib-db.php"; require PATH_LIB . "4c-lib-cart.php"; $cartLib = new Cart(); if ($cartLib->checkout($_POST['name'], $_POST['email'])) { $_SESSION['cart'] = []; // @TODO // Format this email message as you see fit $order = $cartLib->get($cartLib->orderID); $to = $_POST['email']; $subject = "Order Received"; $message = ""; foreach ($order['items'] as $pid=>$p) { $message .= $p['product_name'] . " - " . $p['quantity'] . "<br>"; } $headers = implode("\r\n", [ 'MIME-Version: 1.0', 'Content-type: text/html; charset=utf-8', 'From: john@doe.com' ]); echo @mail($to, $subject, $message, $headers) ? "OK" : "ERROR sending email!" ; } else { echo $cartLib->error; } break; } ?>  
       
      Aqui é feita a inserção do formulário no Mysql
      <?php class Cart extends DB { function details () { // details() : get details of items in cart // Empty if (count($_SESSION['cart'])==0) { return false; } // Get products in cart $sql = "SELECT * FROM `products` WHERE `product_id` IN ("; $sql .= str_repeat('?,', count($_SESSION['cart']) - 1) . '?'; $sql .= ")"; return $this->fetch($sql, array_keys($_SESSION['cart']), "product_id"); } function checkout ($name, $email) { // checkout() : checkout, create new order // PARAM $name : customer's name // $email : customer's email address // Init $this->start(); // Create the order entry first $pass = $this->exec( "INSERT INTO `orders` (`order_name`, `order_email`) VALUES (?, ?)", [$name, $email] ); // Insert the items if ($pass) { $this->orderID = $this->lastID; $sql = "INSERT INTO `orders_items` (`order_id`, `product_id`, `quantity`) VALUES "; $cond = []; foreach ($_SESSION['cart'] as $id=>$qty) { $sql .= "(?, ?, ?),"; array_push($cond, $this->orderID, $id, $qty); } $sql = substr($sql, 0, -1) . ";"; $pass = $this->exec($sql, $cond); } // Finalize $this->end($pass); return $pass; } function get ($id) { // get () : get order // PARAM $id : order ID $order = $this->fetch( "SELECT * FROM `orders` WHERE `order_id`=?", [$id] ); $order['items'] = $this->fetch( "SELECT * FROM `orders_items` LEFT JOIN `products` USING (`product_id`) WHERE `orders_items`.order_id=?", [$id], "product_id" ); return $order; } } ?>  
       
       
      Esse é o script, que ajuda nas funcionalidades do Carrinho de compras.
      // @TODO - // There is literally little to no interface in this script. // Feedback meesage such as "item added to cart" uses raw Javascript alert // Bootstrap, jQuery, Angular, or vanilla CSS - Implement your own interface. var cart = { ajax : function (opt) { // ajax() : helper function, do AJAX request // PARAM opt.data : data to be sent, an object with key-value pairs // opt.url : target URL // opt.target : (optional) ID of HTML element, put server response in here if provided // opt.load : (optional) function to call when AJAX load is complete // DATA var data = null; if (opt.data) { data = new FormData(); for (var d in opt.data) { data.append(d, opt.data[d]); } } // AJAX var xhr = new XMLHttpRequest(); xhr.open('POST', opt.url, true); xhr.onload = function(){ if (xhr.status!=200) { console.log(xhr); alert("AJAX error. Server responded with error code " + xhr.status + " " + xhr.statusText); } else { if (opt.target) { document.getElementById(opt.target).innerHTML = this.response; } if (typeof opt.load == "function") { opt.load(this.response); } } }; xhr.send(data); }, add : function (id) { // add () : add item to cart // PARAM id : product ID cart.ajax({ url : "4b-ajax-cart.php", data : { req : "add", product_id : id }, load : function (res) { cart.count(); // @TODO alert(res); } }); }, count : function () { // count() : update items count cart.ajax({ url : "4b-ajax-cart.php", data : { req : "count", }, target : "page-cart-count" }); }, toggle : function (reload) { // toggle() : show/hide cart // PARAM reload : force cart reload? var pgPdt = document.getElementById("page-products"), pgCart = document.getElementById("page-cart"); if (reload || pgCart.classList.contains("ninja")) { cart.ajax({ url : "4b-ajax-cart.php", data : { req : "show", }, target : "page-cart", load : function () { pgPdt.classList.add("ninja"); pgCart.classList.remove("ninja"); } }); } else { pgPdt.classList.remove("ninja"); pgCart.classList.add("ninja"); } }, change : function (id) { // change() : change quantity var qty = document.getElementById("qty_"+id).value; cart.ajax({ url : "4b-ajax-cart.php", data : { req : "change", product_id : id, qty : qty }, load : function (res) { cart.count(); cart.toggle(1); // @TODO alert(res); } }); }, remove : function (id) { // remove() : remove item from cart document.getElementById("qty_"+id).value = 0; cart.change(id); }, checkout : function () { // checkout () : checkout cart.ajax({ url : "4b-ajax-cart.php", data : { req : "checkout", // @TODO // Change to checkout-email if you want an email to be sent on checkout // req : "checkout-email", name : document.getElementById("co_name").value, email : document.getElementById("co_email").value, }, load : function (res) { if (res=="OK") { window.location = "4d-thank-you.php"; } else { gen.nShow(res); } } }); return false; } }; window.addEventListener("load", cart.count);  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.