Ir ao conteúdo

Posts recomendados

Postado

Olá pessoal, sou um completo iniciante em PHP e estou desenvolvendo um site responsivo que já funciona registro e login. Tudo muito simples, porém eu precisava de fazer um sistema de agendamento onde quando um escolher um horário, o outro não poder. Escolher mais. Por que é uma barbearia de agendamento on-line. Alguém tem noção de como faria? Juntamente com html e css que já tenho nível intermediário. Se poderem me dar norte ficarei feliz!

  • Curtir 2
  • 2 semanas depois...
  • Moderador
Postado

@OIniciante Basicamente, tudo que você precisa fazer é na hora do agendamento consultar se já existe uma data já agendada. 

Tem N formas de fazer isso... por exemplo criando um calendário baseado no mês e dia e hora..  A partir daí... fazer uma verificação se existe o cadastro.. se existir, mostrar que já existe... senão, faz o cadastro..

 

Pode por exemplo no menu de agendamento, já informar quais dias e horarios disponíveis...   enfim..  boa sorte

  • Curtir 1
Postado

@DiF obrigado precisava dessa logica ainda estou aprendendo cada função etc. mas ja conseguindo fazer as coisas bem do básico. e uma informação minima que seja faz total diferença no meu aprendizado.. obrigado!

@devair1010

 

Primeira parte na index, fica registro. vou mostrar parte de login, e pagina que redreciona quando e autenticado o login. e bem bem simples, mas eu to aprendendo agora então pramim e muita coisa.. 

 

parte em php que vem do formulario

<?php

session_start();

if(isset($_POST['submit']) && !empty($_POST['e']) && !empty($_POST['s'])){

    include_once('db.php');

    $email = $_POST['e'];
    $senha = $_POST['s'];
   


    $sql = "SELECT * FROM users WHERE email = '$email' and senha = '$senha'";

    $result = $conexao->query($sql);

   
     if(mysqli_num_rows($result) < 1)
     {
        unset($_SESSION['email']);
        unset($_SESSION['senha']);
        header('Location: login.php');
        
       
     }
    
     else
     {
        $_SESSION['email'] = $email;
        $_SESSION['senha'] = $senha;
        header('Location: sistema.php');
     }

}
else
{

    header('Location : login.php');

}

?>

 

Parte dentro da pagina de login e agora só me falta, parte de agendamento pra quando um escolher um horario ficar vinculado com o email, e horario. e outra pessoa não poder marcar mesmo horario, podendo receber um aviso na tela de que horario indisponivel, ou sumir deixando só os disponiveis. a maneira que seja mas fácil.

<?php

session_start();


if((!isset($_SESSION['email']) == true) and (!isset($_SESSION['senha']) == true)){

    unset($_SESSION['email']);
    unset($_SESSION['senha']);
    header('Location: login.php');
}

 $logado = $_SESSION['email'];



?>


<!DOCTYPE html>
<html lang="en">
<head>

<style> 

h4{

font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
font-size: 15px;
color: white;
background-image: radial-gradient( circle 905.6px at 4.9% 7.9%,  rgba(218,0,0,1) 14.1%, rgba(168,2,144,1) 65%, rgba(102,2,110,1) 90% );
box-shadow: 1px 1px 1px 1px black;
border-radius: 3px;

}

 body{
 font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
 background-color: #FFFFFF;
background-image: linear-gradient(90deg, #FFFFFF 0%, #6284FF 50%, #FF0000 100%);

 }
 
 h1{

color: white;


}

.bem-vindo{

    margin:auto;
    top: 100px;
    position: relative;
    font-weight: bold;
    color: black;
    width: 100%;
    max-width: 300px;
    font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
    text-align: center;

}

.bem-vindo img{

    width: 60px;




}

.bem-vindo a{

text-decoration: none;
background: linear-gradient(180deg, rgba(2,0,36,1) 0%, rgba(255,255,255,1) 0%, rgba(0,212,255,1) 100%);
  border: none;
  color: black;
  width: 100px;
  padding: 10px 32px;
  border-radius: 10px;
  text-decoration: none;
  margin: 4px 2px;
  cursor: pointer;
  

}

hr{

border-color: black;
box-shadow: 2px 2px 2px 2px black;
width: 300px;


}


.menu{

    margin:auto;
    top: 100px;
    position: relative;
    font-weight: bold;
    color: black;
    width: 100%;
    max-width: 600px;
    font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
    text-align: center;

}

.menu a {

text-decoration: none;
background: linear-gradient(180deg, rgba(2,0,36,1) 0%, rgba(255,255,255,1) 0%, rgba(0,212,255,1) 100%);
  border: none;
  color: black;
  width: 70px;
  padding: 10px 32px;
  border-radius: 10px;
  text-decoration: none;
  cursor: pointer;

}
 

</style>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>



        <div class="bem-vindo">

        <img src="https://artpoin.com/wp-content/uploads/2019/11/barba.png" width="50">
    
    <h4> Olá Bem Vindo!!! <?php echo '' . $logado;?> </h4>
        

    <hr>
    <br>

        </div>

    <div class="menu">
         <a href="">Agendamento</a>
         <Br>
<Br><br>

         <a href="tel: +551194062052">Contato</a>
         <a href="#">Produtos</a>
         <br>
         <br>
         <br>
         <a href="sair.php">SAIR</a>



    </div>


</body>

 

Postado
1 hora atrás, OIniciante disse:

@DiF obrigado precisava dessa logica ainda estou aprendendo cada função etc. mas ja conseguindo fazer as coisas bem do básico. e uma informação minima que seja faz total diferença no meu aprendizado.. obrigado!

@devair1010

 

Primeira parte na index, fica registro. vou mostrar parte de login, e pagina que redreciona quando e autenticado o login. e bem bem simples, mas eu to aprendendo agora então pramim e muita coisa.. 

 

parte em php que vem do formulario

<?php

session_start();

if(isset($_POST['submit']) && !empty($_POST['e']) && !empty($_POST['s'])){

    include_once('db.php');

    $email = $_POST['e'];
    $senha = $_POST['s'];
   


    $sql = "SELECT * FROM users WHERE email = '$email' and senha = '$senha'";

    $result = $conexao->query($sql);

   
     if(mysqli_num_rows($result) < 1)
     {
        unset($_SESSION['email']);
        unset($_SESSION['senha']);
        header('Location: login.php');
        
       
     }
    
     else
     {
        $_SESSION['email'] = $email;
        $_SESSION['senha'] = $senha;
        header('Location: sistema.php');
     }

}
else
{

    header('Location : login.php');

}

?>

 

Parte dentro da pagina de login e agora só me falta, parte de agendamento pra quando um escolher um horario ficar vinculado com o email, e horario. e outra pessoa não poder marcar mesmo horario, podendo receber um aviso na tela de que horario indisponivel, ou sumir deixando só os disponiveis. a maneira que seja mas fácil.

<?php

session_start();


if((!isset($_SESSION['email']) == true) and (!isset($_SESSION['senha']) == true)){

    unset($_SESSION['email']);
    unset($_SESSION['senha']);
    header('Location: login.php');
}

 $logado = $_SESSION['email'];



?>


<!DOCTYPE html>
<html lang="en">
<head>

<style> 

h4{

font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
font-size: 15px;
color: white;
background-image: radial-gradient( circle 905.6px at 4.9% 7.9%,  rgba(218,0,0,1) 14.1%, rgba(168,2,144,1) 65%, rgba(102,2,110,1) 90% );
box-shadow: 1px 1px 1px 1px black;
border-radius: 3px;

}

 body{
 font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
 background-color: #FFFFFF;
background-image: linear-gradient(90deg, #FFFFFF 0%, #6284FF 50%, #FF0000 100%);

 }
 
 h1{

color: white;


}

.bem-vindo{

    margin:auto;
    top: 100px;
    position: relative;
    font-weight: bold;
    color: black;
    width: 100%;
    max-width: 300px;
    font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
    text-align: center;

}

.bem-vindo img{

    width: 60px;




}

.bem-vindo a{

text-decoration: none;
background: linear-gradient(180deg, rgba(2,0,36,1) 0%, rgba(255,255,255,1) 0%, rgba(0,212,255,1) 100%);
  border: none;
  color: black;
  width: 100px;
  padding: 10px 32px;
  border-radius: 10px;
  text-decoration: none;
  margin: 4px 2px;
  cursor: pointer;
  

}

hr{

border-color: black;
box-shadow: 2px 2px 2px 2px black;
width: 300px;


}


.menu{

    margin:auto;
    top: 100px;
    position: relative;
    font-weight: bold;
    color: black;
    width: 100%;
    max-width: 600px;
    font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
    text-align: center;

}

.menu a {

text-decoration: none;
background: linear-gradient(180deg, rgba(2,0,36,1) 0%, rgba(255,255,255,1) 0%, rgba(0,212,255,1) 100%);
  border: none;
  color: black;
  width: 70px;
  padding: 10px 32px;
  border-radius: 10px;
  text-decoration: none;
  cursor: pointer;

}
 

</style>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>



        <div class="bem-vindo">

        <img src="https://artpoin.com/wp-content/uploads/2019/11/barba.png" width="50">
    
    <h4> Olá Bem Vindo!!! <?php echo '' . $logado;?> </h4>
        

    <hr>
    <br>

        </div>

    <div class="menu">
         <a href="">Agendamento</a>
         <Br>
<Br><br>

         <a href="tel: +551194062052">Contato</a>
         <a href="#">Produtos</a>
         <br>
         <br>
         <br>
         <a href="sair.php">SAIR</a>



    </div>


</body>

 

 

fiz tambem uma pagina pra marcar horario so preciso entender como fazer agora.. para comparar os horarios com alguém que ja cadastrou atraves do email, cadastrado e colocar uma regra pra marcar de uma em uma hora.

<div class="test">

<img src="./imagens/homem.png" width="350" >

 </div>


<div class="menu">

<a href="sistema.php">  <img src="./imagens/ladodireito.png" width="50px">  </a>


<h3> Marque seu Horario </h3>

<?=" Hoje é " . date("d/m/Y h:i:s") ."<br>"  . ".<br>";?>

<hr>

<form action="" method="post">

<input type="datetime-local"  name="horario" required>

<input type="submit" value="Marcar">



</form>

<?php


$horario = isset($_POST['horario']) ? $_POST['horario'] : " horario não marcado";


echo $horario;


?>

 

  • Obrigado 1
  • Moderador
Postado

@OIniciante

Não é bem assim que funciona,  rsrs  bem que seria bom se fosse simples assim.

 

Mas basicamente, o que você precisa fazer é quando submeter o formulário,  buscar na tabela do banco de dados e comparar. Mas antes disso, você precisa modelar seu banco de dados corretamente.

 

Vamos supor que você tem a seguinte estrutura:

 

usuario( adote sempre o email da pessoa como login, essa prática, faz com que a pessoa não esqueça o login dela)

 

Id   nome       email              senha
1     Fulano   [email protected]     123 
2     Beltrano [email protected]  321
3     Ciclano  [email protected]   456

 

horarioMarcado

ID ID_usuario  horarioMarcado
1       1      2023-02-10 16:00:00 

 

 

Basicamente essa tabela de horario marcado, recebe o campo ID_usuario, sendo como chave estrangeira da tabela usuario, no caso ali, o Fulano marcou o horario para as 4 da tarde.

 

Quando o Beltrano for marcar  o horário,   você tem opções....  Por exemplo antes, fazer uma verificação para remover o horário daquele dia,  ou depois, para informar que já tem esse horário marcado...    Se escolher fazer a primeira opção, você terá que montar manualmente um calendário...  Por isso,  a segunda opção acaba se tornando a escolha de muitas pessoas, por ser mais fácil.

 

Gosto muito de usar o plugin date time picker,  pois ele é bem clean e bonito e atende aos requisitos de informar hora por hora.

https://www.jqueryscript.net/time-clock/Clean-jQuery-Date-Time-Picker-Plugin-datetimepicker.html

 

Assim que você já tem o formulário para enviar a data e hora....

 

No PHP você compara assim:

 

$horario = $_POST["horario"];

include 'conexao.php';

$consulta =  mysqli_query($conexao, "SELECT horarioMarcado FROM horarioMarcado WHERE horarioMarcado = $horario");

$dado =  mysqli_fetch_object($consulta);

//se o $dado->horarioMarcado for diferente de zero
if($dado->horarioMarcado != 0):
   echo "Esse horário já está marcado, por favor escolha outro"

else:
   //faz aqui o processo de cadastro no banco de dados com o horário desejado

endif;

 

 

Veja bem, isso é apenas um exemplo, não copie, estude como ele deve ser implementado.  

 

  • Curtir 1
  • Amei 1
Postado

@DiF ola obrigado amigo por isso, você não sabe como ajuda!!, ainda não testei o que explicou mas agradeco muito.. o conteudo na internet pra quem começa do básico e bem difícil até porque quanto entramos em  foruns estilo stack, e dedicado a niveis intermediarios pra cima.. e videos no youtube são velhos e escassos, videos bons são pagos então fica bem difícil aprender do 0 mesmo eu agradeço todo tempo. consegui implementar o captcha, registro, login, da maneira basica e simples... se quiser acompanhar o projeto e aqui que hospedei numa hospedagem free.., http://barbeariawilinha.rf.gd vai ser a barbearia de um colega...

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!