Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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");
} Header("Location: ../2.php");
} Header("Location: ../3.php");
}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
Use colchetes para criar arrays:
$termo1 = ["Adriano, Antonio, Ariel"];
no if, use in_array em vez de só comparar com "=="
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");
} Header("Location: ../2.php");
} Header("Location: ../3.php");
}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");
} Header("Location: ../2.php");
} Header("Location: ../3.php");
}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
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');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.
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
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
in_array
if (in_array($palavra, $termo1)) {
header("Location: ...");
} elseif(...){
} elseif(...){
}