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

    Post/Redirect/Get Come ottenere risultati nell'ultima pagina

    Salve a tutti, avrei bisogno di un paio di informazioni:
    Tramite questo codice:
    codice:
    <?php
    if (isset($_POST['submit']))
    {  
    include('prenota.php');
    include_once('./script/inserisci.php');
    }
    else
    {
    include('prenota.php');
    }
    ?>
    Eseguo lo script inserisci.php nella stessa pagina grazie alla pressione del tasto Submit.
    All'interno di inserisci.php vengono stampati i risultati della prenotazione.

    Il problema ovviamente sorge quando viene aggiornata la pagina (i dati vengono reinviati) quindi dovrei usare il metodo Post/redirect/get.

    Insomma dovrei splittare inserisci.php ma non so come recuperare i dati del foreach ($pdo->query("SELECT prodotto FROM $tabella_daprenotare WHERE ID=$v") as $row) nell'ultima pagina

    Come dovrei fare? Grazie
    codice:
    <?php
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $numero = $_POST['numero'];
    $note = $_POST['note'];
    
    
    
    
    foreach($_POST['seleziona'] as $k=>$v)
        {
            $query = $pdo->query("INSERT INTO $tabella_prenotati (nome, cognome, prodotto, quantita, numero, note, dataprenotazione) 
            VALUES 
            ('$nome','$cognome', (SELECT prodotto FROM $tabella_daprenotare WHERE ID=$v), '{$_POST['quantita'][$k]}', '$numero', '$note', NOW())");
    
    
            
            foreach ($pdo->query("SELECT prodotto FROM $tabella_daprenotare WHERE ID=$v") as $row)
                {
                echo "    PRODOTTO:                 <font color='red'>" .$row['prodotto']. ".        </font><br>
                        PRENOTATO A NOME DI:     <font color='red'>" .$nome. " " .$cognome. ".    </font><br>
                        QUANTITA:                 <font color='red'>" .$_POST['quantita'][$k]. "    </font><br>
                        --------------<br>";
                }
        }
    ?>

  2. #2
    Ho pensato di usare un token per rendere unico l'inserimento ma non riesco a farlo funzionare.... Cosa sto sbagliando? Grazie
    codice:
    <?php 
    session_start();
    include_once('./config.php');
    $_SESSION['token'] = uniqid();
    ?>
        <form method="post">
        <input type="hidden" name="token" value="<?=$_SESSION['token'];?>" />
        <input type="submit" name="submit" value="Inserisci" style="width:100px;"/>
        </form>
    
    <?php
    if ( isset($_POST['submit'], $_POST['token']) && ($_POST['token'] === $_SESSION['token']) )
    {
    echo "TEST OK";
    }?>
    Ultima modifica di supersqualo; 30-10-2017 a 13:01

  3. #3
    Ho risolto così
    codice:
    session_start();
    if(isset($_POST['submit']))
        {
        if($_SESSION['user_token']== $_POST['user_token']){
            unset($_SESSION['user_token']);
            $form_token = uniqid();
            $_SESSION['user_token']= $form_token;
            include_once('./arrivi.php');
            include_once('./script/controlloarrivi.php');
            }else{
           header("location: ./2.php");
          }
        }else{
        $form_token = uniqid();
        $_SESSION['user_token']= $form_token;
        include_once('./arrivi.php');
        }
    ?>
    
    Ma adesso ho un altro problema:
    All'interno del file arrivi.php ho una tabella che estrae dati dal database mysql. Quando premo il tasto submit il file controlloarrivi.php esegue una query di inserimento e mi dà i risultati dell'inserimento.
    Adesso, per far in modo che mi escano i risultati e si possa continuare lo stesso lavoro che si stava svolgendo, ho bisogno di ricaricare la pagina solo arrivi.php ogni volta che il tasto submit viene premuto! Ho letto in giro che devo usare per forza ajax ma non ho la più pallida idea di come funzioni!
    Ultima modifica di supersqualo; 30-10-2017 a 17:20

  4. #4
    Allora penso di aver trovato ciò che mi serve...però purtroppo non funziona (funziona solo se non uso questo metodo dei token). Come posso fare per far si che il div funzioni? Grazie
    codice:
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
        $("#submit").click(function(){
            $("#div1").load("prenota.php");
        });
    });
    </script>
    
    
    <?php       
    	session_start();
       if (isset($_POST['submit']))
        {
            if($_SESSION['user_token'] == $_POST['user_token']) {
    			unset($_SESSION['user_token']);
    			$form_token = uniqid(); 
    			$_SESSION['user_token'] = $form_token;
    ?>
    			<div id="div1"></div>
    			<?php
    
            } else {
              header("location: ./2.php");
            }
        } else{ // Start a new session ONLY if this is the first time the user is entering this page.
           $form_token = uniqid();
           $_SESSION['user_token'] = $form_token;
    		include_once('./arrivi.php');
        }
    ?>
    Ultima modifica di supersqualo; 31-10-2017 a 16:21

  5. #5
    Forse dovrei usare event.preventDefault ma non saprei....qualcuno può aiutarmi? Grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.