Ir para conteúdo

POWERED BY:

Arquivado

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

kamada

Enviar dados de formulário para E-mail

Recommended Posts

Olá galera.

Sou iniciante em PHP e preciso da ajuda de vocês para enviar dados de um formulário em HTML para um e-mail.

Andei vendo algumas coisas na internet, e vi que é melhor desenvolver com a biblioteca phpmailer, porém não obtive sucesso.

 

Abaixo algumas dúvidas:

Como faço para enviar os dados do formulário para o gmail?

Quando é domínio próprio(meuemail@site.com.br) como consigo o usuário e a senha do servidor?

 

Abaixo os códigos:

 

Segue o formulários em HTML (o formulário esta sem estilização, pois no momento o importante é a funcionalidade do mesmo)

<html>
<head>
<title>TESTE CONTATO</title>
</head>
<body>
<form action="email.php" method="post">
	<label for="Nome">Nome:</label>
	<input type="text" name="Nome" size="35" /><br>

	<label for="Email">E-mail:</label>
	<input type="text" name="Email" size="35" /><br>

	<label for="Fone">Telefone:</label>
	<input type="text" name="Fone" size="35" /><br>

	<label for="Mensagem">Mensagem:</label>
	<textarea name="Mensagem" rows="8" cols="40"></textarea><br>

	<input type="submit" name="Enviar" value="Enviar" />
</form>
</body>
</html>

Segue o formulário PHP(se possível me ajudem corrigindo o que esta errado e porque esta errado)

<?php
$Nome		= $_POST["Nome"];	// Pega o valor do campo Nome
$Fone		= $_POST["Fone"];	// Pega o valor do campo Telefone
$Email		= $_POST["Email"];	// Pega o valor do campo Email
$Mensagem	= $_POST["Mensagem"];	// Pega os valores do campo Mensagem

// Variável que junta os valores acima e monta o corpo do email

$Vai 		= "Nome: $Nome\n\nE-mail: $Email\n\nTelefone: $Fone\n\nMensagem: $Mensagem\n";

require_once("phpmailer/class.PHPMailerAutoLoad.php");

define('GUSER', 'meuemail@gmail.com');	// <-- Insira aqui o seu GMail
define('GPWD', 'minhasenhadogmail');		// <-- Insira aqui a senha do seu GMail

function smtpmailer($para, $de, $de_nome, $assunto, $corpo) { 
	global $error;
	$mail = new PHPMailer();
	$mail->IsSMTP();		// Ativar SMTP
	$mail->SMTPDebug = 0;		// Debugar: 1 = erros e mensagens, 2 = mensagens apenas
	$mail->SMTPAuth = true;		// Autenticação ativada
	$mail->SMTPSecure = 'ssl';	// SSL REQUERIDO pelo GMail
	$mail->Host = 'smtp.gmail.com';	// SMTP utilizado
	$mail->Port = 587;  		// A porta 587 deverá estar aberta em seu servidor
	$mail->Username = GUSER;
	$mail->Password = GPWD;
	$mail->SetFrom($de, $de_nome);
	$mail->Subject = $assunto;
	$mail->Body = $corpo;
	$mail->AddAddress($para);
	if(!$mail->Send()) {
		$error = 'Mail error: '.$mail->ErrorInfo; 
		return false;
	} else {
		$error = 'Mensagem enviada!';
		return true;
	}
}

// Insira abaixo o email que irá receber a mensagem, o email que irá enviar (o mesmo da variável GUSER), 
//o nome do email que envia a mensagem, o Assunto da mensagem e por último a variável com o corpo do email.

 if (smtpmailer('contato@site.com.br', 'meugmail@gmail.com', 'Enviador', 'Assunto', $Vai)) {

	Header("location:http://www.dominio.com.br/obrigado.html"); // Redireciona para uma página de obrigado.

}
if (!empty($error)) echo $error;
?>

Desde já agradeço a atenção e a colaboração de todos.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é o problema exatamente? Dá erro? Qual?

 

Lembre-se de habilitar todas as exibições de erro, como mostrado neste tópico

 

Também deixe SMTPDebug em 1 em vez de 0. Vai ajudar no debug do código, até fazê-lo funcionar 100%

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade não aparece erro nenhum.
Quando eu clico em enviar, o código PHP aparece na minha tela do navegador rsrs'

 

Eu gostaria que me ajudassem a fazer funcionar o código pra enviar o e-mail.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro faça este teste:

 

crie um arquivo com este conteúdo:

 

<?php
phpinfo();
?>

 

salve-o como phpinfo.php (ou qualquer outro nome, desde que tenha a extensão ".php") e abra-o em seu servidor local

 

Deve aparecer algo como esta imagem:

 

phpinfo.jpg

 

Se continuar aparecendo o conteúdo do arquivo, o problema é com a instalação do PHP

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho o phpMailer uma boa opção para envio de emails, para configurar o phpMailer de acordo com o servidor de email da sua hospedagem você tem que ver com a hospedagem(rsrsrs), geralmente eles tem um blog ou algo do tipo com os dados para você configurar (geralmente a Locaweb, King Host, Hostgator tem!).

 

Mas acho que uma dica que pode te ajudar com o seu código atual é mudar o valor de $mail->SMTPAuth para false e verificar a porta, se não me engano, é possível que dessa forma nem seja necessário a senha.... mas de qq forma precisa verificar com a hospedagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, fiz o que você disse e apareceu essa tela das informações do php instalado...

Creio que não seja problema no php, pois tentei com outros códigos que peguei na internet e não aparecia o código php ao clicar em enviar.

O código php acima esta correto?

Falta alguma coisa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho o phpMailer uma boa opção para envio de emails, para configurar o phpMailer de acordo com o servidor de email da sua hospedagem você tem que ver com a hospedagem(rsrsrs), geralmente eles tem um blog ou algo do tipo com os dados para você configurar (geralmente a Locaweb, King Host, Hostgator tem!).

 

Mas acho que uma dica que pode te ajudar com o seu código atual é mudar o valor de $mail->SMTPAuth para false e verificar a porta, se não me engano, é possível que dessa forma nem seja necessário a senha.... mas de qq forma precisa verificar com a hospedagem.

Entrei em contato com o pessoal da hospedagem e pedi os dados smtp e pop e também as portas.

E já verifiquei também a questão do usuário.

O usuário pode ser usado o e-mail e senha que uso pra entrar no webmail.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É estranho você dizer que o phpinfo() funciona e o email.php exibe o código PHP na tela... é como se o PHP não fosse executado e o código fosse processado como .txt

 

Aparentemente, o código parece correto

Em vez de enviar o form, acesse o email.php diretamente pelo navegador. Deve aparecer erros, principalmente por causa de $_POST. Veja se ocorre isso ou se o código é exibido na tela de novo

Compartilhar este post


Link para o post
Compartilhar em outros sites

É estranho você dizer que o phpinfo() funciona e o email.php exibe o código PHP na tela... é como se o PHP não fosse executado e o código fosse processado como .txt

 

Aparentemente, o código parece correto

Em vez de enviar o form, acesse o email.php diretamente pelo navegador. Deve aparecer erros, principalmente por causa de $_POST. Veja se ocorre isso ou se o código é exibido na tela de novo

Apareceu os erros.

Segue a SS.

 

Vou tentar fazer o seguinte...

Pegar um outro formulário que tenho aqui e tentar implementar esse email.php nele.

O que você acha?fkxq1y.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

É estranho você dizer que o phpinfo() funciona e o email.php exibe o código PHP na tela... é como se o PHP não fosse executado e o código fosse processado como .txt

 

Aparentemente, o código parece correto

Em vez de enviar o form, acesse o email.php diretamente pelo navegador. Deve aparecer erros, principalmente por causa de $_POST. Veja se ocorre isso ou se o código é exibido na tela de novo

Como dito, troquei de formulário.

Segue SS(ignorem a ausência do charset utf-8 rsrs)

kzDJ19A.jpg

 

Segue o código em HTML do novo formulário.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">	
	<!-- Import Google Font - Yanone Kaffeesatz  -->	
	<link href='http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz' rel='stylesheet' type='text/css' />
 
	<title> ..Seja nosso REPRESENTANTE COMERCIAL..</title> 
	<!--SCRIPT ROLAGEM DE TEXTO - INICIO-->
		<script type="text/javascript"> 
			<!--

			// (0=zero)fica direto, (1)rola uma vez. 
			var repeat=0
			var title=document.title
			var leng=title.length
			var start=1
			function titlemove() {
			titl=title.substring(start, leng) + title.substring(0, start)
			document.title=titl
			start++
			if (start==leng+1) {
			start=0
			if (repeat==1)
			return
			}
			//velocidade regule no 140
			setTimeout("titlemove()",140)
			}
			if (document.title)
			titlemove()

			//-->
		</script>
	<!--SCRIPT ROLAGEM DE TEXTO - FIM--> 

	<style type="text/css"> 
	
	* { margin: 0px; padding: 0px; }
	
	body { 
		margin: 0 auto; 
		background: #f5f5f5; 	
		color: #555;	 
		width: 800px; 
				
		/* make reference to the Yanone Kaffeesatz font */
		font-family: 'Yanone Kaffeesatz', arial, sans-serif;
	}
	
	h1 { 
		color: #555; 
		margin: 0 0 20px 0; 
	}	
		
	label {	
		font-size: 20px;
		color: #666; 
	}
	
	form, select { 
		float: left;
		border: 1px solid #ddd; 
		padding: 30px 40px 20px 40px; 
		margin: 75px 0 0 0;
		width: 715px;
		background: #fff;
				
		/* -- CSS3 - define rounded corners for the form -- */	
		-webkit-border-radius: 10px;
		-moz-border-radius: 10px;
		border-radius: 10px; 		
		
		/* -- CSS3 - create a background graident -- */
		background: -webkit-gradient(linear, 0% 0%, 0% 40%, from(#EEE), to(#FFFFFF)); 
		background: -moz-linear-gradient(0% 40% 90deg,#FFF, #EEE); 
		
		/* -- CSS3 - add a drop shadow -- */
		-webkit-box-shadow:0px 0 50px #ccc;
		-moz-box-shadow:0px 0 50px #ccc; 
		box-shadow:0px 0 50px #ccc;		 		
	}	
	
	fieldset, select { border: none; }
	
	#user-details { 
		float: left;
		width: 230px; 
	}
	
	#user-message { 
		float: right;
		width: 405px;
	}
	
	input, textarea, select { 		
		padding: 8px; 
		margin: 4px 0 20px 0; 
		background: #fff; 
		width: 220px; 
		font-size: 14px; 
		color: #555; 
		border: 1px #ddd solid;
		
		/* -- CSS3 Shadow - create a shadow around each input element -- */ 
		-webkit-box-shadow: 0px 0px 4px #aaa;
		-moz-box-shadow: 0px 0px 4px #aaa; 
		box-shadow: 0px 0px 4px #aaa;
		
		/* -- CSS3 Transition - define what the transition will be applied to (i.e. the background) -- */		
		-webkit-transition: background 0.3s linear;							
	}
	
	textarea {		
		width: 390px; 
		height: 175px; 		 		
	}
	
	input:hover, textarea:hover { 
		background: #eee; 
	}
		
	input.submit { 	
		width: 150px; 
		color: #eee; 
		text-transform: uppercase; 
		margin-top: 10px;
		background-color: #18a5cc;
		border: none;
		
		/* -- CSS3 Transition - define which property to animate (i.e. the shadow)  -- */
		-webkit-transition: -webkit-box-shadow 0.3s linear;
		
		/* -- CSS3 - Rounded Corners -- */
		-moz-border-radius: 4px; 
		-webkit-border-radius: 4px;
		border-radius: 4px; 
						
		/* -- CSS3 Shadow - create a shadow around each input element -- */ 
		background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#18a5cc), to(#0a85a8)); 
		background: -moz-linear-gradient(25% 75% 90deg,#0a85a8, #18a5cc);		
	} 
	
	input.submit:hover { 		
		-webkit-box-shadow: 0px 0px 20px #555;
		-moz-box-shadow: 0px 0px 20px #aaa; 
		box-shadow: 0px 0px 20px #555;	
		cursor:  pointer; 
	} 		
				
	</style> 
	
</head> 
 
<body> 
	
	<form name="formulario_contato" id="formulario_contato "method="post" action="email.php"> 
	
		<h1>Seja um representante da METTAG ETIQUETAS!</h1>
				
		<fieldset id="user-details">	
			
			<label for="nome">Nome:</label>
			<input type="text" name="nome" id="nome" value="" placeholder="Digite seu nome completo" /> 
		
			<label for="email">E-mail:</label> 
			<input type="email" name="email" value="" placeholder="Digite seu E-mail"  /> 
		
			<label for="fone">Fone:</label> 
			<input type="text" name="fone" id="fone" value="" placeholder="Digite seu telefone"  /> 
		
			<label for="regiao">Região que deseja atuar:</label> 
			<select name="estado"> 
				<option value="estado">Selecione o Estado</option> 
				<option value="ac">Acre</option> 
				<option value="al">Alagoas</option> 
				<option value="am">Amazonas</option> 
				<option value="ap">Amapá</option> 
				<option value="ba">Bahia</option> 
				<option value="ce">Ceará</option> 
				<option value="df">Distrito Federal</option> 
				<option value="es">Espírito Santo</option> 
				<option value="go">Goiás</option> 
				<option value="ma">Maranhão</option> 
				<option value="mt">Mato Grosso</option> 
				<option value="ms">Mato Grosso do Sul</option> 
				<option value="mg">Minas Gerais</option> 
				<option value="pa">Pará</option> 
				<option value="pb">Paraíba</option> 
				<option value="pr">Paraná</option> 
				<option value="pe">Pernambuco</option> 
				<option value="pi">Piauí</option> 
				<option value="rj">Rio de Janeiro</option> 
				<option value="rn">Rio Grande do Norte</option> 
				<option value="ro">Rondônia</option> 
				<option value="rs">Rio Grande do Sul</option> 
				<option value="rr">Roraima</option> 
				<option value="sc">Santa Catarina</option> 
				<option value="se">Sergipe</option> 
				<option value="sp">São Paulo</option> 
				<option value="to">Tocantins</option> 
			</select>
			
		
		</fieldset><!--end user-details-->
		
		<fieldset id="user-message">
		
			<label for="mensagem">Mensagem:</label> 
			<textarea name="mensagem" id="mensagem" rows="0" placeholder="Digite sua mensagem" cols="0"></textarea> 
		
			<input type="submit" value="Enviar" name="submit" class="submit" />	
		
		</fieldset><!-- end user-message -->
		 
	</form>

</body> 
</html> 

Agora parou de aparecer o código na tela do navegador, porém quando eu clico em "ENVIAR" não acontece nada, o navegador fica processando o pedido, como se entrasse num LOOP INFINITO...

Vocês podem observar no canto inferior esquerdo da foto do formulário que esta escrito "AGUARDANDO METTAG.COM.BR" e fica só naquilo.

Se quiser fazer o teste você mesmo, entre no site:

http://www.mettag.com.br e clique em "SEJA NOSSO REPRESENTANTE" preencha o formulário e teste.

O que pode ser?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se consegue fazer o debug dentro do if que redireciona para página de sucesso.

Por exemplo

 

 

if (smtpmailer('contato@site.com.br', 'meugmail@gmail.com', 'Enviador', 'Assunto', $Vai)) {

    var_dump($yourVar);
    exit;

}else{
 
    echo "Something is wrong!";
    exit;
 
}

 

Porque assim você consegue interromper o fluxo e debugar o programa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retire o header(). Até encontrar o problema, não redirecione.

Use echo e var_dump(), como sugerido

 

Também dê echo em $error dentro da função. Você imprimiu o valor dela fora da função. Ela é uma variável local à função e só existirá dentro dela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa assim e vê o que aparece:

<?php
$Nome   = $_POST["nome"]; // Pega o valor do campo Nome
$Fone   = $_POST["fone"]; // Pega o valor do campo Telefone
$Email    = $_POST["email"];  // Pega o valor do campo Email
$Mensagem = $_POST["mensagem"]; // Pega os valores do campo Mensagem

// Variável que junta os valores acima e monta o corpo do email

$Vai    = "Nome: $Nome\n\nE-mail: $Email\n\nTelefone: $Fone\n\nMensagem: $Mensagem\n";

require_once("phpmailer/class.PHPMailerAutoLoad.php");

define('GUSER', 'meuemail@gmail.com');  // <-- Insira aqui o seu GMail
define('GPWD', 'minhasenhadogmail');    // <-- Insira aqui a senha do seu GMail

function smtpmailer($para, $de, $de_nome, $assunto, $corpo) { 
  global $error;
  $mail = new PHPMailer();
  $mail->IsSMTP();    // Ativar SMTP
  $mail->SMTPDebug = 0;   // Debugar: 1 = erros e mensagens, 2 = mensagens apenas
  $mail->SMTPAuth = true;   // Autenticação ativada
  $mail->SMTPSecure = 'ssl';  // SSL REQUERIDO pelo GMail
  $mail->Host = 'smtp.gmail.com'; // SMTP utilizado
  $mail->Port = 587;      // A porta 587 deverá estar aberta em seu servidor
  $mail->Username = GUSER;
  $mail->Password = GPWD;
  $mail->SetFrom($de, $de_nome);
  $mail->Subject = $assunto;
  $mail->Body = $corpo;
  $mail->AddAddress($para);
  if(!$mail->Send()) {
    $error = 'Mail error: '.$mail->ErrorInfo; 
    echo $error;
    return false;
  } else {
    $error = 'Mensagem enviada!';
    return true;
  }
}

smtpmailer('contato@site.com.br', 'meugmail@gmail.com', 'Enviador', 'Assunto', $Vai);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal consegui resolver o problema

Tinha vários errinhos, desde erros de sintaxe até erros semânticos.

Fora esses erros tive que trocar o phpmailer e deixar o require somente no phpmailerautoload.

require_once("phpmailer/PHPMailerAutoload.php");

Também alterei o SMTPSecure para TLS, pois estava SSL

$mail->SMTPSecure = 'tls'; 

Segue código PHP completo:

<?php
$nome   = $_POST["nome"]; // Pega o valor do campo Nome
$fone   = $_POST["fone"]; // Pega o valor do campo Telefone
$email    = $_POST["email"];  // Pega o valor do campo Email
$estado = $_POST["estado"]; // Pega o valor do campo estado
$mensagem = $_POST["mensagem"]; // Pega os valores do campo Mensagem

// Variável que junta os valores acima e monta o corpo do email

$Vai    = "Nome: $nome\n\nE-mail: $email\n\nTelefone: $fone\n\nMensagem: $mensagem\n\nRegião que deseja atuar: $estado";


require_once("phpmailer/PHPMailerAutoload.php");

define('GUSER', 'meuemail@gmail.com');  // <-- Insira aqui o seu GMail
define('GPWD', 'minhasenhagmail');    // <-- Insira aqui a senha do seu GMail

function smtpmailer($para, $de, $de_nome, $assunto, $corpo) { 
  global $error;
  $mail = new PHPMailer();
  $mail->IsSMTP();    // Ativar SMTP
  $mail->SMTPDebug = 0;   // Debugar: 1 = erros e mensagens, 2 = mensagens apenas
  $mail->SMTPAuth = true;   // Autenticação ativada
  $mail->SMTPSecure = 'tls';  // tsl REQUERIDO pelo GMail
  $mail->Host = 'smtp.gmail.com'; // SMTP utilizado
  $mail->Port = 587;      // A porta 587 deverá estar aberta em seu servidor
  $mail->Username = GUSER;
  $mail->Password = GPWD;
  $mail->SetFrom($de, $de_nome);
  $mail->Subject = $assunto;
  $mail->Body = $corpo;
  $mail->AddAddress($para);
  if(!$mail->Send()) {
    $error = 'Mail error: '.$mail->ErrorInfo; 
    echo $error;
    return false;
  } else {
    $error = 'Mensagem enviada!';
    return true;
  }
}

smtpmailer('contato@meudominio.com.br', 'meugmail@gmail.com', 'Enviador', 'Assunto', $Vai);

Header("location:http://www.obrigado.com.br"); // Redireciona para uma página de obrigado.

?> 

O código PHP acima esta 100% funcional, quem quiser usar, fique a vontade!

 

Obrigado a todos que ajudaram.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
    • 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
×

Informação importante

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