-
If dentro If redirect
riprendo il discorso del redirect qui, la discussione precedente si puo' cancellare
ho questo codice che esegue il redirect dopo aver aggiornato
Codice PHP:
// echo con finestra alert in javascript
if($query)
echo "<h2><script type=\"text/javascript\">alert('Congratulazioni! Dati inseriti..la scheda di $nome e stata aggiornata ');</script></h2>";
else echo "<script type=\"text/javascript\">alert('Attenzione! Dati non inseriti!');</script";
// effettua il redirect alla pagina di partenza
$link = "../members/cinema.php?id=" . $row['PersonID'] . "";
echo '<script>window.location ="'.$link.'"</script>';
}
else echo "<script type=\"text/javascript\">alert('Errore! Database non selezionato.');</script";
}
voglio sostituirlo con questo, ma non funziona, cioe' fa il redirect ma non dopo aver aggiornato ma appena apro la pagina
consigli
Codice PHP:
// echo con finestra alert in javascript
if($query)
echo "<h2><script type=\"text/javascript\">alert('Congratulazioni! Dati inseriti..la scheda di $nome e stata aggiornata ');</script></h2>";
else echo "<script type=\"text/javascript\">alert('Attenzione! Dati non inseriti!');</script";
// effettua il redirect alla pagina di partenza
//$link = "../members/cinema.php?id=" . $row['PersonID'] . "";
//echo '<script>window.location ="'.$link.'"</script>';
{
if($row['pers_autor'] == "Autore")
{ $link1 = "../members/autori.php?id=" . $row['PersonID'] . "";
echo '<script>window.location ="'.$link1.'"</script>';
}
elseif ($row['pers_autor'] == "Comprimario")
{ $link2 = "../members/comprimari.php?id=" . $row['PersonID'] . "";
echo '<script>window.location ="'.$link2.'"</script>';
}
else
{ $link3 = "../members/cinema.php?id=" . $row['PersonID'] . "";
echo '<script>window.location ="'.$link3.'"</script>';
};
}
}
else echo "<script type=\"text/javascript\">alert('Errore! Database non selezionato.');</script";
}
-
Per essere conforme allo standard un header può essere inviato prima che il server invia dati al cliente, anche se su molti browser funziona su safari/apple non lo farà.
Codice PHP:
<?php
$redirect = true;
if($redirect) {
header('Location: http://www.example.com/');
} else {
echo 'il testo è output';
}
?>
<html>sono sempre output
Mi è venuto il dubbio, forse ti occorre verificare una condizione, dal mio esempio non riesci a capire come si valuta una condizione vera?
mysqli_query Restituisce false in caso di fallimento. Per query riuscite che producono un set di risultati, come SELECT, SHOW, DESCRIBE o EXPLAIN, mysqli_query () restituirà un oggetto mysqli_result . Per altre query riuscite, mysqli_query () tornerà true.
Codice PHP:
<?php
//For SELECT
if(is_object($query)) {
echo 'sono vero';
} else {
echo 'sono comunque false';
}
-
ciao darbula
il codice di partenza serve a fare un redirect alla pagina di cui sono partito dopo l'update
dopo l'update deve controllare il campo pers_autor e se presente andare
Personaggio --> ../members/cinema.php?id=" . $row['PersonID']
Autore --> ../members/autori.php?id=" . $row['PersonID']
Comprimario --> ../members/comprimari.php?id=" . $row['PersonID']
dove sta' il problema?
prima c'e' if($query) e poi if($row['pers_autor']=
quello che non funziona e l'if che deve controllare if($query) e poi eseguire il secondo if if($row['pers_autor']=
spero che mi sono spiegato stavolta:roll:
questo per esempio e' quello precedente che funziona, ma non e' dinamico e mi porta alla pagina predefinita
Codice PHP:
// effettua il redirect alla pagina di partenza
$link = "../members/cinema.php?id=" . $row['PersonID'] . "";
echo '<script>window.location ="'.$link.'"</script>';
-
Ti sei mai chiesto che forse la query restituisce false in caso di fallimento?
Prima di if($query) metti var_dump($query === false);
Puoi effettuare il redirect con php invece di Javascript ma come detto in precedenza non dovrai avere output se fai redirect.
Non sei d'accordo? Certo ci sta, ma anche studiare.
Scusami ma quando leggo il tuo codice difficilmente si capisce cosa intendi mentre cosa intende una persona che studia può anche differire (la conoscenza è l'arte di colui che si esprime su qualcosa che conosce o comunque impara studiando, in tal senso è più facile comunicare e soprattutto capirsi a vicenda).
-
e quindi come adatto il mio codice? :roll:
scusa darbula, ma non capisco tutto , come ho scritto sono un autodidatta e il mio lavoro e ben altro :|
-
Mi devi mostrare l'output del var_dump come ti ho scritto in precedenza per tentativi forse indovini dove c'è l'errore.
Comunque if o elseif o else senza parentesi graffe {} agisce al primo ritorno a capo di una riga e non oltre.
Cioè
Codice PHP:
$bool = true;
if($bool)
echo 'vero'."\n";
else
echo 'falso'."\n";
echo 'indipendentemente da vero o falso'."\n";
-
-
risolto, il codice era giusto, mancava una chiusura :wink:
Codice PHP:
<?php
$actor_id = $_GET["id"];
if (isset($_POST['modifica']))
{
if ($query)
{
$query= ...................
if($query)
echo "<h2><script type=\"text/javascript\">alert('Congratulazioni! Dati inseriti..la scheda di $nome e stata aggiornata ');</script></h2>";
else echo "<script type=\"text/javascript\">alert('Attenzione! Dati non inseriti!');</script";
// effettua il redirect alla pagina di partenza
//$link = "../members/cinema.php?id=" . $row['PersonID'] . "";
// echo '<script>window.location ="'.$link.'"</script>';
// effettua il redirect alla pagina di partenza codice migliorato start
{
if($row['pers_autor'] == "Autore")
{ $link1 = "../members/autori.php?id=" . $row['PersonID'] . "";
echo '<script>window.location ="'.$link1.'"</script>';
}
elseif ($row['pers_autor'] == "Comprimario")
{ $link2 = "../members/comprimari.php?id=" . $row['PersonID'] . "";
echo '<script>window.location ="'.$link2.'"</script>';
}
else
{ $link3 = "../members/cinema.php?id=" . $row['PersonID'] . "";
echo '<script>window.location ="'.$link3.'"</script>';
};
}
// effettua il redirect alla pagina di partenza codice migliorato end
}
else
echo "<script type=\"text/javascript\">alert('Errore! Database non selezionato.');</script";
}
?>
:mrgreen::mrgreen: