Problemino semplice If piu 2 variabili

10 contenuti / 0 new
Ultimo contenuto
Problemino semplice If piu 2 variabili

Ragazzi ho un problemino che con Drupal nn c'entra molto,ma piu con le mie scarse conoscenze di php.

ho questo codice inserito all'interno di un file php,che in base a delle variabili restituite da una url deve reindirizzarmi su un nodo diverso.

<?php
if ($etat!="ok" & $divers!="1") {
echo
"<meta HTTP-EQUIV='REFRESH' content='0; url=http://....'>";
}
else (
$etat!="ok" & $divers!="2") {
echo
"<meta HTTP-EQUIV='REFRESH' content='0; url=http://.....>";
}
else {
echo
"<meta HTTP-EQUIV='REFRESH' content='0; url=http://.....'>";
}
?>

ebbene,qualcosa nn quadra e nn capisco dove è l'errore,nn quadra perchè se io passo una url con divers 2,mi manda sempre prima url invece che alla seconda... sicuramente è un problema di sintassi,ma dove sbaglio ?..

mi pongo una domanda, come passi la variabile "divers"? con get??

comunque ho da farti diverse osservazioni:
1) in php è corretto scrivere ad esempio if ($a && $b){}
2) if ($etat!="ok" & $divers!="1") {} ammettendo che sia corretta questa dice
se ($etat "é diversa" da "ok") e ($divers è doverso da "1") > allora fai questo e quest'altro.

il numero 2 è diverso da 1, quindi ha ragione il codice.

A (uguale a) B
A == B

A (diverso da) B
A != B

Slice2Theme Servizio per la conversione di Design in markup HTML e/o temi.

WeBrain Solution | Pillsofbits Of Bits

quindi io devo togliere il ! e mettere due & ... giusto?

la url che dovrebbe passarmi i valori via get è questa:
http://......./miofile.php?divers=2&etat=ok

quindi ho modificato il codice in questo modo:

<?php
if ($etat="ok" && $divers="1") {
echo
"<meta HTTP-EQUIV='REFRESH' content='0; url=<a href="http://timando" rel="nofollow">http://timando</a> al nodo 1'>";
}
else if (
$etat="ok" && $divers="2") {
echo
"<meta HTTP-EQUIV='REFRESH' content='0; url=<a href="http://ti" rel="nofollow">http://ti</a> mando al nodo 2'>";
}
else {
echo
"<meta HTTP-EQUIV='REFRESH' content='0; url=<a href="http://ti" rel="nofollow">http://ti</a> mando a altro nodo'>";
}
?>

ma anche cosi continua a nn quadrare,mi manda sempre e in ogni caso al nodo 1.. uhm.. continuo a nn capire..

ORRORE! Nell'IF fai una assegnazione e non un controllo di uguaglianza!

Questa è la versione corretta:

<?php
if ($etat == "ok" && $divers == "1") {
echo
"<meta HTTP-EQUIV='REFRESH' content='0; url=<a href="http://timando" rel="nofollow">http://timando</a> al nodo 1'>";
}
else if (
$etat == "ok" && $divers == "2") {
echo
"<meta HTTP-EQUIV='REFRESH' content='0; url=<a href="http://ti" rel="nofollow">http://ti</a> mando al nodo 2'>";
}
else {
echo
"<meta HTTP-EQUIV='REFRESH' content='0; url=<a href="http://ti" rel="nofollow">http://ti</a> mando a altro nodo'>";
}
?>

:)

Ehm,qualcosa nn va nemmeno con la tua versione Sylpheed,in questo modo mi manda all'ultimo nodo,come se nn vedesse le variabili passate dall'url O_o

allora c'è un problema nel modo con cui passi le variabili.

prima di fare il redirect prova con una funzioncina equivalente, così cotrolli che gli vengano passate le variabili nel modo corretto.

<?php
if ($etat == "ok" && $divers == "1") {
echo
'PRIMA PROVA '.$etat.' '.$divers;
}
else if (
$etat == "ok" && $divers == "2") {
echo
'SECONDA PROVA '.$etat.' '.$divers;
}
else {
echo
'TERZA PROVA '.$etat.' '.$divers;
}
?>

Slice2Theme Servizio per la conversione di Design in markup HTML e/o temi.

WeBrain Solution | Pillsofbits Of Bits

Ok comincio a nn capirci piu nulla...

Se eseguo http://www.miosito.com/miofile.php
mi stampa "TERZA PROVA"

Se invece eseguo http://www.miosito.com/miofile.php?divers=2&etat=ok
mi manda alla root di miosito.com

Allora,cercando qua e la,e guardando alcuni esempi,tutti usano anche $_GET

la prima idea che mi è venuta è stata questa:

<?php
$divers
= $_GET['divers'];
$etat = $_GET['etat'];
if (
$divers == "1" && $etat == "ok") {
echo
" Else prima";
}
else if (
$divers == "2" && $etat == "ok") {
echo
" Else seconda";
}
else {
echo
" Else terza";
}
?>

In questo modo lo script funziona solo se lo inserisco in un nodo di drupal,come pagina esterna inserita nella root di drupal,no.. mi manda sempre alla root.

Per ora grazie mille kiuz e sylpheed

Prego, bravo a tè che hai imparato una cosa nuova...

ecco perchè ti chidevo come mandavi le variabili,...

kiuz wrote:
mi pongo una domanda, come passi la variabile "divers"? con get??

perchè nel caso in cui le mandavi con il Get dovevi usare proprio il codice che hai usato tu.

Per quanto riguarda il metodo "più sicuro" bhe dipende cosa ci devi fare, questo codice non è che dia chiassà quali problemi...
dipende sempre dal contesto.

Slice2Theme Servizio per la conversione di Design in markup HTML e/o temi.

WeBrain Solution | Pillsofbits Of Bits

PS= aggiungo... invece di scrivere tutta quella papaprdella usa questo per il redirect.

<? header("location: http://sito-su-cui-vuoi-fare-il-redirect.it"); ?>

Slice2Theme Servizio per la conversione di Design in markup HTML e/o temi.

WeBrain Solution | Pillsofbits Of Bits