Mayck May 1 Denunciar post Postado Junho 4, 2015 Boa tarde, Tenho o código abaixo que já esta funcionando para o que eu preciso, porem da forma que esta dificulta sua aplicação onde eu preciso, já estou a dias procurando a solução porem sem sucesso, por isso, conto com o conhecimento de vocês para solucionar O código funcional é <?php $palavra = $_POST['palavra']; if (($palavra == "Adriano" || $palavra == "Antonio" || $palavra == "Ariel")) { Header("Location: ../1.php"); } elseif (($palavra == "Barbara" || $palavra == "Bianca" || $palavra == "Beto")) { Header("Location: ../2.php"); } elseif (($palavra == "Carlos" || $palavra == "Caitano")) { Header("Location: ../3.php"); } else { Header("Location: ../index.php"); } ?> O código funcional que eu preciso fazer funcionar porem esta dando erro <?php $palavra = $_POST['palavra']; $termo1 = ("Adriano, Antonio, Ariel"); $termo2 = ("Barbara, Bianca, Beto"); $termo3 = ("Carlos, Caitano,"); if ($palavra == $termo1) { Header("Location: ../1.php"); } elseif ($palavra == $termo2) { Header("Location: ../2.php"); } elseif ($palavra == $termo3)) { Header("Location: ../3.php"); } else { Header("Location: ../index.php"); } ?> Desde já agradeço a todos pela ajuda Mayck Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Junho 4, 2015 in_array <?php $palavra = $_POST['palavra']; $termo1 = array('Adriano', 'Antonio', 'Ariel'); if (in_array($palavra, $termo1)) { header("Location: ..."); } elseif(...){ } elseif(...){ } Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 4, 2015 Use colchetes para criar arrays: $termo1 = ["Adriano, Antonio, Ariel"]; no if, use in_array em vez de só comparar com "==" Compartilhar este post Link para o post Compartilhar em outros sites
Mayck May 1 Denunciar post Postado Junho 4, 2015 Fiz assim <?php $palavra = $_POST['palavra']; $termo1 = ["Adriano, Antonio, Ariel"]; $termo2 = ["Barbara, Bianca, Beto"]; $termo3 = ["Carlos, Caitano, Cleber"]; if (in_array($palavra, $termo1)) { Header("Location: ../1.php"); } elseif (in_array($palavra, $termo2)) { Header("Location: ../2.php"); } elseif (in_array($palavra, $termo3)) { Header("Location: ../3.php"); } else { Header("Location: ../index.php"); } ?> Porem gerou o erro "Parse error: syntax error, unexpected '[' in xampp\htdocs\****\verificar.php on line 5" O que pode ser? Também fiz assim <?php $palavra = $_POST['palavra]; $termo1 = array('Adriano', 'Antonio', 'Ariel'); $termo1 = array('Barbara', 'Bianca', 'Beto'); $termo1 = array('Carlos', 'Caitano', 'Cleber'); if (in_array($palavra, $termo1)) { Header("Location: ../1.php"); } elseif (in_array($palavra, $termo2)) { Header("Location: ../2.php"); } elseif (in_array($palavra, $termo3)) { Header("Location: ../3.php"); } else { Header("Location: ../index.php"); } ?> Porem gerou o erro "Warning: in_array() expects parameter 2 to be array, null given in C:\xampp\htdocs\***\verificar.php on line 12 Warning: in_array() expects parameter 2 to be array, null given in C:\xampp\htdocs\***\verificar.phpon line 15Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\***\verificar.php:12) in C:\xampp\htdocs\***\verificar.php on line 19 Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Junho 4, 2015 Veja as diferenças $termo1 = ["Adriano, Antonio, Ariel"];$termo2 = ["Barbara, Bianca, Beto"];$termo3 = ["Carlos, Caitano, Cleber"]; Coloque as strings entre aspas simples ou dupla $termo1 = ['Adriano', 'Antonio', 'Ariel']; $termo2 = ['Barbara', 'Bianca', 'Beto']; $termo3 = ['Carlos', 'Caitano', 'Cleber']; Repetição dos nomes da variáveis $termo1 $termo1 = array('Adriano', 'Antonio', 'Ariel');$termo1 = array('Barbara', 'Bianca', 'Beto');$termo1 = array('Carlos', 'Caitano', 'Cleber'); Cada um é uma array, ou seja $termo1, $termo2, $termo3 $termo1 = array('Adriano', 'Antonio', 'Ariel'); $termo2 = array('Barbara', 'Bianca', 'Beto'); $termo3 = array('Carlos', 'Caitano', 'Cleber'); Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 4, 2015 Sobre o erro, acho que o problema é a versão do PHP. A declaração de arrays usando colchetes só está disponível a partir do PHP 5.4. Antes dele é necessário usar a função array(), como o Williams Duarte mostrou. Compartilhar este post Link para o post Compartilhar em outros sites
Mayck May 1 Denunciar post Postado Junho 4, 2015 Boa noite, Essa última explicação ficou um tanto confusa... mas se não tiver outro jeito eu vou faze-la para ver o resultado... porem só pra entender... não existe nenhuma outra opção em php onde eu possa pegar uma palavra enviada de um form e: '$palavra_do_form' (enviada através do fomulário pelo usuário) '$conjunto_de_palavras_1' (já pré definida no código) '$consjunto_de_palavras_2' (já pré definida no código) ... se '$palavradoform' for igual a qualquer palavra dentro do '$conjunto_de_palavras_1' direciona para 'pagina.php' se não se '$palavradoform' for igual a qualquer palavra dentro do '$conjunto_de_palavras_2' direciona para 'pagina_2.php' se não direciona para 'pagina_anterior.php' Desde já agradeço antecipadamente a todos pelo seu tempo, ajuda e atenção Mayck Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 4, 2015 Esse "conjunto" precisa ser um array (ou outro tipo de lista, mas o array é o mais básico) Você pode usar a função explode para transformar uma string em um array. Por exemplo, se o usuário digitar os termos separados por vírgula, use explode com o delimitador ",". Se digitar um por linha, use o delimitador "\n" e assim por diante. Depois é só usar in_array como já citado Compartilhar este post Link para o post Compartilhar em outros sites