Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833

    Alternativa al header("refresh:1 url=pag.php");

    Esiste un'alternativa al codice header("refresh:5 url=srvrq3.php");

    Perche' nella pagina srvrq2.php imposto delle variabili e vorrei passarle alla srvrq3 senza che si schiacci un tasto ma con refresh, solo che con il refresh perdo le variabili?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non puoi salvare le variabili in sessione?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Inanzitutto grazie per aver risposto.

    Non so come fare, ti spiego cosa ho bisogno la prima pagina srvrq1.php serve per mettere
    la username e password (io volevo fare un sql direttamente dentro questa ma dopo aver messo i dati non riesco a gestirli) quindi reperisco i dati che messo nella pagina srvrq2.php
    e qua dentro faccio un sql con i dati che reperito e se riesce l'sql devo chiamare la pagina srvrq3.php.
    Io stavo provando a farlo cosi'

    $sql = "select *
    from ACSSI_DAT.CLSSI00F
    WHERE CLSUSR = '".$customerCLSUSR."'
    AND CLSPSW = '".$customerCLSPSW."' ";
    $stmt = db2_exec($dbh, $sql, array('cursor' => DB2_SCROLLABLE));
    $row = db2_fetch_array($stmt);
    /* Ciclo di lettura dei dati estratti e stampa */
    if (!$row=="") {
    $customerCLSCLI = $row[7];
    print '<input type=hidden name="customerCLSCLI" value="'.$customerCLSCLI.'" />';
    ?>
    <Body onload=location.href="srvrq3.php?&customerCLSCLI=< ?php echo($customerCLSCLI);?>">
    Solo che cosi' non funziona il body onload, non li piace il valore dentro le parentesi.

    Mi sai dare un consiglio per fare questi passaggi
    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Nella pagina dove recuperi i dati del post del form (non ha importanza che sia la stessa o una pagina diversa) fai:

    codice:
    <?php
      session_start();
      //tutto il resto del tuo script per raccattare i dati
    
    
      //salviamo i dati che vuoi "propagare" in sessione: ripeti per ogni variabile che ti interessa.
      //NB: non è che l'indice della $_SESSION debba avere il nome della variabile che vi vai
      //a salvare, è solo per comodità.
      $_SESSION['nomeVARIABILEDASALVARE'] = $variabileDASALVARE;
      //da ripetere per quante variabili vuoi propagare
    ?>
    A questo punto fai il refresh (via header PHP se non hai prodotto output HTML oppure scrivi il metatag HTML) verso la nuova pagina (3)

    Nella pagina3 avrai
    codice:
    <?php
      session_start();
      //da questo momento in poi, l'array $_SESSION è utilizzabile in questa pagina
      // per cui potrai tranquillamente accedere a tutti i dati che hai salvato e propagato
      // dalla pagina (o pagine) precedenti
    ?>
    Penso che comunque ci sia un tutorial sull'utilizzo delle sessioni (dettagliato) anche qui su html.it
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Allora se ho capito nella pagina dove ho reperito il cliente (srvrq2.php) metto questo
    session_start();
    $sql = "select *
    from ACSSI_DAT.CLSSI00F
    WHERE CLSUSR = '".$customerCLSUSR."'
    AND CLSPSW = '".$customerCLSPSW."' ";
    $stmt = db2_exec($dbh, $sql, array('cursor' => DB2_SCROLLABLE));
    $row = db2_fetch_array($stmt);
    /* Ciclo di lettura dei dati estratti e stampa */
    if (!$row=="") {
    $customerCLSCLI = $row[7];

    $_SESSION['customerCLSCLI'] = $customerCLSCLI;

    header("refresh:0 url=srvrq3.php");


    ma nella terza come gestisco la session, cioe' prima cosa metto session_start();


    poi devo fare questo sql

    $sql = "select *
    from ACSSI_DAT.sercl00f
    where sercli = '".$customerSERCLI."'
    ";

    dove ".$customerSERCLI." deve essere impostato con il valore che c'e' nella session.

    Come imposto qua dentro $customerSERCLI con il valore che ho nella session?

    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Se hai già scritto montagne di codice, per non rimettere mano a tutto ti conviene fare, dopo il session_start di inizio pagina

    $variabileINUSO = $_SESSIN['variabileINUSOINSESSIONE'];

    Se invece il codice che hai scritto è poco e puoi "perderci" un po' di tempo a sistemare i nomi di varibili nel codice stesso, al posto di $variabileINUSO nello script ci vai a mettere $_SESSION['variabileINSESSIONE']

    Per esempio nel tuo pezzo di codice
    codice:
    <?php
    $sql = "SELECT * from ACSSI_DAT.sercl00f WHERE sercli = '$_SESSION[customerSERCLI]'"; 
    ?>
    O comunque sia valorizzata.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Non mi arriva la variabile, mi dice Echo of dynamically-built sql: select * from ACSSI_DAT.sercl00f where sercli = ''

    Posto le due pagine:

    <html>
    <?php

    /* Apertura connessione al database*/
    include("connection.inc");

    session_start();
    /* Reperimento variabile passata dal chiamante */
    $customerCLSUSR = $_POST["customerCLSUSR"];
    $customerCLSPSW = $_POST["customerCLSPSW"];

    /* SQL*/

    $sql = "select *
    from ACSSI_DAT.CLSSI00F
    WHERE CLSUSR = '".$customerCLSUSR."'
    AND CLSPSW = '".$customerCLSPSW."' ";
    $stmt = db2_exec($dbh, $sql, array('cursor' => DB2_SCROLLABLE));
    $row = db2_fetch_array($stmt);
    /* Ciclo di lettura dei dati estratti e stampa */
    if (!$row=="") {
    $customerCLSCLI = $row[7];

    $_SESSION['customerCLSCLI'] = $customerCLSCLI;

    header("refresh:0 url=srvrq3.php");
    }

    else {
    print "

    Cliente errato: ".$customerCLSCLI."</p>";

    $error = "1";
    header("refresh:10 url=srvrq1.php");

    }
    ?>

    </body>
    </html>



    Mentre la pagina che dovrebbe ricevere la session e' questa
    <html>
    <?php

    session_start();

    /* Apertura connessione al database*/
    include("connection.inc");

    /* Costruzione dello statement SQL da eseguire */
    $sql = "select *
    from ACSSI_DAT.sercl00f
    where sercli = '$_SESSION[customerSERCLI]'";

    /* Esecuzione diretta dello stament SQL */
    $stmt = db2_exec($dbh, $sql, array('cursor' => DB2_SCROLLABLE));

    print '
    <table border=1 cellpadding=7 cellspacing=1 bordercolor="#666666">';

    ?>

    <?php
    while ($row = db2_fetch_array($stmt)) {
    if (!$row=="") {
    $customerSERCLI = $row[7];
    $customerSERSRN = $row[8];
    $customerSERMOD = $row[10];
    $customerSERRUO = $row[13];
    $customerSERNSP = $row[9];
    $customerSERPRO = $row[14];
    $customerSERVRS = $row[15];
    ?>
    <tr>
    <td align="center">
    <?php echo($customerSERCLI);?>
    </td>
    <td><?php echo($customerSERSRN);?></td>
    <td><?php echo($customerSERMOD);?></td>
    <td><?php echo($customerSERRUO);?></td>
    <td><?php echo($customerSERNSP);?></td>
    <td><?php echo($customerSERPRO);?></td>
    <td><?php echo($customerSERVRS);?></td>
    </tr>
    <?php
    }
    }


    print '</table>
    ';

    /* Stampa dello statement SQL eseguito */
    print "

    Echo of dynamically-built sql: ".$sql."</p>";
    print "

    cliente: ".$$customerSERCLI."</p>";


    ?>


    </div>
    </td>
    </tr>
    </table>
    </body>
    </html>

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    ho sbagliato la sql $sql = "select *
    from ACSSI_DAT.sercl00f
    where sercli = '$_SESSION[customerSERCLI]'";

    Ora funziona grazie mille

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.