How to generate error in logerro.txt file?

-1

I'm trying to generate errors in the logerro.txt file, but I do not know how to do it. I used the syntax error function but:

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 );
}
?>
    
asked by anonymous 06.11.2014 / 05:54

2 answers

-1

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

link

But you can use this snippet of code:

$arquivo = "logerro.txt";

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

fwrite($file, $erro);

fclose($file);
    
06.11.2014 / 11:59
4

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

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

I placed GitHub for future reference .

I hope there is something inside try otherwise it does not make sense, maybe I should put all the code down inside try but I will not say why it depends on what you want. See the exception documentation .

    
06.11.2014 / 11:22