Ir para conteúdo

POWERED BY:

Arquivado

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

centurion

Session não inicia

Recommended Posts

Mesmo digitando os dados corretos na tela de login ao clicar no botão entrar não faz o logon e os dados são apagados resetados. server xampp 3.2.2 php 7 mysql 5.1.7.9.

Segui o código: 

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);

require_once 'conexao.php';

$usuario = $_POST['usuario'];
$senha   = $_POST['senha'];
$sql    = "select nome, usuario, senha from tab_socios where usuario = '$usuario' and senha = '$senha'";
$query  = mysqli_query ($conexao,$sql);
$linhas = mysqli_affected_rows($conexao);
if ($linhas > 0){    
    session_start();    
    $_SESSION['$usuario'] = $usuario;    
    while ($exibirNome = mysqli_fetch_array($query)){        
    $nome         = $exibirNome[0];    
    $nomeusuario  = $exibirNome[1];    
    $enhausuario  = $exibirNome[2];    
     }    
    $_SESSION['nome'] = $nome;    
    header ("Location:sistema.php");    
   }else{    
    print "Dados não conferem!<br>";    
    print "<a href='index.php'>Voltar</a>";
     }  

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
session_start();

 

De:

$usuario = $_POST['usuario'];

Para:

// previne SQL Injection
$usuario = mysqli_real_escape_string($conexao, $_POST['usuario']);

 

De:

$senha   = $_POST['senha'];

Para:

// previne SQL Injection
$senha = mysqli_real_escape_string($conexao, $_POST['senha']);

 

De:

$linhas = mysqli_affected_rows($conexao);

Para:

$linhas = mysqli_num_rows($query);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Draco Malfoy disse:

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
session_start();

 

De:


$usuario = $_POST['usuario'];

Para:


// previne SQL Injection
$usuario = mysqli_real_escape_string($conexao, $_POST['usuario']);

 

De:


$senha   = $_POST['senha'];

Para:


// previne SQL Injection
$senha = mysqli_real_escape_string($conexao, $_POST['senha']);

 

De:


$linhas = mysqli_affected_rows($conexao);

Para:


$linhas = mysqli_num_rows($query);

 

Ok vou testar, o brigado pela resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Draco Malfoy disse:

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
session_start();

 

De:


$usuario = $_POST['usuario'];

Para:


// previne SQL Injection
$usuario = mysqli_real_escape_string($conexao, $_POST['usuario']);

 

De:


$senha   = $_POST['senha'];

Para:


// previne SQL Injection
$senha = mysqli_real_escape_string($conexao, $_POST['senha']);

 

De:


$linhas = mysqli_affected_rows($conexao);

Para:


$linhas = mysqli_num_rows($query);

 

Olá draco malfoy acrescentei as mudanças sugeridas não logou ´mesmo digitando o nome de usuário e senha corretos ao clicar em entrar ele apaga oque foi digitado e volta para tela de login. comentei o header ("Location:sistema.php"); pra ver se dava erro, nada, a tela processalogin.php fica em branco.  como estou testando no host local no win 7 fui no php.ini e setei session.save_path = "C:/Temp" não funfou, então onde estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Manda o código do seu formulário de POST.

Compartilhar este post


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

Manda o código do seu formulário de POST.

Oi, Jesse&francinete ai está:

<!DOCTYPE html>
<html lang="pt-br">
<head>
  <title>Logar</title>
  <meta charset="utf-8">
  <link rel="stylesheet" href="_css/style.css">
</head>

<body>
<form method="post" action="processalogin.php"><br>

    <fieldset><legend>Login</legend> 	
<br>
<input type="text" name="usuario" placeholder="Nome do Usuario" required autofocus><br>
<br>
<input type="password" name="senha" placeholder="Digite sua senha" required><br><br>
<input type="submit" value="Entrar" class="btn"><br>

Ou se registre agora! <a href="cadastro.php">Novo Cadastro</a>
    </fieldset>
</form>
</body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque:

$query  = mysqli_query ($conexao,$sql);

por:

$query  = mysqli_query($conexao, $sql) or die (mysqli_error($conexao));

faça login novamente e nos diga se da algum error.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu tenho um sistema de login, vou mandar a parte em PHP, espero que esclareça suas dúvidas:

 

<?php
if(!isset($_SESSION))
    session_start();

//Login de Usários
if(isset($_POST['login'])){

  include('class/config.php');
  
  $erro = array();

    // Captação de dados
    $senha = $_POST['password'];
    $_SESSION['email'] = $mysqli->escape_string($_POST['email']);
    // Validação de dados

    if(count($erro) == 0){

        $sql = "SELECT senha as senha, id as valor 
        FROM admin 
        WHERE email = '$_SESSION[email]'";
        $que = $mysqli->query($sql) or die($mysqli->error);
        $dado = $que->fetch_assoc();
        if($que->num_rows == 0)
            $erro[] = "Nenhum usuário possui o <strong>e-mail</strong> informado.";

        elseif(strcmp($dado['senha'], ($senha)) == 0){
            $_SESSION['id'] = $dado['valor'];
        }else
            $erro[] = "<strong>Senha</strong> incorreta.";

        if(count($erro) == 0){
            echo "<script>location.href='dashboard.php';</script>";
            exit();
            unset($_SESSION['email']);
        }
    }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Jesse&Francinete disse:

Cara, eu tenho um sistema de login, vou mandar a parte em PHP, espero que esclareça suas dúvidas:

 


<?php
if(!isset($_SESSION))
    session_start();

//Login de Usários
if(isset($_POST['login'])){

  include('class/config.php');
  
  $erro = array();

    // Captação de dados
    $senha = $_POST['password'];
    $_SESSION['email'] = $mysqli->escape_string($_POST['email']);
    // Validação de dados

    if(count($erro) == 0){

        $sql = "SELECT senha as senha, id as valor 
        FROM admin 
        WHERE email = '$_SESSION[email]'";
        $que = $mysqli->query($sql) or die($mysqli->error);
        $dado = $que->fetch_assoc();
        if($que->num_rows == 0)
            $erro[] = "Nenhum usuário possui o <strong>e-mail</strong> informado.";

        elseif(strcmp($dado['senha'], ($senha)) == 0){
            $_SESSION['id'] = $dado['valor'];
        }else
            $erro[] = "<strong>Senha</strong> incorreta.";

        if(count($erro) == 0){
            echo "<script>location.href='dashboard.php';</script>";
            exit();
            unset($_SESSION['email']);
        }
    }
}
?>

Vou tentar adaptar baseado no seu código, obrigado pela resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, Draco Malfoy disse:

troque:


$query  = mysqli_query ($conexao,$sql);

por:


$query  = mysqli_query($conexao, $sql) or die (mysqli_error($conexao));

faça login novamente e nos diga se da algum error.

Verifiquei, não deu nenhum erro continua tudo igual digita usuário e senha igual ao q tá gravado no BD clica entrar apaga oque foi digitado e volta pra tela de lojin sem logar. Uma das minhas duvidas e de que a sessão não estava gravando no arquivo Temp do PHP mas da uma olhada tá pegando o nome do BD $usuario|s:4:"jrib";nome|s:13:"João Robeiro"; só não loga porque? pois de acordo com o meu código tinha que funcionar já que eu quero pegar somente o nome veja a img abaixo.

 

snone.png.dbc8ac5afc7ea88ce3823b53967d7e08.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque

if ($linhas > 0){    
    session_start();    
    $_SESSION['$usuario'] = $usuario;    
    while ($exibirNome = mysqli_fetch_array($query)){        
    $nome         = $exibirNome[0];    
    $nomeusuario  = $exibirNome[1];    
    $enhausuario  = $exibirNome[2];    
     }    
    $_SESSION['nome'] = $nome;    
    header ("Location:sistema.php");    
   }else{    
    print "Dados não conferem!<br>";    
    print "<a href='index.php'>Voltar</a>";
     } 

 

por:

if(mysqli_num_rows($query)) {
    $result = mysqli_fetch_assoc($query);
    
    $_SESSION['usuario'] = $usuario; 
    $_SESSION['nome'] = $result['nome'];
    
    header('Location: sistema.php');
    exit;
} else {
    print "Dados não conferem!<br>";    
    print "<a href='index.php'>Voltar</a>";
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
12 horas atrás, Draco Malfoy disse:

Troque


if ($linhas > 0){    
    session_start();    
    $_SESSION['$usuario'] = $usuario;    
    while ($exibirNome = mysqli_fetch_array($query)){        
    $nome         = $exibirNome[0];    
    $nomeusuario  = $exibirNome[1];    
    $enhausuario  = $exibirNome[2];    
     }    
    $_SESSION['nome'] = $nome;    
    header ("Location:sistema.php");    
   }else{    
    print "Dados não conferem!<br>";    
    print "<a href='index.php'>Voltar</a>";
     } 

 

por:


if(mysqli_num_rows($query)) {
    $result = mysqli_fetch_assoc($query);
    
    $_SESSION['usuario'] = $usuario; 
    $_SESSION['nome'] = $result['nome'];
    
    header('Location: sistema.php');
    exit;
} else {
    print "Dados não conferem!<br>";    
    print "<a href='index.php'>Voltar</a>";
}

 

Olá Draco Malfoy com essa alteração logou mas não aparece o nome da pessoa logada, além do erro mostrado na img.logou.PNG.928dac396ded0e34252a4824db2c38c4.PNG

Aqui onde tá dando o erro: 

<?php
print "Logado como:" . $_SESSION['$nome'] . "<br>";//aqui deveria aparecer o nome do user logado!

print "<a href='produtos.php'>Produtos</a><br>"; 

print "<a href='logout.php'>Sair</a>";

?>

>

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque $_SESSION['$nome'] por $_SESSION['nome']

 

Lembrando que você ainda deve fazer uma verificação nessa página, afim de validar para que somente usuários autenticados tenham acesso. Da forma que está, qualquer um acessa sua página.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Draco Malfoy disse:

troque $_SESSION['$nome'] por $_SESSION['nome']

 

Lembrando que você ainda deve fazer uma verificação nessa página, afim de validar para que somente usuários autenticados tenham acesso. Da forma que está, qualquer um acessa sua página.

 Os erros desapareceram, mas ainda não aparece o nome do usuário logado quanto a validar a página você tem razão já fiz isso para se prevenir do sql injection. Voltando ao problema preciso que o user apareça logado com o nome completo exemplo abaixo:

logcomo.png.57d0cabe56026f26990e9ca386fcb71b.png 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro... Lendo o conteúdo do post inteiro não há tratamento contra inject em nenhum momento.

Segundo, o nome do usuário no banco está completo em uma única coluna?

Ou o sobre nome está em outra coluna?

 

Se  estiver em 1 só, reveja o nome do usuário no banco

Se estiver em duas colunas você pode pegar os 2 campos e setar com valor da sessão usando um contatemo entre os dados exemplo: $_SESSION['blablabla'] = $code . $code2;

Ou armazenar em outra cessão os dados do sobre-nome e tal.

 

E só para constar $_SESSION é uma super-global que já trás falha de segurança em utilizar. Dê uma pesquisada por aí que muitas algumas classes para tratar desse tipo de coisa de forma segura, se não souber como criar uma.

Compartilhar este post


Link para o post
Compartilhar em outros sites
11 horas atrás, OmarF disse:

Primeiro... Lendo o conteúdo do post inteiro não há tratamento contra inject em nenhum momento.

Segundo, o nome do usuário no banco está completo em uma única coluna?

Ou o sobre nome está em outra coluna?

 

Se  estiver em 1 só, reveja o nome do usuário no banco

Se estiver em duas colunas você pode pegar os 2 campos e setar com valor da sessão usando um contatemo entre os dados exemplo: $_SESSION['blablabla'] = $code . $code2;

Ou armazenar em outra cessão os dados do sobre-nome e tal.

 

E só para constar $_SESSION é uma super-global que já trás falha de segurança em utilizar. Dê uma pesquisada por aí que muitas algumas classes para tratar desse tipo de coisa de forma segura, se não souber como criar uma.

Obrigado por responder Omarf! no bd o nome completo $nome é todo em uma unica coluna e o nick (apelido) $usuário também em uma outra  coluna. Ai no post você só vê fragmentos do código original quando a prevenção do sql injection alterei aqui no meu pc. Quanto a tratar com outras variáveis que não sessions não tenho muita experiencia visto que sou novato em php. Se tiver alguma sugestão sempre bem vindas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é passar a cessão direta e uma terceira pessoa ter acesso ao código fonte do que você desenvolveu.

Mas não vou me reter a ficar batendo nessa tecla já que como disse ainda está como novato no php.

Na verdade ninguém nunca é veterano em qualquer linguagem vai por mim. Mecho com PHP a mais de 12 anos e quase sempre me pego, tendo que aprender alguma coisa.

 

Como dica sugiro que comece a estudar POO, verá um mundo novo no php e a forma correta de se programar nessa linguagem.

E para o uso de banco de dados/ conexões/ SEGURANÇA e etc-e-tal, nada se compara ao PDO, bom essa é minha opinião.

 

Olha aqui uma classe bacana para gerenciar cessão:

Spoiler

<?php
/**
 * *********************************************************************
 * @author ?
 * @copyright ?
 * @version 2.0: 2010, Spell Master (c)
 * @version 2.1: 2011, Spell Master (c)
 * @version 2.2: 2013, Spell Master (c)
 * @version 3.0: 2017, Spell Master (c)
 * 
 * *********************************************************************
 * @class: Classe para o gerenciamento e manipulação de sessões
 * *********************************************************************
 * 
 * @Usage single session
 * ---------------------------------------------------------------------
 * *** Pega a instância da classe
 * $session = Session::getSession();
 * 
 * *** Ver a cessão armazenada
 * $session->Word = "Olá mundo";
 * 
 * * Inicia uma cessão
 * $session->startSession();
 * 
 * *** Verificação de a sessão existe
 * if (isset($session->helloWord)) {
 *     echo "A cessão \"Word\" foi iniciada : "{$session->Word}".;
 * } else {
 *     echo "A cessão \"Word\" não foi iniciada";
 * }
 * 
 * *** Destroi a cessão
 * unset($session->Word);
 * 
 * ---------------------------------------------------------------------
 * @Usage all sessions
 * ---------------------------------------------------------------------
 * $session->destroy();
 * $session->restart();
 * $session->reset();
 * 
 * ---------------------------------------------------------------------
 * @Usage static
 * ---------------------------------------------------------------------
 * $session = managerSession::getSession();
 * $session->hello = "Olá Mundo";
 * echo $session->hello; 
 * 
 * *********************************************************************
 * @changelog
 * * Adicionado ducumentação e instruções de uso [spell master]
 * * Removido métodos e atributos desnecessários [spell master]
 * * Removido necessidade de parâmetros [spell master]
 * * Fixado na instância o construtor [spell master]
 * * Aplicado corretamente o uso de métodos estáticos [spell master]
 * *********************************************************************
 */
class managerSession {
    /* Constants de definição */
    const SESSION_STARTED = true;
    const SESSION_STOPED = false;
    /* Atributo de verificação */
    private $sessionStatus = self::SESSION_STOPED;
    /* Atributo estático de método */
    private static $session;
    /** ***************************************************************
     * @Method: Obtem a intância da cessão
     * (bool) Se a cessão já exite retorna a mesma
     ** ***************************************************************/
    public static function getSession() {
        if (!isset(self::$session)) {
            self::$session = new self;
        }
        self::$session->startSession();
        return self::$session;
    }
    /** ***************************************************************
     * @Method: Inicia a cessão
     ** ***************************************************************/
    public function startSession() {
        $this->sessionStatus = session_start();
        return $this->sessionStatus;
    }
    /** ***************************************************************
     * @Method: Elimina sessões
     ** ***************************************************************/
    public function destroy() {
        if ($this->sessionStatus == self::SESSION_STARTED) {
            $this->sessionStatus = session_destroy();
            unset($_SESSION);
            return $this->sessionStatus;
        }
        return false;
    }
    /** ***************************************************************
     * @Method: Reinicia as sessões
     ** ***************************************************************/
    public function restart() {
        if (self::$session->destroy()) {
            self::$session->startSession();
        }
    }
    /** ***************************************************************
     * @Method: Reseta as sessões
     ** **************************************************************/
    public function reset() {
        session_reset();
    }
    
    /******************************************************************
     * @Method's HELPER: Helpes de auxílio a sessão única
     *****************************************************************/
    // ----------------------------------------------------------------
    // Definir sessão
    public function __set($name, $value) {
        $_SESSION[$name] = $value;
    }
    // ----------------------------------------------------------------
    // Obter sessão
    public function __get($name) {
        if (isset($_SESSION[$name])) {
            return $_SESSION[$name];
        }
    }
    // ----------------------------------------------------------------
    // Verificar sessão
    public function __isset($name) {
        return isset($_SESSION[$name]);
    }
    // ----------------------------------------------------------------
    // Desfazer sessão
    public function __unset($name) {
        unset($_SESSION[$name]);
    }
}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, Omar~ disse:

O problema é passar a cessão direta e uma terceira pessoa ter acesso ao código fonte do que você desenvolveu.

Mas não vou me reter a ficar batendo nessa tecla já que como disse ainda está como novato no php.

Na verdade ninguém nunca é veterano em qualquer linguagem vai por mim. Mecho com PHP a mais de 12 anos e quase sempre me pego, tendo que aprender alguma coisa.

 

Como dica sugiro que comece a estudar POO, verá um mundo novo no php e a forma correta de se programar nessa linguagem.

E para o uso de banco de dados/ conexões/ SEGURANÇA e etc-e-tal, nada se compara ao PDO, bom essa é minha opinião.

 

Olha aqui uma classe bacana para gerenciar cessão:

  Mostrar conteúdo oculto


<?php
/**
 * *********************************************************************
 * @author ?
 * @copyright ?
 * @version 2.0: 2010, Spell Master (c)
 * @version 2.1: 2011, Spell Master (c)
 * @version 2.2: 2013, Spell Master (c)
 * @version 3.0: 2017, Spell Master (c)
 * 
 * *********************************************************************
 * @class: Classe para o gerenciamento e manipulação de sessões
 * *********************************************************************
 * 
 * @Usage single session
 * ---------------------------------------------------------------------
 * *** Pega a instância da classe
 * $session = Session::getSession();
 * 
 * *** Ver a cessão armazenada
 * $session->Word = "Olá mundo";
 * 
 * * Inicia uma cessão
 * $session->startSession();
 * 
 * *** Verificação de a sessão existe
 * if (isset($session->helloWord)) {
 *     echo "A cessão \"Word\" foi iniciada : "{$session->Word}".;
 * } else {
 *     echo "A cessão \"Word\" não foi iniciada";
 * }
 * 
 * *** Destroi a cessão
 * unset($session->Word);
 * 
 * ---------------------------------------------------------------------
 * @Usage all sessions
 * ---------------------------------------------------------------------
 * $session->destroy();
 * $session->restart();
 * $session->reset();
 * 
 * ---------------------------------------------------------------------
 * @Usage static
 * ---------------------------------------------------------------------
 * $session = managerSession::getSession();
 * $session->hello = "Olá Mundo";
 * echo $session->hello; 
 * 
 * *********************************************************************
 * @changelog
 * * Adicionado ducumentação e instruções de uso [spell master]
 * * Removido métodos e atributos desnecessários [spell master]
 * * Removido necessidade de parâmetros [spell master]
 * * Fixado na instância o construtor [spell master]
 * * Aplicado corretamente o uso de métodos estáticos [spell master]
 * *********************************************************************
 */
class managerSession {
    /* Constants de definição */
    const SESSION_STARTED = true;
    const SESSION_STOPED = false;
    /* Atributo de verificação */
    private $sessionStatus = self::SESSION_STOPED;
    /* Atributo estático de método */
    private static $session;
    /** ***************************************************************
     * @Method: Obtem a intância da cessão
     * (bool) Se a cessão já exite retorna a mesma
     ** ***************************************************************/
    public static function getSession() {
        if (!isset(self::$session)) {
            self::$session = new self;
        }
        self::$session->startSession();
        return self::$session;
    }
    /** ***************************************************************
     * @Method: Inicia a cessão
     ** ***************************************************************/
    public function startSession() {
        $this->sessionStatus = session_start();
        return $this->sessionStatus;
    }
    /** ***************************************************************
     * @Method: Elimina sessões
     ** ***************************************************************/
    public function destroy() {
        if ($this->sessionStatus == self::SESSION_STARTED) {
            $this->sessionStatus = session_destroy();
            unset($_SESSION);
            return $this->sessionStatus;
        }
        return false;
    }
    /** ***************************************************************
     * @Method: Reinicia as sessões
     ** ***************************************************************/
    public function restart() {
        if (self::$session->destroy()) {
            self::$session->startSession();
        }
    }
    /** ***************************************************************
     * @Method: Reseta as sessões
     ** **************************************************************/
    public function reset() {
        session_reset();
    }
    
    /******************************************************************
     * @Method's HELPER: Helpes de auxílio a sessão única
     *****************************************************************/
    // ----------------------------------------------------------------
    // Definir sessão
    public function __set($name, $value) {
        $_SESSION[$name] = $value;
    }
    // ----------------------------------------------------------------
    // Obter sessão
    public function __get($name) {
        if (isset($_SESSION[$name])) {
            return $_SESSION[$name];
        }
    }
    // ----------------------------------------------------------------
    // Verificar sessão
    public function __isset($name) {
        return isset($_SESSION[$name]);
    }
    // ----------------------------------------------------------------
    // Desfazer sessão
    public function __unset($name) {
        unset($_SESSION[$name]);
    }
}

 

 

Obrigado! vou usar seu exemplo como referencia, ok? eu quero aprender mysqli primeiro ou posso estudar PDO junto oque você recomenda? e onde encontro um tutorial pra estudar POO? alguma dica!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Mestres! muito obrigado pelas dicas ai, blza! bom consegui fazer aparecer o usuário logado, abaixo a solução para algum novato passar por essa dificuldade.

Habilite o modulo_session no apache caso estiver usando wampserv. assim começou a gravar as sessões

Para aparecer o nome do user logado troquei: 

$_SESSION = $_SESSION['usuario']  por

$usuario = $_SESSION['usuario'] assim de certo.

Problema resolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • 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).
×

Informação importante

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