Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Louvato

Gerar nova Senha :Warning: mysqli_query() expects parameter 1 to be

Recommended Posts

Olá, estou ativando um antigo código PHP.  Já tentei resolver com a troca de mysql_query()  para mysqli_query().

Onde iniciou erro que não consigo arrumar. Sei que no caso de mysqli_query() devo colocar o parametro no início: $conecta( no meu caso).

Se alguem puder me dar um paremetro para estudar , eu agradeço.

A finalidade é gerar uma nova senha. Manda automaticamente uma senha randômica e já troca automaticamente no banco de dados.

 

ERRO: 

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home/copam957/public_html/copa1/gerar_nova_senha.php on line 35

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /home/copam957/public_html/copa1/gerar_nova_senha.php on line 36
Este email não é cadastrado em nosso banco de dados.

Segui código:

 

<?php

include "conecta.php";
mysqli_set_charset($conecta, "utf8");

$recupera = $_POST['recupera'];
$email = $_POST['email'];

switch($recupera){

	case "recupera":
		recupera_senha($email);
		break;

	default:
		include "formulario_senha_perdida.html";
		break;
}

function recupera_senha($email){

	if(!isset($email)){

        echo "Você esqueceu de preencher seu email.<br />
			<strong>Use o mesmo email que utilizou em seu cadastro.</strong><br /><br />"; 

		include "formulario_senha_perdida.html";

		exit();

	}

	// Checando se o email informado está cadastrado
		
	$sql_check = mysqli_query($conecta, "SELECT * FROM usuario WHERE email='{$email}'");
	$sql_check_num = mysqli_num_rows($sql_check);

	if($sql_check_num == 0){

		echo "Este email não é cadastrado em nosso banco de dados.<br /><br />";

		include "formulario_senha_perdida.html";

		exit();

	}
	
	// Se tudo OK vamos gerar uma nova senha e enviar para o email do usu⳩o!

	function makeRandomPassword(){

		$salt = "abchefghjkmnpqrstuvwxyz0123456789";
		srand((double)microtime()*1000000);

		$i = 0;

		while ($i <= 7){

			$num = rand() % 33;
			$tmp = substr($salt, $num, 1);
			$pass = $pass . $tmp;
			$i++;

		}

		return $pass;

	}

	$senha_randomica = makeRandomPassword();

	$senha = md5($senha_randomica);

	$sql = mysqli_query($conecta, "UPDATE usuario SET senha='{$senha}' WHERE email ='{$email}'");

	$headers = "MIME-Version: 1.0\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1\n";
	$headers .= "From: MKYS - 1Copa MKYS de Jiu Jitsu.<contato@copamkys.com.br>"; //COLOQUE TEU EMAIL

	$subject = "Sua nova senha no site COPA MKYS";
	$message = "Olá, redefinimos sua senha.<br /><br />

	<strong>Nova Senha</strong>: {$senha_randomica}<br /><br />

	<a href='http://www.copamkys.com.br/copa1/index.php'>http://www.copamkys.com.br/copa1/index.php</a><br /><br />

	Obrigado!<br /><br />

	Carlos Louvato (Organização)<br /><br /><br />


	Esta é uma mensagem automática, por favor não responda!";

	mail($email, $subject, $message, $headers);

	echo "<script language=javascript>alert( 'EMAIL ENVIADO COM SUCESSO! VERIFIQUE SEU E-MAIL!!' );location.href='index.php';</script>";


}

?>

Lembrando que o email de recuperação vem de um formulario HTML.

Grato a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique:

1. se esta instalada a extensao mysqli (pesquise sobre phpinfo());

2. o que ha na variavel $conecta

(poste o arquivo conecta.php ou pesquise sobre mysqli_connect)

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 minutos atrás, Fernando C disse:

verifique:

1. se esta instalada a extensao mysqli (pesquise sobre phpinfo());

2. o que ha na variavel $conecta

(poste o arquivo conecta.php ou pesquise sobre mysqli_connect)

Olá,  segui codigo $conecta

 

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_conecta = "localhost";
$database_conecta = "copam957_****";
$username_conecta = "copam957_root";
$password_conecta = "*******";
$conecta = mysqli_connect($hostname_conecta, $username_conecta, $password_conecta) or trigger_error(mysql_error(),E_USER_ERROR); 
mysqli_set_charset($conecta, "utf8");
?>

Grato Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie um arquivo com qualquer nome em .php e coloque no arquivo: 

phpinfo();

 

Após, abra o arquivo no seu site, e procure pela extensão mysqli, se houver e tiver ativo, beleza, menos mau.

 

Seguindo seu código, deixe-o assim:

 

<?php

include "conecta.php";
mysqli_set_charset($conecta, "utf8");

$recupera = $_POST['recupera'];
$email = $_POST['email'];

switch($recupera){

	case "recupera":
		recupera_senha($email);
		break;

	default:
		include "formulario_senha_perdida.html";
		break;
}

function recupera_senha($email){
	if(!isset($email)){
        echo "Você esqueceu de preencher seu email.<br />
			<strong>Use o mesmo email que utilizou em seu cadastro.</strong><br /><br />"; 
		include "formulario_senha_perdida.html";
		exit();
	}

	// Checando se o email informado está cadastrado
		
	if($sql_check = $conecta->query("SELECT * FROM usuario WHERE email = '{$email}'")){
    	$sql_check_num = $sql_check->num_rows;
    }

	if($sql_check_num == 0){
		echo "Este email não é cadastrado em nosso banco de dados.<br /><br />";
		include "formulario_senha_perdida.html";
		exit();
	}
	
	// Se tudo OK vamos gerar uma nova senha e enviar para o email do usu⳩o!
	function makeRandomPassword(){
		$salt = "abchefghjkmnpqrstuvwxyz0123456789";
		srand((double)microtime()*1000000);
		$i = 0;
		while ($i <= 7){
			$num = rand() % 33;
			$tmp = substr($salt, $num, 1);
			$pass = $pass . $tmp;
			$i++;
		}
		return $pass;
	}

	$senha_randomica = makeRandomPassword();
	$senha = md5($senha_randomica);
	$sql = mysqli_query($conecta, "UPDATE usuario SET senha='{$senha}' WHERE email ='{$email}'");

	$headers = "MIME-Version: 1.0\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1\n";
	$headers .= "From: MKYS - 1Copa MKYS de Jiu Jitsu.<contato@copamkys.com.br>"; //COLOQUE TEU EMAIL
	$subject = "Sua nova senha no site COPA MKYS";
	$message = "Olá, redefinimos sua senha.<br /><br />
	<strong>Nova Senha</strong>: {$senha_randomica}<br /><br />
	<a href='http://www.copamkys.com.br/copa1/index.php'>http://www.copamkys.com.br/copa1/index.php</a><br /><br />
	Obrigado!<br /><br />
	Carlos Louvato (Organização)<br /><br /><br />
	Esta é uma mensagem automática, por favor não responda!";
	mail($email, $subject, $message, $headers);
	echo "<script language=javascript>alert( 'EMAIL ENVIADO COM SUCESSO! VERIFIQUE SEU E-MAIL!!' );location.href='index.php';</script>";
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro ocorre pois no PHP variáveis globais não são acessíveis em outros escopos(http://php.net/manual/en/language.variables.scope.php) e você está tentando acessar a variável global $conecta no escopo da função recupera_senha.

 

Para que ela seja acessível você deve declarar a intenção de uso com a palavra chave global.

//...
function recupera_senha($email){
    global $conecta;
//...

 

Porem saliento que o uso de variáveis globais é desencorajado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 11/05/2018 at 17:49, Jhess disse:

Crie um arquivo com qualquer nome em .php e coloque no arquivo: 


phpinfo();

 

Após, abra o arquivo no seu site, e procure pela extensão mysqli, se houver e tiver ativo, beleza, menos mau.

 

Seguindo seu código, deixe-o assim:

 


<?php

include "conecta.php";
mysqli_set_charset($conecta, "utf8");

$recupera = $_POST['recupera'];
$email = $_POST['email'];

switch($recupera){

	case "recupera":
		recupera_senha($email);
		break;

	default:
		include "formulario_senha_perdida.html";
		break;
}

function recupera_senha($email){
	if(!isset($email)){
        echo "Você esqueceu de preencher seu email.<br />
			<strong>Use o mesmo email que utilizou em seu cadastro.</strong><br /><br />"; 
		include "formulario_senha_perdida.html";
		exit();
	}

	// Checando se o email informado está cadastrado
		
	if($sql_check = $conecta->query("SELECT * FROM usuario WHERE email = '{$email}'")){
    	$sql_check_num = $sql_check->num_rows;
    }

	if($sql_check_num == 0){
		echo "Este email não é cadastrado em nosso banco de dados.<br /><br />";
		include "formulario_senha_perdida.html";
		exit();
	}
	
	// Se tudo OK vamos gerar uma nova senha e enviar para o email do usu⳩o!
	function makeRandomPassword(){
		$salt = "abchefghjkmnpqrstuvwxyz0123456789";
		srand((double)microtime()*1000000);
		$i = 0;
		while ($i <= 7){
			$num = rand() % 33;
			$tmp = substr($salt, $num, 1);
			$pass = $pass . $tmp;
			$i++;
		}
		return $pass;
	}

	$senha_randomica = makeRandomPassword();
	$senha = md5($senha_randomica);
	$sql = mysqli_query($conecta, "UPDATE usuario SET senha='{$senha}' WHERE email ='{$email}'");

	$headers = "MIME-Version: 1.0\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1\n";
	$headers .= "From: MKYS - 1Copa MKYS de Jiu Jitsu.<contato@copamkys.com.br>"; //COLOQUE TEU EMAIL
	$subject = "Sua nova senha no site COPA MKYS";
	$message = "Olá, redefinimos sua senha.<br /><br />
	<strong>Nova Senha</strong>: {$senha_randomica}<br /><br />
	<a href='http://www.copamkys.com.br/copa1/index.php'>http://www.copamkys.com.br/copa1/index.php</a><br /><br />
	Obrigado!<br /><br />
	Carlos Louvato (Organização)<br /><br /><br />
	Esta é uma mensagem automática, por favor não responda!";
	mail($email, $subject, $message, $headers);
	echo "<script language=javascript>alert( 'EMAIL ENVIADO COM SUCESSO! VERIFIQUE SEU E-MAIL!!' );location.href='index.php';</script>";
}
?>

 

 Olá Jhess, Esta ativo a Extensão! Tenho algumas páginas trabalhando com mysqlI.

Apresentou o erro:

Citar

Parse error: syntax error, unexpected 'switch' (T_SWITCH) in /home/copam957/public_html/copa1/gerar_nova_senha.php on line 9

 

Grato Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 11/05/2018 at 20:16, HwapX disse:

O erro ocorre pois no PHP variáveis globais não são acessíveis em outros escopos(http://php.net/manual/en/language.variables.scope.php) e você está tentando acessar a variável global $conecta no escopo da função recupera_senha.

 

Para que ela seja acessível você deve declarar a intenção de uso com a palavra chave global.


//...
function recupera_senha($email){
    global $conecta;
//...

 

Porem saliento que o uso de variáveis globais é desencorajado.

 Olá, estou incluindo no escopo a informação. Devo incluir apenas o codigo: global $conecta; ?

Grato pela ajuda

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 11/05/2018 at 17:49, Jhess disse:

Crie um arquivo com qualquer nome em .php e coloque no arquivo: 


phpinfo();

 

Após, abra o arquivo no seu site, e procure pela extensão mysqli, se houver e tiver ativo, beleza, menos mau.

 

Seguindo seu código, deixe-o assim:

 


<?php

include "conecta.php";
mysqli_set_charset($conecta, "utf8");

$recupera = $_POST['recupera'];
$email = $_POST['email'];

switch($recupera){

	case "recupera":
		recupera_senha($email);
		break;

	default:
		include "formulario_senha_perdida.html";
		break;
}

function recupera_senha($email){
	if(!isset($email)){
        echo "Você esqueceu de preencher seu email.<br />
			<strong>Use o mesmo email que utilizou em seu cadastro.</strong><br /><br />"; 
		include "formulario_senha_perdida.html";
		exit();
	}

	// Checando se o email informado está cadastrado
		
	if($sql_check = $conecta->query("SELECT * FROM usuario WHERE email = '{$email}'")){
    	$sql_check_num = $sql_check->num_rows;
    }

	if($sql_check_num == 0){
		echo "Este email não é cadastrado em nosso banco de dados.<br /><br />";
		include "formulario_senha_perdida.html";
		exit();
	}
	
	// Se tudo OK vamos gerar uma nova senha e enviar para o email do usu⳩o!
	function makeRandomPassword(){
		$salt = "abchefghjkmnpqrstuvwxyz0123456789";
		srand((double)microtime()*1000000);
		$i = 0;
		while ($i <= 7){
			$num = rand() % 33;
			$tmp = substr($salt, $num, 1);
			$pass = $pass . $tmp;
			$i++;
		}
		return $pass;
	}

	$senha_randomica = makeRandomPassword();
	$senha = md5($senha_randomica);
	$sql = mysqli_query($conecta, "UPDATE usuario SET senha='{$senha}' WHERE email ='{$email}'");

	$headers = "MIME-Version: 1.0\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1\n";
	$headers .= "From: MKYS - 1Copa MKYS de Jiu Jitsu.<contato@copamkys.com.br>"; //COLOQUE TEU EMAIL
	$subject = "Sua nova senha no site COPA MKYS";
	$message = "Olá, redefinimos sua senha.<br /><br />
	<strong>Nova Senha</strong>: {$senha_randomica}<br /><br />
	<a href='http://www.copamkys.com.br/copa1/index.php'>http://www.copamkys.com.br/copa1/index.php</a><br /><br />
	Obrigado!<br /><br />
	Carlos Louvato (Organização)<br /><br /><br />
	Esta é uma mensagem automática, por favor não responda!";
	mail($email, $subject, $message, $headers);
	echo "<script language=javascript>alert( 'EMAIL ENVIADO COM SUCESSO! VERIFIQUE SEU E-MAIL!!' );location.href='index.php';</script>";
}
?>

 

image.thumb.png.701b7449c119b84a3c1524b9a479d269.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, vamos corrigir primeiro sua conexão com o banco:

 

<?php
//Comentarios sao dispensaveis
$hostname_conecta = "localhost";
$database_conecta = "copam957_****";
$username_conecta = "copam957_root";
$password_conecta = "*******";

//Na conexao que você havia feito, esqueceu de especificar a database no link de conexao
$conecta = new mysqli($hostname_conecta, $username_conecta, $password_conecta, $database_conecta);

if ($conecta->connect_error) {
    die("Erro de conexao: " . $conecta->connect_error);
} 

mysqli_set_charset($conecta, "utf8");
?>

 

Algum erro deve estar ocorrendo antes do seu switch, vamos tratar, então:

 

<?php

$recupera = addslashes($_POST['recupera']);
// echo $recupera; // Pra verificar o que está vindo
$email = addslashes($_POST['email']);

include "conecta.php"; // Verifique se o arquivo está correto e tem permissões no seu FTP / Host
//mysqli_set_charset($conecta, "utf8"); -- Como ja foi definido no arquivo conecta.php nao existe razao pra setar charset de novo

switch($recupera){
	case "recupera": //Verifique se é isso mesmo que está recebendo da sua variável $_POST['recupera']
		recupera_senha($email);
		break;

	default:
		include "formulario_senha_perdida.html";
		break;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Jhess disse:

Ok, vamos corrigir primeiro sua conexão com o banco:

 


<?php
//Comentarios sao dispensaveis
$hostname_conecta = "localhost";
$database_conecta = "copam957_****";
$username_conecta = "copam957_root";
$password_conecta = "*******";

//Na conexao que você havia feito, esqueceu de especificar a database no link de conexao
$conecta = new mysqli($hostname_conecta, $username_conecta, $password_conecta, $database_conecta);

if ($conecta->connect_error) {
    die("Erro de conexao: " . $conecta->connect_error);
} 

mysqli_set_charset($conecta, "utf8");
?>

 

Algum erro deve estar ocorrendo antes do seu switch, vamos tratar, então:

 


<?php

$recupera = addslashes($_POST['recupera']);
// echo $recupera; // Pra verificar o que está vindo
$email = addslashes($_POST['email']);

include "conecta.php"; // Verifique se o arquivo está correto e tem permissões no seu FTP / Host
//mysqli_set_charset($conecta, "utf8"); -- Como ja foi definido no arquivo conecta.php nao existe razao pra setar charset de novo

switch($recupera){
	case "recupera": //Verifique se é isso mesmo que está recebendo da sua variável $_POST['recupera']
		recupera_senha($email);
		break;

	default:
		include "formulario_senha_perdida.html";
		break;
}

 

Olá, Jhess , antes de mais nada obrigado pela ajuda.

Fiz a mudança na conexão do Banco como solicitou. Tudo Certo!

 

Fiz  passa a passo o tratamento. O único erro

Citar

Parse error: syntax error, unexpected '}' in /home/copam957/public_html/copa1/gerar_nova_senha.php on line 18

 

Fui acompanhando a abre e fecha das chaves, mais não achei o motivo do erro.

 

Verifiquei tb o arquivo e suas permissões no seu FTP / Host. Está com todas as permissões.

 

Vou postar código html do Formulário de senha perdida. Pelo que observei esta mandando as informações corretas.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formul&aacute;rio Nova Senha</title>
<style type="text/css">
@import url("css/estilos.css");
</style>
</head>
<div align="center"><iframe src="topointerno.html" width="800" height="400" align="middle" scrolling="no" frameborder="0"></iframe></div>
<body>
</form>
<form id="form2" name="form2" method="post" action="">
  <div align="center"></div>
</form>
<form name="form1" method="post" action="gerar_nova_senha.php">

  <div align="center">
    <p>Por favor digite o seu email que est&aacute; cadastrado em nosso banco de dados;<br />
      
      <input name="email" type="text" id="email" />
      <input name="recupera" type="hidden" id="recupera" value="recupera" />
    </p>
    <p>
      <input type="submit" name="Submit2" value="Gerar Senha" id="Submit2" />
    </p>
  </div>
</form>

</body>
</html>

Em algumas mudanças ele chegou a enviar o email de alteração. Mais não faz a mudança no banco pelo comando UPDATE.

Então pq deve ter erro como você falou antes do switch.

Grato pela ajuda. E vou tentando até conseguir acertar.

Grato Carlos Louvato

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 14/05/2018 at 17:26, Carlos Louvato disse:

Fiz  passa a passo o tratamento. O único erro

 

Tente tirar todos os comentários que eu coloquei.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 16/05/2018 at 14:11, Jhess disse:

 

Tente tirar todos os comentários que eu coloquei.

Olá JHESS.

Refiz todos os passos e corrigi o erro de sintaxe.

Codigo ficou:

 

<?php

$recupera = addslashes($_POST['recupera']);
$email = addslashes($_POST['email']);

include "conecta.php";

switch($recupera){
	case "recupera":
		recupera_senha($email);
		break;

	default:
		include "formulario_senha_perdida.html";
		break;
}

function recupera_senha($email){
	if(!isset($email)){
        echo "Você esqueceu de preencher seu email.<br />
			<strong>Use o mesmo email que utilizou em seu cadastro.</strong><br /><br />"; 
		include "formulario_senha_perdida.html";
		exit();
	}

	// Checando se o email informado está cadastrado
		
	if($sql_check = $conecta->query("SELECT * FROM usuario WHERE email = '{$email}'")){
    	$sql_check_num = $sql_check->num_rows;
    }

	if($sql_check_num == 0){
		echo "Este email não é cadastrado em nosso banco de dados.<br /><br />";
		include "formulario_senha_perdida.html";
		exit();
	}
	
	// Se tudo OK vamos gerar uma nova senha e enviar para o email do usu?o!
	function makeRandomPassword(){
		$salt = "abchefghjkmnpqrstuvwxyz0123456789";
		srand((double)microtime()*1000000);
		$i = 0;
		while ($i <= 7){
			$num = rand() % 33;
			$tmp = substr($salt, $num, 1);
			$pass = $pass . $tmp;
			$i++;
		}
		return $pass;
	}

	$senha_randomica = makeRandomPassword();
	$senha = md5($senha_randomica);
	$sql = mysqli_query($conecta, "UPDATE usuario SET senha='{$senha}' WHERE email ='{$email}'");

	$headers = "MIME-Version: 1.0\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1\n";
	$headers .= "From: MKYS - 1Copa MKYS de Jiu Jitsu.<contato@copamkys.com.br>"; //COLOQUE TEU EMAIL
	$subject = "Sua nova senha no site COPA MKYS";
	$message = "Olá, redefinimos sua senha.<br /><br />
	<strong>Nova Senha</strong>: {$senha_randomica}<br /><br />
	<a href='http://www.copamkys.com.br/copa1/index.php'>http://www.copamkys.com.br/copa1/index.php</a><br /><br />
	Obrigado!<br /><br />
	Carlos Louvato (Organização)<br /><br /><br />
	Esta é uma mensagem automática, por favor não responda!";
	mail($email, $subject, $message, $headers);
	echo "<script language=javascript>alert( 'EMAIL ENVIADO COM SUCESSO! VERIFIQUE SEU E-MAIL!!' );location.href='index.php';</script>";
}
?>

 Voltou apresentar o erro:

Citar

Fatal error: Call to a member function query() on null in /home/copam957/public_html/copa1/gerar_nova_senha.php on line 28

 

Na linha :

 

if($sql_check = $conecta->query("SELECT * FROM usuario WHERE email = '{$email}'")){

 

Estou experimentando outras formas de solicitar novas senhas. mais ainda gosto de receber pelo email.

Obrigado pela ajuda.

Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
    • 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');     }  
×

Informação importante

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