Ir para conteúdo

POWERED BY:

Arquivado

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

Durval Ferreira

Erro ao enviar mensagem reportando algo

Recommended Posts

Tem um formulário no site que além de não aceitar caracteres acentuados envia a mensagem (desde que seja sem acento) com o seguinte erro que aparece no site:

Notice: Undefined property: stdClass::$login in /home/u960151055/public_html/2/report.php on line 13

SUCESSO: Mensagem enviada!

O código do arquivo report.php é:

Obs. Observe que tive que retirar os acentos das alternativas do formulário.

<?php
include 'header.php';
foreach($_POST as $key => $value) {
    $posts[$key] = filter($value);
}

if(isset($posts['message'])) {
    if($posts['message'] == ""){
        $error = "Por favor, indique o motivo do Relatório!!";
    }else{
        $subject ="Surf Site ID# {$_GET['id']} Relatado! ";
        $message="{$posts['message']}";
        $header="From: {$data->id} <{$data->login}>";
        $to = $site->site_email;
        $send_contact=mail($to,$subject,$message,$header);
        $success = "Mensagem enviada!";
    }
}
  ?>

<div class="contentbox">
    <div class="head">Reportar Link</div>
    <div class="contentinside">
        <?php if(isset($error)) { ?>
        <div class="error">ERRO: <?php echo $error; ?></div>
        <?php }
        if(isset($success)) { ?>
        <div class="success">SUCESSO: <?php echo $success; ?></div>
        <?php }
        if(isset($warning)) { ?>
        <div class="warning">WARNING: <?php echo $warning; ?></div>
        <?php } ?>
      
        <form class="contentform" method="post">

            <li>Você vai ganhar 50 COINS após verificarmos se o link está mesmo com problemas.<br/></li>
            <li>Ou você vai ganhar 50 COINS após verificarmos se o conteúdo do link não deveria estar em nosso site.<br/></li>
            <br>
            <p>
                  
                        Motivo para Reportar?<br>
            <select style="width:50%;" name="message">
            <option value=''>Selecione...</option>
              <option>Link bloqueado (50 Coins)</option>
              <option>Material Adulto, ---ografico (50 Coins)</option>
              <option>(Para Videos) O video nao abre (50 Coins)</option>
              <option>Pendente, negado, deficientes ou bloqueados (50 Coins)</option>
                           </select>
            </p>
            <input style="width:20%;" type="Submit"/><br/>
        </form>
    </div>
</div>
<?php
include 'footer.php';
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok. Então o erro:

Notice: Undefined property: stdClass::$login in /home/u960151055/public_html/2/report.php on line 13

é porque o objeto $data não possui a propriedade de $login

$header="From: {$data->id} <{$data->login}>";

E o código abaixo funciona, sem mostrar notificação no site e cumpre a função de informar no e-mail de maneira clara a identidade de quem enviou a mensagem ex. de 385 porque o objeto $data possui a propriedade $data:

$header="From: {$data->id} <{$data->id}>";

Como não entendi para que serve o objeto $login e tentei fazer as alterações que me sugeriu e não resolveram, essa seria uma solução?

E como resolver o problema de acentos uma vez que se tiver acento o e-mail não é enviado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem que analisar onde o objeto $data é criado. É lá que deve estar a criação (ou não) da propriedade login e todas as demais

Sobre os erros de acentuação, deixe tudo em utf-8 e não terá problemas. Veja este meu artigo: http://rberaldo.com.br/problemas-com-codificacao-acentos-nao-interpretados/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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