Ir para conteúdo

Arquivado

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

Ze Fernando

Warning: preg_match(): Empty regular expression in /home/fojox102/public_html/contact.php on line 113

Recommended Posts

Boa noite amigos

Escrevo desde Portugal para solicitar ajuda para um problema.

Eu aproveitei um template já feito, para fazer um site, mas depois de fazer as respetivas alterações ao formulário e testá-lo no browser aconteceu o seguinte:

  1. Após enviar o formulário surgiu a mensagem de "ENVIADO", mas também apareceu outra mensagem no mesmo quadro que dizia o seguinte: 

         Warning: preg_match(): Empty regular expression in /home/fojox102/public_html/contact.php on line 113

      2. Em uma parte do código PHP estava !eregi ..... e a mensagem dava erro dizendo que "eregi" estava desatualizado e encontrei na NET alguém dizendo que se alterasse para preg_match o problem ficava resolvido, mas não ficou, no entanto eu mantive "preg_match".

Eu envio o código da página "contato.php". Também podem fazer o teste acedendo a http://fojo.x10host.com/contact.php.

Será que algum de vocês me pode ajudar a solucionar o problema?

Os meus agradecimentos

José Moreira

<!DOCTYPE HTML>
<html>

<head>
  <title>Fojo's Runners</title>
  <meta name="description" content="website description" />
  <meta name="keywords" content="website keywords, website keywords" />
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <link rel="stylesheet" type="text/css" href="css/style.css" />
  <!-- modernizr enables HTML5 elements and feature detects -->
  <script type="text/javascript" src="js/modernizr-1.5.min.js"></script>
</head>

<body>
<div id="bg">
    <img src="images/background.jpg" alt="home">
</div>
  <div id="main">
    <header>
      <div id="logo">
        <div id="logo_text">
          <!-- class="logo_colour", allows you to change the colour of the text -->
          <h1><a href="index.html">FOJO'S <span class="logo_colour"> RUNNERS</span></a></h1>
          <h2>Amigos do Treino e doidos por Trail's.</h2>
        </div>
      </div>
      <nav>
        <div id="menu_container">
          <ul class="sf-menu" id="nav">
            <li><a href="index.html">Home</a></li>
            <li><a href="about.html">Quem somos</a></li>
            <li><a href="corridas.html">Corridas</a></li>
            <li><a href="#">Nutrição</a>
               <ul>
                   <li><a href="amatinal.html">Antes treino matinal</a></li>
                   <li><a href="dmatinal.html">Após treino matinal</a></li>
                   <li><a href="atarde.html">Antes treino da tarde</a></li>
                   <li><a href="dtarde.html">Após treino da tarde</a></li>
                   <li><a href="outros.html">Outros dias</a></li>
               </ul>
              </li>
            <li><a href="roupa.html">Vestuário</a></li>
            <li><a href="#">Treinar</a>
              <ul>
                <li><a href="casa.html">Em casa</a></li>
                <li><a href="chuva.html">Com chuva</a></li>
                <li><a href="bomtempo.html">Bom tempo</a></li>
                <li><a href="frio.html">Frio ou geada</a></li>
                <li><a href="verao.html">Treinar no Verão</a></li>
              </ul>
            </li>
            <li><a href="contact.php">Contacto</a></li>
          </ul>
        </div>
      </nav>
    </header>
    <div id="site_content">
      <div id="sidebar_container">
        <div class="sidebar">
          <h3>Latest News</h3>
          <h4>New Website Launched</h4>
          <h5>December 1st, 2013</h5>
          <p>2013 sees the redesign of our website. <a href="#">Read more</a></p>
        </div>
        <div class="sidebar">
          <h3>Useful Links</h3>
          <ul>
            <li><a href="#">First Link</a></li>
            <li><a href="#">Another Link</a></li>
            <li><a href="#">And Another</a></li>
            <li><a href="#">Last One</a></li>
          </ul>
        </div>
        <div class="sidebar">
          <h3>More Useful Links</h3>
          <ul>
            <li><a href="#">First Link</a></li>
            <li><a href="#">Another Link</a></li>
            <li><a href="#">And Another</a></li>
            <li><a href="#">Last One</a></li>
          </ul>
        </div>
      </div>
      <div class="content">
        <h1>Formulário de contacto</h1>
        <p>Fala connosco utilizando este formulário.</p>
        <p>Aproveita para tirares dúvidas, apresentares as tuas ideias, enviares informação que consideres de interesse para os amantes do Trail Running ou simplesmente para propores uma corrida ou treino por aí.</p>
        <?php
          // Set-up these 3 parameters
          // 1. Enter the email address you would like the enquiry sent to
          // 2. Enter the subject of the email you will receive, when someone contacts you
          // 3. Enter the text that you would like the user to see once they submit the contact form
          $to = 'fojo.runners@gmail.com';
          $subject = 'Mensagem de Fojo Runners';
          $contact_submitted = 'A tua mensagem foi enviada com sucesso.';

          // Do not amend anything below here, unless you know PHP
          function email_is_valid($email) {
            return preg_match('/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i',$email);
          }
          if (!email_is_valid($to)) {
            echo '<p style="color: red;">Deves configurar um endereço de e-mail válido para que possas enviar a mensagem.</p>';
          }
          if (isset($_POST['contact_submitted'])) {
            $return = "\r";
            $youremail = trim(htmlspecialchars($_POST['your_email']));
            $yourname = stripslashes(strip_tags($_POST['your_name']));
            $yourmessage = stripslashes(strip_tags($_POST['your_message']));
            $contact_name = "Name: ".$yourname;
            $message_text = "Message: ".$yourmessage;
            $user_answer = trim(htmlspecialchars($_POST['user_answer']));
            $answer = trim(htmlspecialchars($_POST['answer']));
            $message = $contact_name . $return . $message_text;
            $headers = "From: ".$youremail;
            if (email_is_valid($youremail) && !preg_match("\r",$youremail) && !preg_match("\n",$youremail) && $yourname != "" && $yourmessage != "" && substr(md5($user_answer),5,10) === $answer) {
              mail($to,$subject,$message,$headers);
              $yourname = '';
              $youremail = '';
              $yourmessage = '';
              echo '<p style="color: blue;">'.$contact_submitted.'</p>';
            }
            else echo '<p style="color: red;">Por favor, digita o teu nome, um endereço de e-mail válido, a mensagem e a resposta a uma simples pergunta de matemática antes de enviares a mensagem..</p>';
          }
          $number_1 = rand(1, 9);
          $number_2 = rand(1, 9);
          $answer = substr(md5($number_1+$number_2),5,10);
        ?>
        <form id="contact" action="contact.php" method="post">
          <div class="form_settings">
            <p><span>Name</span><input class="contact" type="text" name="your_name" value="<?php echo $yourname; ?>" /></p>
            <p><span>Email Address</span><input class="contact" type="text" name="your_email" value="<?php echo $youremail; ?>" /></p>
            <p><span>Message</span><textarea class="contact textarea" rows="5" cols="50" name="your_message"><?php echo $yourmessage; ?></textarea></p>
            <p style="line-height: 1.7em;">To help prevent spam, please enter the answer to this question:</p>
            <p><span><?php echo $number_1; ?> + <?php echo $number_2; ?> = ?</span><input type="text" name="user_answer" /><input type="hidden" name="answer" value="<?php echo $answer; ?>" /></p>
            <p style="padding-top: 15px"><span>&nbsp;</span><input class="submit" type="submit" name="contact_submitted" value="Enviar" /></p>
          </div>
        </form>
      </div>
    </div>
    <div id="scroll">
      <a title="Scroll to the top" class="top" href="#"><img src="images/top.png" alt="top" /></a>
    </div>
    <footer>
      <p><a href="index.html">Home</a> | <a href="about.html">Quem somos</a> | <a href="corridas.html">Corridas</a> | <a href="vestuario.html">Vestuário</a> | <a href="contact.php">Contacto</a></p>
      <p>Copyright &copy; fojo's runners 2018 | <a href="http://www.css3templates.co.uk">design from css3templates.co.uk</a></p>
    </footer>
  </div>
  <!-- javascript at the bottom for fast page loading -->
  <script type="text/javascript" src="js/jquery.js"></script>
  <script type="text/javascript" src="js/jquery.easing-sooper.js"></script>
  <script type="text/javascript" src="js/jquery.sooperfish.js"></script>
  <script type="text/javascript">
    $(document).ready(function() {
      $('ul.sf-menu').sooperfish();
      $('.top').click(function() {$('html, body').animate({scrollTop:0}, 'fast'); return false;});
    });
  </script>
</body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema está na condição de validação do formulário

 

Veja:

if (email_is_valid($youremail) && !preg_match("\r",$youremail) && !preg_match("\n",$youremail) && $yourname != "" && $yourmessage != "" && substr(md5($user_answer),5,10) === $answer) {}

 

Entenda, pra validar e-mail existem funções nativas do php para poder fazer isso, uma delas é a filter_var (documentação):

$email = "contato@hufelande.com";
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL)); // Retorno true || false

Depois você verifica se o e-mail tem pulo de linha logo em seguida de verificar se ele é um e-mail válido, qual a lógica? kk

Você também verifica se o e-mail é vazio depois de verificar se é um e-mail válido, também não tem lógica...

 

Esquece esse preg_match, você não precisa dele no seu código...

 

Tente isso: 

if (filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($yourname) && !empty(yourmessage) && substr(md5($user_answer),5,10) === $answer) {}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Edgard, como vai?

Edgard, e primeiro lugar os meus agradecimentos pela sua resposta, mas como você já viu, eu não percebo nada disto. sou mesmo um zerinho.

Eu abri a página no Dreamweaver e coloquei o código que me enviou, mas ao colocar aparece uma mensagem de erro no Dreamweaver. Dá 2 erros, um na linha 113 (o seu código) e outro na linha 124, mas mesmo assim eu coloquei no site para ver que erro aparecia e então apareceu:

Parse error: syntax error, unexpected 'else' (T_ELSE) in /home/fojox102/public_html/contact.php on line 124

Eu acho que fiz como você me disse, mas talvez tenha feito errado porque agora mal eu pressiono o botão "contato", no site e logo surge a mensagem. Nem chega a abrir a página. 

Vai aqui a parte do código que me dá problemas.

 if (!email_is_valid($to)) {
            echo '<p style="color: red;">Deves configurar um endereço de e-mail válido para que possas enviar a mensagem.</p>';
          }
          if (isset($_POST['contact_submitted'])) {
            $return = "\r";
            $youremail = trim(htmlspecialchars($_POST['your_email']));
            $yourname = stripslashes(strip_tags($_POST['your_name']));
            $yourmessage = stripslashes(strip_tags($_POST['your_message']));
            $contact_name = "Name: ".$yourname;
            $message_text = "Message: ".$yourmessage;
            $user_answer = trim(htmlspecialchars($_POST['user_answer']));
            $answer = trim(htmlspecialchars($_POST['answer']));
            $message = $contact_name . $return . $message_text;
            $headers = "From: ".$youremail;
            if (filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($yourname) && !empty(yourmessage) && substr(md5($user_answer),5,10) === $answer) {}
			     {
              mail($to,$subject,$message,$headers);
              $yourname = '';
              $youremail = '';
              $yourmessage = '';
              echo '<p style="color: blue;">'.$contact_submitted.'</p>';
            }
            else echo '<p style="color: red;">Por favor, digita o teu nome, um endereço de e-mail válido, a mensagem e a resposta a uma simples pergunta de matemática antes de enviares a mensagem.</p>';
          }
          $number_1 = rand(1, 9);
          $number_2 = rand(1, 9);
          $answer = substr(md5($number_1+$number_2),5,10);
        ?>

Na linha 124 está isto: else echo '<p style="color: red;">Por favor, digita o teu nome, um endereço de e-mail válido, a mensagem e a resposta a uma simples pergunta de matemática antes de enviares a mensagem.</p>';

 

Os meus agradecimentos

José Moreira

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

  if (filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($yourname) && 
     !empty(yourmessage) && substr(md5($user_answer),5,10) === $answer) {
	echo '<p style="color: red;">Por favor, digita o teu nome, um endereço de e-mail válido, a mensagem e a resposta a uma simples pergunta de matemática antes de enviares a mensagem.</p>';
    }else{
       mail($to,$subject,$message,$headers);
       $yourname = '';
       $youremail = '';
       $yourmessage = '';
       echo '<p style="color: blue;">'.$contact_submitted.'</p>';
    }

tenta dessa forma.

 

Compartilhar este post


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

Olá Edgard, como vai?

Edgard, e primeiro lugar os meus agradecimentos pela sua resposta, mas como você já viu, eu não percebo nada disto. sou mesmo um zerinho.

Eu abri a página no Dreamweaver e coloquei o código que me enviou, mas ao colocar aparece uma mensagem de erro no Dreamweaver. Dá 2 erros, um na linha 113 (o seu código) e outro na linha 124, mas mesmo assim eu coloquei no site para ver que erro aparecia e então apareceu:

Parse error: syntax error, unexpected 'else' (T_ELSE) in /home/fojox102/public_html/contact.php on line 124

Eu acho que fiz como você me disse, mas talvez tenha feito errado porque agora mal eu pressiono o botão "contato", no site e logo surge a mensagem. Nem chega a abrir a página. 

Vai aqui a parte do código que me dá problemas.


 if (!email_is_valid($to)) {
            echo '<p style="color: red;">Deves configurar um endereço de e-mail válido para que possas enviar a mensagem.</p>';
          }
          if (isset($_POST['contact_submitted'])) {
            $return = "\r";
            $youremail = trim(htmlspecialchars($_POST['your_email']));
            $yourname = stripslashes(strip_tags($_POST['your_name']));
            $yourmessage = stripslashes(strip_tags($_POST['your_message']));
            $contact_name = "Name: ".$yourname;
            $message_text = "Message: ".$yourmessage;
            $user_answer = trim(htmlspecialchars($_POST['user_answer']));
            $answer = trim(htmlspecialchars($_POST['answer']));
            $message = $contact_name . $return . $message_text;
            $headers = "From: ".$youremail;
            if (filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($yourname) && !empty(yourmessage) && substr(md5($user_answer),5,10) === $answer) {}
			     {
              mail($to,$subject,$message,$headers);
              $yourname = '';
              $youremail = '';
              $yourmessage = '';
              echo '<p style="color: blue;">'.$contact_submitted.'</p>';
            }
            else echo '<p style="color: red;">Por favor, digita o teu nome, um endereço de e-mail válido, a mensagem e a resposta a uma simples pergunta de matemática antes de enviares a mensagem.</p>';
          }
          $number_1 = rand(1, 9);
          $number_2 = rand(1, 9);
          $answer = substr(md5($number_1+$number_2),5,10);
        ?>

Na linha 124 está isto: else echo '<p style="color: red;">Por favor, digita o teu nome, um endereço de e-mail válido, a mensagem e a resposta a uma simples pergunta de matemática antes de enviares a mensagem.</p>';

 

Os meus agradecimentos

José Moreira

 

 

Relaxe, todos nós precisamos de problemas para vir alguns aprendizados! Kk

 

 

Então, o problema está na abertura de chaves do "If", na minha resposta eu tinha colocado já abrindo e fechando uma chave, aí você colocou abrindo uma segunda chave logo abaixo... Tente o que o Santos postou aí, caso venha ter algum problema estamos aqui para ajudá-lo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Decididamente ... eu não consigo!

Depois de colocar o código conforme dito pelo Santos, aparece logo erro no dreamweaver, linhas 116 e 118.

Que será que eu coloquei mal?

 

erro.jpg

Compartilhar este post


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

Decididamente ... eu não consigo!

Depois de colocar o código conforme dito pelo Santos, aparece logo erro no dreamweaver, linhas 116 e 118.

Que será que eu coloquei mal?

 

erro.jpg

 

Qual erro que informa nas linhas 116 e 118?

 

E qual é a versão do PHP que você está usando?

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
          // Set-up these 3 parameters
          // 1. Enter the email address you would like the enquiry sent to
          // 2. Enter the subject of the email you will receive, when someone contacts you
          // 3. Enter the text that you would like the user to see once they submit the contact form
          $to = 'fojo.runners@gmail.com';
          $subject = 'Mensagem de Fojo Runners';
          $contact_submitted = 'A tua mensagem foi enviada com sucesso.';

          // Do not amend anything below here, unless you know PHP
          function email_is_valid($email) {
            return preg_match('/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i',$email);
          }
          if (!email_is_valid($to)) {
            echo '<p style="color: red;">Deves configurar um endereço de e-mail válido para que possas enviar a mensagem.</p>';
          }
          if (isset($_POST['contact_submitted'])) {
            $return = "\r";
            $youremail = trim(htmlspecialchars($_POST['your_email']));
            $yourname = stripslashes(strip_tags($_POST['your_name']));
            $yourmessage = stripslashes(strip_tags($_POST['your_message']));
            $contact_name = "Name: ".$yourname;
            $message_text = "Message: ".$yourmessage;
            $user_answer = trim(htmlspecialchars($_POST['user_answer']));
            $answer = trim(htmlspecialchars($_POST['answer']));
            $message = $contact_name . $return . $message_text;
            $headers = "From: ".$youremail;
            if (filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($yourname) && !empty(yourmessage) && substr(md5($user_answer),            5,10) === $answer){
			     echo '<p style="color: red;">Por favor, digita o teu nome, um endereço de e-mail válido, a mensagem e a resposta             a uma simples pergunta de matemática antes de enviares a mensagem.</p>';
            }else{
              mail($to,$subject,$message,$headers);
              $yourname = '';
              $youremail = '';
              $yourmessage = '';
       echo '<p style="color: blue;">'.$contact_submitted.'</p>';
          }
          $number_1 = rand(1, 9);
          $number_2 = rand(1, 9);
          $answer = substr(md5($number_1+$number_2),5,10);
        ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
          // Set-up these 3 parameters
          // 1. Enter the email address you would like the enquiry sent to
          // 2. Enter the subject of the email you will receive, when someone contacts you
          // 3. Enter the text that you would like the user to see once they submit the contact form
          $to = 'fojo.runners@gmail.com';
          $subject = 'Mensagem de Fojo Runners';
          $contact_submitted = 'A tua mensagem foi enviada com sucesso.';

          // Do not amend anything below here, unless you know PHP
          function email_is_valid($email) {
            return preg_match('/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i',$email);
          }
          if (!email_is_valid($to)) {
            echo '<p style="color: red;">Deves configurar um endereço de e-mail válido para que possas enviar a mensagem.</p>';
          }
          if (isset($_POST['contact_submitted'])) {
            $return = "\r";
            $youremail = trim(htmlspecialchars($_POST['your_email']));
            $yourname = stripslashes(strip_tags($_POST['your_name']));
            $yourmessage = stripslashes(strip_tags($_POST['your_message']));
            $contact_name = "Name: ".$yourname;
            $message_text = "Message: ".$yourmessage;
            $user_answer = trim(htmlspecialchars($_POST['user_answer']));
            $answer = trim(htmlspecialchars($_POST['answer']));
            $message = $contact_name . $return . $message_text;
            $headers = "From: ".$youremail;
            if (filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($yourname) && !empty(yourmessage) && substr(md5($user_answer),            5,10) === $answer){
			     echo '<p style="color: red;">Por favor, digita o teu nome, um endereço de e-mail válido, a mensagem e a resposta             a uma simples pergunta de matemática antes de enviares a mensagem.</p>';
            }else{
              mail($to,$subject,$message,$headers);
              $yourname = '';
              $youremail = '';
              $yourmessage = '';
       echo '<p style="color: blue;">'.$contact_submitted.'</p>';
          }
          $number_1 = rand(1, 9);
          $number_2 = rand(1, 9);
          $answer = substr(md5($number_1+$number_2),5,10);
		} // FALTOU FECHAR ESSA CHAVE 
        ?>

Testa agora

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em princípio está bem. Pelo menos não deu erro ao enviar, no entanto ainda não recebi o email vindo do questionário. Partindo do principio que a parte do endereço de email esteja correta.

Aguardei uns 2 ou 3  minutos e não recebi o email.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se não está vindo no SPAM, já que você está usando a função mail pura do PHP, sem autenticação usando um servidor SMTP,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê uma pesquisada sobre PHPMailer, vou mandar um tutorial abaixo de como configurar, é simples fácil e rápido.

Com ele você consegue enviar e-mails autenticados usando smtp, o que torna o envio mais confiável.

 

Tutorial:
https://www.gn10.com.br/blog/dicas/envie-emails-php-smtp-gmail-google-apps/

 

Mas porque usar PHPMailer se o PHP já tem uma função "mail" nativa? Porque a função existente do php requer algumas configurações para que os serviços de e-mail reconheça um e-mail como confiável, e é isso que o PHPMailer faz e facilita essa configuração pra você sendo que você só precisa colocar algumas informações nele, ele também te auxilia em adicionar emails para receber uma cópia, adicionar anexos etc...
 

Se puder, leia:

https://stackoverflow.com/questions/1268012/phpmailer-v-mail-for-a-simple-contact-form

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me desculpe mas esse tutorial é para tótós? É que se não for eu tenho dúvidas de ser capaz.

Vou tentar.

Não sei como agradecer a sua disponibilidade e acredite que fiquei deveras sensibilizado com a sua paciência.

O mínimo que posso oferecer é a minha casa, um dia que venha a Portugal.

Muito, muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continue postando as dúvidas aí, vamos resolve este problema.
Grato pela disponibilidade, quem sabe um dia eu receba alguma boa proposta de emprego em Portugal. kk

 

Pelo que notei este tutorial está bem explicado, basta copiar o código e alterar para sua necessidade, uma vez que você tenha em mente que precisa baixar as classes do phpmailer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe a minha insistência, mas é apenas para dizer que eu comecei a ler o tutorial e .... quase caí inanimado. Nem terminei. Ehehehe.

Aqui em Portugal temos um dito popular, para quem não percebe de um assunto qualquer, que é:

"É areia demais para a minha caminhonete"

Não dá!

Se por acaso tiver um formulário já alterado...pode ser, caso contrário....

O meu muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
    • Por ckcesar
      Eu tenho uma aplicação no zend com a versão 5.6 e com o postgresql 9.6. Agora eu precisei mudar a versão do meu postgresql para o 16.1, a parte de conexão do bd e consultas sqls funciona perfeitamente, o meu problema está para acessar os meus controllers. Eles não são encontrados em nenhuma rota, quero ver se alguém já passou por esse problema para me ajudar. Obrigado.
    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
×

Informação importante

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