How to generate error in logerror.txt file?

Asked

Viewed 548 times

-1

I am trying to generate errors in the file logerro.txt, but I don’t know how to do it. I used the syntax error function:

try{


}else(PDOException $e){

echo'Sistema indisponível';
LogErros($e);

I used the above function and gave error:

<?php
require_once( '../../sllapsocial/classes/DB.class.php' );

if( @$_SERVER['REQUEST_METHOD'] == 'POST' ) {
  $nome =      $_POST['nome'];
  $sobrenome = $_POST['sobrenome'];
  $email =     $_POST['email'];
  $senha =     $_POST['senha'];
  $sexo =      $_POST['sexo'];
  $ano =       $_POST['ano'];
  $mes =       $_POST['mes'];
  $dia =       $_POST['dia'];
  $captcha =   $_POST['captcha'];

  $erro = '';

  if( $nome == '' ) {
     $erro .= 'Qual é o seu nome?<br>';
  } elseif ( strlen( $nome ) < 2 ) {
     $erro .= 'Insira um nome existente<br>';
  }

  if( $sobrenome == '' ) {
     $erro .= 'Qual é o seu sobrenome<br>';
  } elseif( strlen( $sobrenome ) < 2 ) {
     $erro .='Insira um sobrenome existente<br>';
  }

  if( $email == '' ) {
     $erro .= 'Insira seu email';
  } elseif( !filter_var($email, FILTER_VALIDATE_EMAIL) ) {
     $erro .= 'E-mail invalido tente outro<br>';
  }

  if( $senha == ''  OR strlen( $senha ) < 4 ) {
     $erro .= 'Você precisa ter uma senha<br>';
  }

  $verificar = DB::getConn()->prepare( 'SELECT `id` FROM `usuarios` WHERE `email`=?' );
  if( $verificar->execute( array( $email ) ) ) {
     if( $verificar->rowCount() > 0 ){
        $erro .= 'Este e-mail ja existe<br>';
     // } else {
        // Se quiser, tire os comments deste código para testar se chegou aqui
        // $erro .= 'Email livre. Pode remover esse else do código<br>';
     }
  } else {
     $erro .= 'Erro interno ao verificar o e-mail<br>';
  }

  if( strtolower( $captcha ) <> strtolower( $_SESSION["captchaCadastro"] ) ) {
     $erro .= 'Codigo errado<br>';
  }

  if( $erro === '' ) {
     $senha = sha1($senha);
     $nascimento = "$ano-$mes-$dia";
     $inserir = DB::getConn()->prepare( 'INSERT INTO `usuarios` SET `email`=?, `senha`=?, `nome`=?, `sobrenome`=?, `sexo`=?, `nascimento`=?, `cadastro`=NOW()' );
     if( $inserir->execute( array( $email, $senha, $nome, $sobrenome, $sexo,         $nascimento ) ) ) {
          {
           header('Location: /');
        }
     }
  }
  die( $erro );
}
?>

2 answers

4

The syntax error is easy to solve. The try has not else, he has catch. Try:

try {
    //faz o que precisa aqui
} catch (PDOException $e){
    echo'Sistema indisponível';
    LogErros($e);
}

I put in the Github for future reference.

I hope there’s something inside try or it doesn’t make sense, maybe you should put all the code underneath try but I won’t say why it depends on what you want. See the documentation of exceptions.

  • gave syntax error the same way in the } catch variable (Pdoexception $e){

  • Edit the question and post the exact error.

-1


If your problem is with creating the file, read this link:

http://php.net/manual/en/function.fopen.php

But you can use this snippet of code:

$arquivo = "logerro.txt";

$file = fopen($arquivo, 'a');

fwrite($file, $erro);

fclose($file);
  • In my Pdo this all ok , the problem is with the variable Try

Browser other questions tagged

You are not signed in. Login or sign up in order to post.