Visualizzazione risultati 1 fino 8 di 8

Discussione: If dentro If redirect

  1. #1
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito 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";



    }

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    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';
    }
    Ultima modifica di darbula : 18-02-2021 alle ore 15.55.02

  3. #3
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    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


    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>';
    Ultima modifica di blackskyisback : 18-02-2021 alle ore 17.14.48

  4. #4
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    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).
    Ultima modifica di darbula : 18-02-2021 alle ore 18.14.35

  5. #5
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    e quindi come adatto il mio codice?

    scusa darbula, ma non capisco tutto , come ho scritto sono un autodidatta e il mio lavoro e ben altro

  6. #6
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    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";
    Ultima modifica di darbula : 18-02-2021 alle ore 18.27.48

  7. #7
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    forse ho risolto

  8. #8
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    risolto, il codice era giusto, mancava una chiusura

    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";



    }

    ?>


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •