Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    integrare funzione redirect nel php

    come da titolo del post, vorrei integrare un pezzo di javascript nel php, e diciamo che in parte ci riesco, anche se non so se poi quello che faccio è corretto dal punto di vista della correttezza del linguaggio.
    nel php, ad un certo punto, se una data condizione si verifica, cioè se if viene soddisfatto, vorrei che l'utente sia reindirizzato verso una pagina del sito...

    Codice PHP:
    echo ("<script language=\"javascript\" type=\"text/javascript\">"); 
    echo (
    "window.setTimeout (location.href=('http://***********'), 5000)"); 
    echo (
    "</script>"); 
    se if e soddisfatto, in effetti il reindirizzamento avviene, ma senza che passino i 5 secondi impostati?
    Dov'è che sbaglio?sono davvero un ciuccio per tutto ciò che riguarda il php e il javascript, e per quanto io cerchi, guardi e legga, anche su questo preziosissimo sito, sono proprio a corto di basi

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    forse fai un po' di confusione... in maniera un po' informale ti dico: pensa che "in php" tu generi del codice html+javascript che poi alla fine dell'esecuzione (del php) andrà a formare la pagina e sarà interpretato (visualizzato l'html e interpretato il codice js)... quello che scrivi potrebbe funzionare, ma bisogna vedere il resto della pagina che viene generato com'è fatto.

    Se il tuo "if" viene soddisfatto sarà comunque generata un'intera pagina HTML... se non passano i 5 secondi (come dici) secondo me in realtà la tua situazione è questa (ma è solo una mia ipotesi):

    - tu hai una pagina "A" in cui avviene una qualche azione
    - l'azione richiama lo script php in cui fai il controllo e che genera la nuova pagina che poi reindirizza (se il reindirizzam. avviene) a se stessa dopo 5 secondi

    Dovresti postare per maggiori chiarimenti:
    - i nomi (anche fittizi) delle pagine in gioco
    - l'azione che genera il reindirizzamento

  3. #3
    Ciao eiyen,
    allora, ho una pagina con del codice php dove si registra un utente al sito; la registrazione avviene dopo un controllo sulla e-mail (si verifica che non ci siano altri utenti registrati con la stessa e-mail).
    Se la registrazione va a buon fine vorrei reind. ad un'altra pagina del sito dopo tot. secondi.
    se faccio delle prove, arrivo alla registrazione corretta, viene effettuato il reindirizzamento alla pagina desiderata, ma senza attendere i secondi che ho impostato (avviene subito).
    Questa pagina descritta si chiama REGISTRA-UTENTE.php
    Ecco una parte del codice....

    Codice PHP:
    .......
    if (
    $rows == 0)  
    {  
    // aggiunge le informazioni di registrazione alla tabella registro-utenti del database 

    $query "INSERT INTO registro_utenti (email,password,cognome,nome,eta,indirizzo,telefono,web) VALUES('$_REQUEST[email]','$_REQUEST[password]','$_REQUEST[cognome]','$_REQUEST[nome]','$_REQUEST[eta]','$_REQUEST[indirizzo]','$_REQUEST[telefono]','$_REQUEST[web]')";           

    print (
    "<table>"); 
    print (
    "
    "
    ); 
    print (
    "<tr><td><img src=\"../mailOK.png\">
    <font color=\"#6666ff\"><h3>Grazie!</h3>
    [b]Registrazione completata con successo.
    Continua la navigazione nel sito![/b]</font>

    </td></tr>"
    ); 
    print (
    "</table>");   

    echo (
    "<script language=\"javascript\" type=\"text/javascript\">"); 
    echo (
    "window.setTimeout (location.href=('http://www.vattelappesca.com/home.html'), 5000)"); 
    echo (
    "</script>"); 
    }
    else  

    // altrimenti mostra un messaggio che invita a correggere i dati 

    print ("<table>"); 
    print (
    "
    "
    ); 
    print (
    "<tr><td><img src=\"../error.png\">
    <h3>Ops!</h3>
    [b]Non &egrave; possibile portare a termine la registrazione.
    La email inserita &egrave; gi&agrave; presente nel database.[/b]
    </td></tr>"
    ); 
    print (
    "</table>"); 


  4. #4
    per quanto riguarda l'azione che genera il reindirizzamento, questa vorrei che reindizzasse ad un'altra pagina del sito dopo un tot di secondi....
    Quando faccio delle prove, se faccio il processo di registrazione correttamente, cioè inserendo un nuovo utente con una nuova e-mail, viene visualizzato il messaggio di 'registrazione effettuata con successo, avviene il reind. alla pagina impostata, ma senza che l'attesa dei secondi impostati nello script (contenuto nel php)

    codice:
    echo ("<script language=\"javascript\" type=\"text/javascript\">");  
    echo ("window.setTimeout (location.href=('http://www.vattelappesca'), 5000)");  
    echo ("</script>");
    Se la registrazione non va a buon fine, cioè si verifica l' else, non avviene alcun reindirizzamento.

    Ne deduco che sarebbe possibile inserire del javascript nel php,vero?
    Solo che magari sbaglio in qualche parte, qualche virgola o punto-virgola.
    Potresti aiutarmi gentilmente?
    Thanks

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    JS nel PHP non ha senso... non si può... in linea di massima da quel che mi pare di capire dovrebbe esssere tutto a posto, ma forse il render della pagina è più lento dello script e quindi il tempo che pensi non passi in realtà è dovuto al rendering. Se è così puoi racchiudere il reindirizzamento in una funzione (es. "REDIR") e modificare il tag body:

    Codice PHP:
    ...
    <
    script language=\"javascript\" type=\"text/javascript\">");  
      function 
    REDIR() {
        
    window.setTimeout (location.href=('http://www.vattelappesca'), 5000)");
      };
    </script>
    </head>
    <body onload="
    REDIR();">
    ... 
    ...in pratica definisci la funzione nella prima parte e "onload" fa sì che sia eseguita solo al caricamento della pagina.

  6. #6
    scusami, ma il problema è che io vorrei che il reindirizzamento si attuasse al verificarsi di una condizione if.
    se faccio come mi suggerisci tu (grazie comunque per l'interesse) il reind. avverrebbe sempre, sia con if soddisfatta che con invece else, o mi sbaglio?

    A me la pagina viene reindirizzata, ma subito senza l'attesa dei 5 sec. (5000 millisecondi) impostati nel js.
    Come posso risolvere o ovviare?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    no... questa roba la devi mettere dentro il ramo true del tuo if (nell'es. tuo: dentro "if ($rows == 0) ") se hai già generato il tag body puoi aggiungere l'evento in JS

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.