Ir para conteúdo

POWERED BY:

Arquivado

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

Mayck May

Simplificando - Busca Termo

Recommended Posts

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

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

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 15

Warning: 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

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

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

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

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

×

Informação importante

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