Jump to content
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>

 

Share this post


Link to post
Share on other 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) {}

 

  • Gostei 1

Share this post


Link to post
Share on other 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

 

Share this post


Link to post
Share on other 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.

 

  • Gostei 1

Share this post


Link to post
Share on other 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!

  • Gostei 1

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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?

  • Gostei 1

Share this post


Link to post
Share on other 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);
        ?>

 

Share this post


Link to post
Share on other 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

  • Gostei 1

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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,

  • Gostei 1

Share this post


Link to post
Share on other 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

  • Gostei 1

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

  • Gostei 1

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By lucascientista
      Boa noite, galera é o seguinte eu estou montando um script que pesquisa no banco de dados e mostrar os resultados em uma página php, bem aí que está o problema eu pesquisei alguns sistemas de paginação e de pesquisa e acabei montando meu script, no meu script a pesquisa aparece na primeira página mas quando passo para a página adiante não me é mostrado resultado nenhum já verifiquei tudo e não consigo encontrar o erro, será que alguém pode me ajudar?
       
      <?php #Incluindo a conexão no banco de dados require_once '../dao/conexao/Conexao.php'; $conexao = Conexao::getInstance(); /***********************************************/ #Aqui começa a parte a paginação e pesquisa /**********************************************/ #Limitando o número máximo de resultados que serão mostrados na tela $maximo = 1; #Armazenando o valor da página atual $pagina = isset($_GET["pagina"])? ($_GET["pagina"]): '1'; #Subtraindo 1, porque os registro começam do zero como em um array $inicio = $pagina - 1; #Multiplicamos a quantidade de registros da pagina pelo valor da pagina atual $inicio = $maximo * $inicio; #Agora chega a parte em que fazemos o SELECT para contar os resultados $sql = "SELECT * FROM centroautomotivo"; $stmt = $conexao->prepare($sql); $stmt->execute(); $contagem = $stmt->fetchAll(PDO::FETCH_ASSOC); $total = 0; if(count($contagem)){ foreach ($contagem as $linhas) { #Armazenando o total de registros da tabela para fazer a paginação $total = count($contagem); } } /******************************************************************* * Aqui vai começar a parte da pesquisa, tornando o script em um só ********************************************************************/ #Recebe o termo da pesquisa se existir $termo = (isset($_GET["termo"])) ? ($_GET["termo"]) : ''; #Executa uma pesquisa com o termo pesquisado como parametro - Este SELECT irá servir também para a paginação if(empty($termo)){ //Nada aqui } else{ $sql = "SELECT * FROM centroautomotivo WHERE nomefantasia LIKE :nomefantasia or email LIKE :email ORDER BY idCentro LIMIT $inicio,$maximo"; $stm = $conexao->prepare($sql); $stm->bindValue(':nomefantasia', '%'.$termo.'%'); $stm->bindValue(':email', '%'.$termo.'%'); $stm->execute(); $autocenters = $stm->fetchAll(PDO::FETCH_ASSOC); } <?php require_once '../includes/header.php'; require_once '../controller/paginacaoPesquisaCentro.php'; ?> <div class="container mb-5"> <h1 class="text text-center">Centros Automotivos</h1> <p class="text text-center">Encontre o centro automotivo que mais se encaixa com você</p> <!--Formulário de pesquisa com paginação--> <form method="GET" action=""> <div class="d-flex flex-column bd-highlight mb-3"> <div class="p-2 bd-highlight"><img src="../img/Logotipo.png" class=" img-fluid rounded mx-auto d-block"></div> <div class="p-2 bd-highlight d-flex justify-content-center" style="margin-top: -10px;"><input type="text" name="termo" class="form-control" style=" width: 60%;" placeholder="Pesquise pelo Centro Automotivo!"/></div> <div class="p-2 bd-highlight d-flex justify-content-center"><button type="submit" class="btn btn-outline-primary"><i class="fas fa-search"></i>&nbsp;Pesquisar</button></div> </div> </form> <!--Fim do formuláio de pesquisa--> <!--Início dos resultados da pesquisa--> <?php if(!empty($autocenters)){?> <?php foreach ($autocenters as $autocenter) { ?> <center> <div class="card mb-3" style="max-width: 540px;"> <div class="row no-gutters"> <div class="col-md-4"> <img src="../controller<?php empty($autocenter["foto"])? 'images/pic.png' : $autocenter["foto"] ?>" class="card-img img-fluid" width="150px" height="150px"> </div> <div class="col-md-8"> <div class="card-body"> <p class="card-text text-justify"><?php $autocenter["nomefantasia"]?></p> <p class="card-text text-justify"><small class="text-muted"><?=$autocenter["email"]?></small></p> </div> </div> </div> </div> </center> <?php }//Fechamento do foreach?> <div id="alignpaginacao"> <?php //determina de quantos em quantos links serão adicionados e removidos $max_links = 6; //dados para os botões $previous = $pagina - 1; $next = $pagina + 1; //usa uma funcção "ceil" para arrendondar o numero pra cima, ex 1,01 será 2 $pgs = ceil($total / $maximo); //se a tabela não for vazia, adiciona os botões if($pgs > 1 ){ echo "<br/>"; //botao anterior if($previous > 0){ echo "<div id='botaoanterior'><a href=".$_SERVER['PHP_SELF']."?termo={$termo}?pagina=$previous><input type='submit' name='bt-enviar' id='bt-enviar' value='Anterior' class='button' /></a></div>"; } else{ echo "<div id='botaoanteriorDis'><a href=".$_SERVER['PHP_SELF']."?pagina=$previous><input type='submit' name='bt-enviar' id='bt-enviar' value='Anterior' class='button' disabled='disabled'/></a></div>"; } echo "<div id='numpaginacao'>"; for($i=$pagina-$max_links; $i <= $pgs-1; $i++) { if ($i <= 0){ //enquanto for negativo, não faz nada }else{ //senão adiciona os links para outra pagina if($i != $pagina){ if($i == $pgs){ //se for o final da pagina, coloca tres pontinhos echo "<a href=".$_SERVER['PHP_SELF']."?pagina=".($i).">$i</a> ..."; }else{ echo "<a href=".$_SERVER['PHP_SELF']."?pagina=".($i).">$i</a>"; } } else{ if($i == $pgs){ //se for o final da pagina, coloca tres pontinhos echo "<span class='current'> ".$i."</span> ..."; }else{ echo "<span class='current'> ".$i."</span>"; } } } } echo "</div>"; //botao proximo if($next <= $pgs){ echo " <div id='botaoprox'><a href=".$_SERVER['PHP_SELF']."?termo={$termo}?pagina=$next><input type='submit' name='bt-enviar' id='bt-enviar' value='Proxima' class='button'/></a></div>"; }else{ echo " <div id='botaoproxDis'><a href=".$_SERVER['PHP_SELF']."?pagina=$next><input type='submit' name='bt-enviar' id='bt-enviar' value='Proxima' class='button' disabled='disabled'/></a></div>"; } } ?> </div> <?php }//Fechamento do if?> <!--Fim dos resultados da pesquisa--> <!--Início da paginação--> <!--Fim da paginação--> </div> <?php require_once '../includes/footer.php'; ?>  
      Bem aí está meu código, fico muito agradecido se puderem me ajudar.
    • By wandoh
      Boa Tarde! estou com um dificuldades de puxar os dados do usuário logado no site. Atualmente estou conseguindo puxar somente o NOME, quando tento puxar o restante da erro! Abaixo segue o Código.
       
      session_start(); //inicializa variaveis $id = "accountid"; $name = ""; $email = ""; $errors = array(); //conexão db $db = mysqli_connect('localhost', 'root', 'senha', 'db') or die("could not connect to database"); //Registrar usuário if (isset($_POST['reg_user'])) { // receives all input values from the form $name = mysqli_real_escape_string($db, $_POST['name']); $email = mysqli_real_escape_string($db, $_POST['email']); $password = mysqli_real_escape_string($db, $_POST['password']); $password2 = mysqli_real_escape_string($db, $_POST['password2']); //form validação: ensure that the form is correctly filled ... // by adding (array_push)) corresponding error unto $errors array if(empty($name)) { array_push($errors, " "); } if(empty($email)) { array_push($errors, " "); } if(empty($pwd)) { array_push($errors, " "); } if($pwd != $pw2) { array_push($errors, " "); } // To protect MySQL injection (more detail about MySQL injection) $name = stripslashes($name); $password = stripslashes($password); // first check the databese to make sure // verifica na db se a usuário existente com o mesmo nome de usuário e email $user_check_query = "SELECT * FROM t_account WHERE name='$name' or email='$email' LIMIT 1"; $result = mysqli_query($db, $user_check_query); $user = mysqli_fetch_assoc($result); if($user) { // if user existente if ($user['name'] === $name) { array_push($errors, " "); } if ($user['email'] === $email) { array_push($errors, " "); } } // Registra o usuário se não haver erros if (count($errors) == 0 ) { $pwd = md5($pwd); print $pwd; $query = "INSERT INTO t_account (name, email, pwd, pw2) VALUES ('$name', '$email', '$password', '$password2')"; mysqli_query($db, $query); $_SESSION['accountid'] = $id;// $_SESSION['name'] = $name; $_SESSION['success'] = 'Você está logado em'; echo " "; //header('location: index.php'); } } //LOGIN USER if (isset($_POST['login_user'])) { $name = mysqli_real_escape_string($db, $_POST['name']); $password = mysqli_real_escape_string($db, $_POST['password']); if (empty($name)) { array_push($errors, " "); } if (empty($password)) { array_push($errors, " "); } if (count($errors) == 0 ) { $pwd = md5($pwd); $query = "SELECT 'email' FROM t_account WHERE name='$name' AND password='$password'"; $results = mysqli_query($db, $query); if (mysqli_num_rows($results)) { $_SESSION['accountid'] = $id;// $_SESSION['name'] = $name; $_SESSION['success'] = 'Você está logado em'; echo " "; //header('location: index.php'); }else{ array_push($errors, " "); } } } Com a variável abaixo, é exibido o nome de quem esta logado.
      $_SESSION["name"] Já com os demais, não e exibido o resultado é apresentado uma msg de erro.
      $_SESSION["email"] Notice: Undefined index: email in Passei em todos os post que tem sobre o assunto, mas infelizmente em meu código não deu certo.
       Sou novo em PHP!
      Preciso puxar todos os dados cadastrado do usuário.
    • By Mucio Willamys
      olá, gostaria da ajuda de vcs :
      este código traz as informações do banco de dados e as coloca dentro de um select html
      é parte de um projeto de um sistema de uma clínica médica, onde ao cadastrar os médicos posso escolher a especialidade do mesmo.
      <select name="especialidade" required="">                 <option value="" >--Escolha uma especialidade--</option>          <?php              $result_especialidade = "select * from especialidade";              $result_especialidade = mysqli_query($bd, $result_especialidade);              while ($row_especialidade = mysqli_fetch_assoc($result_especialidade)){ ?>                    <option value="<?php echo $row_especialidade['id']; ?>"><?php echo  $row_especialidade['nome']; ?> </option> public function editar($id){ include "Bd.class.php"; $nome = $this->nome; $cpf = $this->cpf; $crm = $this->crm; $especialidade = $this->especialidade; $query = "update medico set nome = '$nome', cpf = '$cpf', crm = '$crm', especialidade_id = '$especialidade' where id = $id"; $status = $bd->query($query); return $status; } Acima ^ está a função editar...
       
       
       
      abaixo está o form com as informações do médico.
      <form method="POST" action="../controller/Controller-medico.php?op=e"> <input type="hidden" name="id" size="5" value="<?php echo $id; ?>" > <div class="campo"> <label for="nome">Nome: </label> <input type="nome" name="nome" size="30" value="<?php echo $m->getNome() ?>"> </div> <div class="campo"> <label for="cpf">CPF: </label> <input type="text" name="cpf" size="30" value="<?php echo $m->getCpf() ?>"> </div> <div class="campo"> <label for="rg">CRM: </label> <input type="text" name="crm" size="30" value="<?php echo $m->getCrm() ?>"> </div> <div class="campo"> <label for="especialidade"> Especialidade: </label> </div> <div class="campo"> <input type="submit" value="Atualizar"> </div> </form> Gostaria de saber como faço pra setar um input ou um select no caso para a alteração do dado(especialidade)?
    • By Filipe556
      alguém tem ideia de algum método de bloquear usuário por ip
    • By vini_seven
      Segue aqui meu código abaixo, o que ocorre é o seguinte, quando o usuário logar ele vai para a página de chat, quando ele vai para essa página é feito um update no banco de dados para status = 1 esse status igual a 1 é a minha condição para exibição na página usuários para então que o técnico da T.I escolha quem atender, todas que estão com status = 1 vão estar visíveis lá. Porém ao usuário clicar no botão sair na página de chat, quero que faça o update no banco de dados com status = 0 novamente, para então na página de usuários a ser atendido ele vai sair, vou colocar um refresh a cada 60s nessa página para ela atualizá-la. ----CÓDIGO DO TRECHO DA PÁGINA CHAT ONDE TEM O BOTÃO SAIR---
      <> <body> <div class="contact1"> <div class="fundo_chat"> <div class="janela_chat"> </div> <form action="chat.php" method="post" class="form-chat"> <input type="text" name="mensagem" id="mensagem" placeholder="Mensagem"> <tr> <button class="btn btn-primary" type="submit" id="botao-enviar">Enviar</button> <a class="btn btn-primary" href="logout.php" role="button" id="botao-sair">Sair</a> </form> </div> </div> </body> </html> <> --CÓDIGO ONDE É FEITO A VALIDAÇÃO DE LOGIN, REDIRECIONA PARA A PÁGINA DE USUÁRIOS QUEM É DA T.I, OS RESTANTES DE OUTROS SETORES VÃO DIRETO PARA A CHAT ONDE AGUARDA ATENDIMENTO E AO SER REDIRECIONADO MUDA STATUS PARA =1, ESTÁ MUDANDO PARA 1 PERFEITAMENTE.-- <> <?php session_start(); header('Content-Type: text/html; charset=utf-8'); include("conexao.php"); if(empty($_POST['nome']) || empty($_POST['senha'])){ header('location:index.html'); exit(); } $nome = mysqli_real_escape_string($conn, $_POST['nome']); $senha = mysqli_real_escape_string($conn, $_POST['senha']); $query = "select * from usuarios where nome = '$nome' and senha = '$senha'"; $setor = "SELECT setor FROM usuarios"; $result = mysqli_query($conn, $query); $row = mysqli_num_rows($result); if($row == 1){ $_SESSION['nome'] = $nome && $_SESSION['senha'] = $senha; while ($verifica_setor = mysqli_fetch_array($result)) { $setor = $verifica_setor['setor']; if ($setor == "Tecnologia da Informação") { header('location: usuarios.php'); }else{ mysqli_query($conn, "UPDATE usuarios set status = '1' WHERE nome = '$nome'"); header('location: chat.php'); } } } else { echo "<script>alert('USUÁRIO NÃO CADASTRADO OU DADOS INVÁLIDOS!');</script>"; echo "<script>window.location='index.html';</script>"; exit(); } ?> <> --AQUI É O MEU LOGOUT, ONDE EU INICIO A PARAMETRO SESSION PARA PEGAR O VALOR GLOBAL DELA QUE TINHA QUE SER O NOME PARA BUSCAR NA TABELA, FIZ UM OR DIE PARA TESTAR O QUERY E UM ECHO PARA VER O QUE ESTAVA SENDO EXIBIDO, E O QUE EXIBE NO ECHO É O VALOR = 1, POR ISSO A QUERY NAO FUNCIONA DO JEITO CERTO-- <> <?php include("conexao.php"); session_start(); echo $_SESSION['nome']; mysqli_query($conn, "UPDATE usuarios SET status = '0' WHERE nome = '$nome'") or die ("PARAMETROS NAO ALTERADO"); /* session_destroy(); header('location:index.html'); exit();*/ ?> <>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.