Ir para conteúdo

POWERED BY:

Arquivado

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

emmanuelsiqueira30

Sistema de Adoção Animal

Recommended Posts

Boa tarde especialistas. Não estou conseguindo descobrir qual o defeito no código ou no banco de dados, ao clicar no botão Adotar deveria ir para a página "adotarusuario.php" para que se o usuário estiver logado conseguiria clicar em solicitar a adoção mas sempre está redirecionando para a página "autenticacao.php" no servidor local está funcionando normalmente, mas no serviço de hospedagem na internet não funciona.

 

INDEX.PHP

<?php

  
  include("backend/conexao.php");
  
  $id_especie = isset($_GET['id_especie']);

  $query = sprintf("SELECT * FROM animal INNER JOIN raca ON animal.fk_raca_animal_raca = raca.id_raca INNER JOIN especie ON animal.fk_especie_animal_especie = especie.id_especie INNER JOIN cor ON animal.fk_cor_animal_cor = cor.id_cor INNER JOIN porte ON animal.fk_porte_animal_porte = porte.id_porte");
  
  $dados = mysqli_query($con,$query);
  $linha = mysqli_fetch_assoc($dados);
  $total = mysqli_num_rows($dados);

  $lista_categorias = "SELECT nome_especie FROM especie";

  $dados1 = mysqli_query($con,$lista_categorias);
  $linha1 = mysqli_fetch_assoc($dados1);
  $total1 = mysqli_num_rows($dados1);
  

  //PAGINAÇÃO

  //verifica a página atual caso seja informada na URL, senão atribui como 1ª página 
  $pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1; 
  
  //seleciona todos os itens da tabela 
  $cmd = "SELECT * FROM especie"; 
  $categorias = mysqli_query($con,$cmd);

  //conta o total de itens 
  $total_especies = mysqli_num_rows($categorias); 
 
  //seta a quantidade de itens por página, neste caso, 2 itens 
  $registros = 6;
 
  //calcula o número de páginas arredondando o resultado para cima 
  $numPaginas = ceil($total_especies/$registros);

  // FIM PAGINAÇÃO
  
?>

<!DOCTYPE html>
<html>

  <head>

    <title>ADOÇÃO ANIMAL</title>
 
  
    <!-- Bootstrap core CSS -->
    <link href="vendor/bootstrap/css/bootstrap.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="css/shop-homepage.css" rel="stylesheet">

 <!-- Imagens com Lightbox -->
    <script src="vendor/jquery/jquery-1.7.2.min.js"></script>
       <script src="vendor/jquery/lightbox.js"></script>

       <link href="css/lightbox.css" rel="stylesheet" />

       <script type="text/javascript">
           $(function () {
               $('#gallery a').lightBox();
           });
        </script>
 
    <!-- jQuery lightBox plugin - Gallery style */ -->
    <style type="text/css">
  #gallery {
    background-color: #fff;
    padding: 10px;
    width: auto;
  }
  #gallery ul { list-style: none; }
  #gallery ul li { display: inline; }
  #gallery ul img {
    border: 5px solid #444444;
    border-width: 5px 5px 20px;
  }
  #gallery ul a:hover img {
    border: 5px solid #fff;
    border-width: 5px 5px 20px;
    color: #fff;
  }
  #gallery ul a:hover { color: #fff; }
  </style>
 <!-- Fim Imagens com Lightbox -->

<!-- JQuery Accordion -->
    <link href="backend/js/jquery-ui-1.12.1/jquery-ui.css" rel="stylesheet">
    <style>
  body{
    font-family: "Trebuchet MS", sans-serif;
    margin: 50px;
  }
  .demoHeaders {
    margin-top: 2em;
  }
  #dialog-link {
    padding: .4em 1em .4em 20px;
    text-decoration: none;
    position: relative;
  }
  #dialog-link span.ui-icon {
    margin: 0 5px 0 0;
    position: absolute;
    left: .2em;
    top: 50%;
    margin-top: -8px;
  }
  #icons {
    margin: 0;
    padding: 0;
  }
  #icons li {
    margin: 2px;
    position: relative;
    padding: 4px 0;
    cursor: pointer;
    float: left;
    list-style: none;
  }
  #icons span.ui-icon {
    float: left;
    margin: 0 4px;
  }
  .fakewindowcontain .ui-widget-overlay {
    position: absolute;
  }
  select {
    width: 200px;
  }
  </style>
  <!-- Fim JQuery Accordion -->
  </head>

  <body>

    <!-- Navigation -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
      <div class="container">
        <a class="navbar-brand" href="#">Adoção Animal</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarResponsive">
          <ul class="navbar-nav ml-auto">
            <li class="nav-item active">
              <a class="nav-link" href="#">Página inicial
                <span class="sr-only">(current)</span>
              </a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Adoção</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Apadrinhamento</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Contato</a>
            </li>

             <li class='nav-item active'>  
                      <a href='autenticacao.php'>
                       <span class='btn btn-default'>Entrar</span></a>
            </li>

          </ul>

        </div>
      </div>
    </nav>

    <!-- Page Content -->
    <div class="container">

      <div class="row">

        <div class="col-lg-3">
         
          <h1 class="my-4">Categorias</h1>
          <div class="list-group">
           
              <?php

                if ($total1 > 0) {
                  do {
              
                      echo "<a href='#' class='list-group-item'>" . $linha1['nome_especie'] . "</a>";
              ?>

              <?php   
                    } while ($linha1 = mysqli_fetch_assoc($dados1));
                }
              ?>

          </div>
          <!-- Accordion -->
          <h2 class="demoHeaders"></h2>
          <div id="accordion">
            <h5>O que é Adoção?</h5>
            <div class="text-justify">É um ato de amor. E dedicar-se a outro ser vivo, dando-lhe afeto, cuidados e atenção, é parte disso. É uma alegria ver como cães e gatos têm conquistado um lar acolhedor, que os protege dos maus tratos das ruas.</div><br>
            <h5>O que é Apadrinhamento?</h5>
            <div class="text-justify">Por vezes por questões pessoais, ter um animal poderá ser complicado. Se for o seu caso poderá apadrinhar um animal. Tendo um papel importante, ajudando com as despesas e contribuindo diretamente para a sua protecção e bem-estar sem ter que o levar para a sua casa.</div>
          </div>
          <!-- Fim Accordion -->

 
        </div>
        <!-- /.col-lg-3 -->

        <div class="col-lg-9">

          <div id="carouselExampleIndicators" class="carousel slide my-4" data-ride="carousel">
            <ol class="carousel-indicators">
              <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
            </ol>
            <div class="carousel-inner" role="listbox">
              <div class="carousel-item active">
                <img class="d-block img-fluid" src="backend/imagens/centralanimal.png" alt="First slide">
              </div>
            </div>
            <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
              <span class="carousel-control-prev-icon" aria-hidden="true"></span>
              <span class="sr-only">Previous</span>
            </a>
            <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
              <span class="carousel-control-next-icon" aria-hidden="true"></span>
              <span class="sr-only">Next</span>
            </a>
          </div>
    
<div class="row">

  <?php

    if ($total > 0 && $linha['status_animal'] == 1) {
      do {
  ?>
  
  <div class="col-lg-4 mb-2">
    <div class="card">
      <a href="backend/fotos/<?=$linha['foto1_animal']?>" rel="lightbox"><img class="card-img-top img-responsive" src="backend/fotos/<?=$linha['foto1_animal']?>" alt="<?=$linha['nome_animal']?>" width="500px" height="200px"></a>
    <div class="card-body">
      <h6 class="card-title">
        <p>Nome: <a href="#"><?=$linha['nome_animal']?></a></p>
        <p>Espécie: <?=$linha['nome_especie']?></p>Raça: <?=$linha['raca_nome']?></p>
        <p>Cor: <?=$linha['nome_cor']?></p>
        <p>Porte: <?=$linha['nome_porte']?></p>
        <p>Idade: <?=$linha['idade_animal']?></p>

    <div class="row">
        <div>
          <!-- INICIO FORMULARIO BOTAO PAGSEGURO -->
          <form action="https://pagseguro.uol.com.br/checkout/v2/donation.html" method="post">
          <!-- NÃO EDITE OS COMANDOS DAS LINHAS ABAIXO -->
            <input type="hidden" name="currency" value="BRL" />
            <input type="hidden" name="receiverEmail" value="emmanuelsiqueira30@gmail.com" />
            <input type="hidden" name="iot" value="button" />
            <button type="submit" class="btn btn-primary btn-sm"><b>APADRINHAR</b></button></a>
          </form>
          <!-- FINAL FORMULARIO BOTAO PAGSEGURO -->              
        </div>
         
        <div>
         <a href='adotarusuario.php?id_animal=<?=$linha['id_animal']?>'><button type="submit" name="botaoadotar" class="btn btn-success btn-sm"><b>ADOTAR</b></button></a>
        </div>


    </div>
   
    </div>
    </div>

</div>
  <?php   
      } while ($linha = mysqli_fetch_assoc($dados));
      
    } //fim if
  ?>


          </div>
          <!-- /.row -->

        </div>
        <!-- /.col-lg-9 -->

      </div>
      <!-- /.row -->

    </div>
    <!-- /.container -->
<div class="container">
  <div class="row">
 <?php
       //exibe a paginação 
      for($i = 1; $i < $numPaginas + 1; $i++) { 
          echo "Páginas: "."<a href='index.php?pagina=$i'>".$i."</a> "; 
      } 
    ?>
</div>
</div>
    <!-- Footer -->
    <footer class="py-5 bg-dark">
      <div class="container">
        <p class="m-0 text-center text-white">Copyright &copy; Adoção Animal 2017</p>
      </div>
      <!-- /.container -->
    </footer>

<!-- -->
<script src="backend/js/jquery-ui-1.12.1/external/jquery/jquery.js"></script>
<script src="backend/js/jquery-ui-1.12.1/jquery-ui.js"></script>
<script>

$( "#accordion" ).accordion();



var availableTags = [
  "ActionScript",
  "AppleScript",
  "Asp",
  "BASIC",
  "C",
  "C++",
  "Clojure",
  "COBOL",
  "ColdFusion",
  "Erlang",
  "Fortran",
  "Groovy",
  "Haskell",
  "Java",
  "JavaScript",
  "Lisp",
  "Perl",
  "PHP",
  "Python",
  "Ruby",
  "Scala",
  "Scheme"
];
</script>
    <!-- Bootstrap core JavaScript -->
    <script src="vendor/jquery/jquery.min.js"></script>
    <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>


  </body>

</html>

ADOTARUSUARIO.PHP

<?php

$id_animal = $_GET['id_animal'];

include("sessaousuario.php");
$usuario = $_SESSION['email'];

include("backend\conexao.php");

$query = "SELECT * FROM animal WHERE id_animal = '$id_animal'";

$dados = mysqli_query($con,$query);
$linha = mysqli_fetch_assoc($dados);

$query1 = "SELECT * FROM usuario WHERE email = '$usuario'";

$dados1 = mysqli_query($con,$query1);
$linha1 = mysqli_fetch_assoc($dados1);

?>

<!DOCTYPE html>
<html>
<head>

  <title>Adotar animal - Adoção animal</title>

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">

</head>
<body>
  <div class="container-fluid">
    <div class="form-row">

          <div class="form-inline col-xs-12">
            
             <p><h2>Adotar animal</h2></p>
            
            <form action="backend\adocao.php" method="post">
              
              <p><h2>Dados do usuário</h2></p>
              <hr>

              <input type="hidden" name="id_usuario" value="<?=$linha1['id_usuario']?>">

              <div class="form-group"><br/>
              <label for="nome">Nome:</label>
                <input type="text" class="form-control" name="nome_usuario" value="<?=$linha1['nome']?>" Disabled="true">
              </div>

              <div class="form-group"><br/>
                <label for="cpf">CPF:</label>
                <input type="text" class="form-control" name="cpf_usuario" value="<?=$linha1['cpf']?>" Disabled="true">
              </div>

              <p><h2>Dados do animal</h2></p>
              <hr>

              <input type="hidden" name="id_animal" value="<?=$linha['id_animal']?>">

              <div class="form-group"><br/>
                <label for="cpf">Nome:</label>
                <input type="text" class="form-control" name="nome_animal" value="<?=$linha['nome_animal']?>" Disabled="true">
              </div>

              <div class="form-group"><br/>
                <label for="idade">Idade</label>
                <input type="text" class="form-control" name="idade_animal" value="<?=$linha['idade_animal']?>" Disabled="true">
              </div>

              <!-- 0-Em processo 1-Adotado -->
            <input type="hidden" name="status_adocao" value="0">
            
            <br/>
            <div class="form-group"><br/>
              <button type="submit" name="botao" class="btn btn-primary">Solicitar Adoção</button>
            </div>

            

        </div>
      </form>

</body>
</html>

 

ADOCAO.PHP

<?php
	
	include("conexao.php");

	$data = date("Y-m-d");
	$id_usuario = $_POST['id_usuario'];
	$id_animal = $_POST['id_animal'];
	$status_adocao = $_POST['status_adocao'];

	$sql = "INSERT INTO adocao (data_adocao, fk_animal_adocao, fk_usuario_adocao, status_adocao) VALUES ('$data','$id_animal','$id_usuario','$status_adocao')";
	
	$result = mysqli_query($con,$sql);

	if ($result) {
		echo "<SCRIPT LANGUAGE='JavaScript' TYPE='text/javascript'>alert('A solicitação de adoção foi realizada com sucesso. A equipe do Adota animal Recife irá entrar em contato para mais informações ou ligue para (81) 3424-7845.')</SCRIPT>";
		echo "<meta http-equiv='refresh' content=1;url='../index.php'>";
	} 
	else {
		echo "<SCRIPT LANGUAGE='JavaScript' TYPE='text/javascript'>alert('Cada usuário só pode participar de um processo de doação por vez.')</SCRIPT>";
		echo "<meta http-equiv='refresh' content=0;url='../index.php'>";
	}

	echo $erro = mysqli_error($con,$sql);
	$con->close();

?>

 

SESSAOUSUARIO.PHP

<?php

/* esse bloco de código em php verifica se existe a sessão, pois o usuário pode simplesmente não fazer o login e digitar na barra de endereço do seu navegador o caminho para a página principal do site (sistema), burlando assim a obrigação de fazer um login, com isso se ele não estiver feito o login não será criado a session, então ao verificar que a session não existe a página redireciona o mesmo para a index.php.*/
session_start();

if((!isset ($_SESSION['email']) == true) and (!isset ($_SESSION['senha']) == true))
{
	
	unset($_SESSION['email']);
	unset($_SESSION['senha']);
	echo "<SCRIPT LANGUAGE='JavaScript' TYPE='text/javascript'>alert('Você não possui autorização para acessar esta página.')</SCRIPT>";
	echo "<meta http-equiv='refresh' content=1;url='autenticacao.php'>";
} else {
	
	$logado = $_SESSION['email'];

}

?>

 

AUTENTICACAO.PHP

<!DOCTYPE html>
<html>

<head>

  <title>Login</title>

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">

</head>

<body>
<style type="text/css">

  @CHARSET "UTF-8";
/*
over-ride "Weak" message, show font in dark grey
*/

.progress-bar {
    color: #333;
} 

/*
Reference:
http://www.bootstrapzen.com/item/135/simple-login-form-logo/
*/

* {
    -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
  outline: none;
}

    .form-control {
    position: relative;
    font-size: 16px;
    height: auto;
    padding: 10px;
    @include box-sizing(border-box);

    &:focus {
      z-index: 2;
    }
  }

body {
  background: url(http://i.imgur.com/GHr12sH.jpg) no-repeat center center fixed;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}

.login-form {
  margin-top: 60px;
}

form[role=login] {
  color: #5d5d5d;
  background: #f2f2f2;
  padding: 26px;
  border-radius: 10px;
  -moz-border-radius: 10px;
  -webkit-border-radius: 10px;
}
  form[role=login] img {
    display: block;
    margin: 0 auto;
    margin-bottom: 35px;
  }
  form[role=login] input,
  form[role=login] button {
    font-size: 18px;
    margin: 16px 0;
  }
  form[role=login] > div {
    text-align: center;
  }
  
.form-links {
  text-align: center;
  margin-top: 1em;
  margin-bottom: 50px;
}
  .form-links a {
    color: #fff;
  }  


</style>

<div class="container">
  
  <div class="row" id="pwd-container">
    <div class="col-md-4"></div>
    
    <div class="col-md-4">
      <section class="login-form">
        <form method="post" action="loginusuario.php" role="login">
          
          <h4>ADOÇÃO ANIMAL RECIFE</h4>
          <input type="email" name="email" placeholder="Email" required class="form-control input-lg" />
          
          <input type="password" class="form-control input-lg" name="senha" id="senha" placeholder="Senha" required="enabled" />
          
          
          <div class="pwstrength_viewport_progress"></div>
          
          
          <button type="submit" name="go" class="btn btn-lg btn-primary btn-block">Entrar</button>
          <div>
            Já tem uma conta? <a href="cadastro_usuario.php" target="_blank">Criar conta</a>
          </div>
          
        </form>
        
        <div class="form-links">
          <a href="#">www.adocaoanimalrecife.com.br</a>
        </div>
      </section>  
      </div>
      
      <div class="col-md-4"></div>
      

  </div>
  
</div>

</body>
</html>

LOGINUSUARIO.PHP

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

// as variáveis login e senha recebem os dados digitados na página anterior
$email = ($_POST['email']);
$senha = ($_POST['senha']);

// as próximas 3 linhas são responsáveis em se conectar com o bando de dados.
include("backend\conexao.php");

// A variavel $result pega as varias $login e $senha, faz uma pesquisa na tabela de usuarios
$result = mysqli_query($con,"SELECT * FROM usuario WHERE email = '$email' AND senha = '$senha'");

/* Logo abaixo temos um bloco com if e else, verificando se a variável $result foi bem sucedida, ou seja se ela estiver encontrado algum registro idêntico o seu valor será igual a 1, se não, se não tiver registros seu valor será 0. Dependendo do resultado ele redirecionará para a pagina site.php ou retornara  para a pagina do formulário inicial para que se possa tentar novamente realizar o login */
if(mysqli_num_rows ($result) > 0 )
{

$_SESSION['email'] = $email;
$_SESSION['senha'] = $senha;
header('Location: index.php');
}
else{
	unset ($_SESSION['email']);
	unset ($_SESSION['senha']);
	echo "<SCRIPT LANGUAGE='JavaScript' TYPE='text/javascript'>alert('Usuário ou senha incorretos.')</SCRIPT>";
	echo "<meta http-equiv='refresh' content=1;url='index.php'>";
	header('Location: index.php');
	
	}

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse trecho aqui ta em que parte do seu código?

<?php

/* esse bloco de código em php verifica se existe a sessão, pois o usuário pode simplesmente não fazer o login e digitar na barra de endereço do seu navegador o caminho para a página principal do site (sistema), burlando assim a obrigação de fazer um login, com isso se ele não estiver feito o login não será criado a session, então ao verificar que a session não existe a página redireciona o mesmo para a index.php.*/
session_start();

if((!isset ($_SESSION['email']) == true) and (!isset ($_SESSION['senha']) == true))
{
	
	unset($_SESSION['email']);
	unset($_SESSION['senha']);
	echo "<SCRIPT LANGUAGE='JavaScript' TYPE='text/javascript'>alert('Você não possui autorização para acessar esta página.')</SCRIPT>";
	echo "<meta http-equiv='refresh' content=1;url='autenticacao.php'>";
} else {
	
	$logado = $_SESSION['email'];

}

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, BrunoBit disse:

Esse trecho aqui ta em que parte do seu código?


<?php

/* esse bloco de código em php verifica se existe a sessão, pois o usuário pode simplesmente não fazer o login e digitar na barra de endereço do seu navegador o caminho para a página principal do site (sistema), burlando assim a obrigação de fazer um login, com isso se ele não estiver feito o login não será criado a session, então ao verificar que a session não existe a página redireciona o mesmo para a index.php.*/
session_start();

if((!isset ($_SESSION['email']) == true) and (!isset ($_SESSION['senha']) == true))
{
	
	unset($_SESSION['email']);
	unset($_SESSION['senha']);
	echo "<SCRIPT LANGUAGE='JavaScript' TYPE='text/javascript'>alert('Você não possui autorização para acessar esta página.')</SCRIPT>";
	echo "<meta http-equiv='refresh' content=1;url='autenticacao.php'>";
} else {
	
	$logado = $_SESSION['email'];

}

?>

 

 

SESSAOUSUARIO.PHP e utilizei o include nos arquivos php.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 09/01/2018 at 22:52, BrunoBit disse:

Testei seu código e ta funcionando normalmente.

 

Então BrunoBit esse é o problema, porque localmente com o xampp está funcionando perfeitamente, mas no serviço de hospedagem está voltando pra página início e quando clico novamente em adotar mostra a mensagem "Você não possui autorização para acessar esta página." que se localiza no arquivo sessaousuario.php.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 12/01/2018 at 07:27, Vinicius Ianni disse:

O usuário que está sendo usado para teste está cadastrado no banco de dados do serviço de hospedagem ?

Sim, está.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.