Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    11

    Form con metodo GET che però sembra usare il metodo POST

    Ho un problema con una pagina HTML+PHP che utilizza un FORM per l'ok al caricamento dati da un DB.
    In pratica, una pagina (importa.php) chiede il file da caricare e poi richiama una seconda pagina (importafile.php) passandogli il file.
    Questa seconda pagina mostra a schermo i dati inseriti e chiede all'utente se sono corretti. In caso affermativo l'utente deve cliccare sul pulsante "Importa". Il pulsante non fa altro che richiamare una terza pagina (caricafile.php) che non fa altro che copiare i dati da una tabella temporanea di un DB a quella definitiva.
    Il problema sta nel pulsante "Importa". Ho inserito un FORM (a fondo pagina) dichiarando esplicitamente che voglio utilizzare il metodo GET (perchè è quello utilizzato dai controlli di autenticazione di inizio pagina) ma quando lo uso sulla barra degli indirizzi non compare il "?uid=...." che serve per passare il parametro uid.
    Mi aiutate?
    grazie
    ciao
    giorgio


    Codice PHP:
    <?php
    include_once("include/config.php");
    include_once(
    "include/auth.lib.php");

    list(
    $status$user) = auth_get_status();
    ?>


    <html>
    <head>
    <title>Pagina principale</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

    <style>
    <!--
    #foldheader{cursorointer;cursor:hand ; font-weight:bold ;
    list-style-image:url(fold.gif)}
    #foldinglist{list-style-image:url(list.gif)}
    //-->
    </style>


    </head>

    <body>
    <?php // Verifica di autenticazione 
    if ($status != AUTH_LOGGED) {
        
    header ("Refresh: 3;URL=index.html"); ?>
        <table width="94%" border="0">
      <tr>
        <td width="23%" height="112">&nbsp;</td>
        <td width="74%">&nbsp;</td>
        <td width="3%">&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>
        <fieldset><legend>Login</legend>
        <font size="+4"><br>
        <?php echo ("<br>Non sei autenticato.<br><br>Attendi..."); ?>
        </font>
                  </fieldset></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>

    <?php    
        
    exit;
    }else{    
    ?>

    <table width="1400" border="0">
      <tr>
        <td width="15%"><img src="images/Windgrande.jpg" width="100" heigth="100">&nbsp;</td>
        <td width="84%"><div align="center"><font color="#FF0000" size="8" face="Arial, Helvetica, sans-serif">Importa file</font></div></td>
        <td width="1%">&nbsp;</td>
      </tr>
      <tr>
        <td valign="top"><br><br><br><?php include_once ("include/menu.php"); ?></td>
        <td>

        <fieldset><legend><?php echo ($user['name']);?>: Importa file CSV</legend>

        <br>File inserito:<br><br>
        Nome: <?php echo $_FILES['nomefile']['name']?><br>

        Dimensione: <?php echo $_FILES['nomefile']['size']?><br>
        Tipo file: <?php echo $_FILES['nomefile']['type']?><br>
        Errore caricamento: <?php echo $_FILES['nomefile']['error']?><br>
        
        </fieldset>    

    <?php
    if ($_FILES['nomefile']['size'] > 0) { 

        
    //legge il file dalla posizione temporanea 
        
    $file $_FILES['nomefile']['tmp_name']; 
        
    $handle fopen($file,"r"); 

        
    //Pulisce il database temp
        
    mysql_query("TRUNCATE TABLE attivita_tmp") or die( "Errore nella query. Query non eseguita."); 

        
    //legge i record e li inserisce nel database 
        
    $data fgetcsv($handle,1000,";","'");
        if (
    $data[0]=="Area"

        
    $data fgetcsv($handle,1000,";","'"); 
        do { 
            if (
    $data[0]) { 
    //        echo ("INSERT INTO attivita_tmp (area, citta, indirizzo, attivita, gg_provisioning) VALUES 
    //                ( 
    //                    '".addslashes($data[0])."', 
    //                    '".addslashes($data[1])."', 
    //                    '".addslashes($data[2])."', 
    //                    '".addslashes($data[3])."', 
    //                    '".addslashes($data[4])."' 
    //                ) 
    //            ");
                
    mysql_query("INSERT INTO attivita_tmp (area, citta, indirizzo, attivita, gg_provisioning) VALUES 
                    ( 
                        '"
    .addslashes($data[0])."', 
                        '"
    .addslashes($data[1])."', 
                        '"
    .addslashes($data[2])."', 
                        '"
    .addslashes($data[3])."', 
                        '"
    .addslashes($data[4])."' 
                    ) 
                "
    ); 
            } 
        } while (
    $data fgetcsv($handle,1000,";","'")); 
        
    // 

     

    ?> 

        <br><br>
        Hai inserito:
        <br><br>

        <?php 
              $query 
    "SELECT * FROM attivita_tmp";
              
    $activities mysql_query($query$conn_ID) or die(mysql_error()); ?>
              
        
    <table width="100%" border="1" bordercolorlight="#6699FF">
      <tr> 
        <td BGCOLOR="#6699FF" width="5%" align="center"><strong><font face=Verdana color=#FFFFFF size=1>Area</font></strong></td>
        <td BGCOLOR="#6699FF" width="15%" align="center"><strong><font face=Verdana color=#FFFFFF size=1>Città</font></strong></td>
        <td BGCOLOR="#6699FF" width="25%" align="center"><strong><font face=Verdana color=#FFFFFF size=1>Indirizzo</font></strong></td>
        <td BGCOLOR="#6699FF" width="50%" align="center"><strong><font face=Verdana color=#FFFFFF size=1>Attività</font></strong></td>
        <td BGCOLOR="#6699FF" width="5%" align="center"><strong><font face=Verdana color=#FFFFFF size=1>GG prov.</font></strong></td>
      </tr>

    <?php while ($row mysql_fetch_assoc($activities)) { ?>

      <tr> 
        <td align="center"><font face=Verdana size=1><?php echo ($row['area']); ?></font></td>
        <td align="center"><font face=Verdana size=1><?php echo ($row['citta']); ?></font></td>
        <td align="center"><font face=Verdana size=1><?php echo ($row['indirizzo']); ?></font></td>
        <td align="center"><font face=Verdana size=1><?php echo ($row['attivita']); ?></font></td>
        <td align="center"><font face=Verdana size=1><?php echo ($row['gg_provisioning']); ?></font></td>
      </tr>

    <?php 
    ?> 
    </table><br><br>

    <form name="carica" action="caricafile.php?uid=<?php echo ($user['uid']); ?>" method="get">
        <br><br>Se i dati sono corretti premi IMPORTA per caricarli sul DB.
        <input type="submit" value="Importa">
    </form>

    <?php } else { echo "<br><br><strong><font color=#FF0000>File non valido</font></strong>"; } } ?>
        
        </td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>

    <?php
    // Fine IF verifica autenticazione
    ?>

    </body>
    </html>

  2. #2
    scusa eh, ma se metti come action:

    codice:
     action="caricafile.php?uid=<?php echo ($user['uid']); ?>"
    secondo te, che cosa dovrebbe mostrarti nella url? la action è la uri a cui punta il form, se ci metti pure la querystring quella la vedi. se non vuoi mostrare devi mettere un

    codice:
    <input type="hidden" value="<?php echo ($user['uid']); ?>" />
    e togliere la querystring dalla action
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    11
    Forse non mi ero spiegato bene.
    Quello che mi serve è appunto che la querystring si veda nella url.
    Invece quando clicco il pulsante, il browser va all'indirizzo giusto ma la querystring sparisce.
    Dato che la pagina puntata dal form legge i dati come GET è chiaro che non funziona.
    ciao
    giorgio

    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    scusa eh, ma se metti come action:

    codice:
     action="caricafile.php?uid=<?php echo ($user['uid']); ?>"
    secondo te, che cosa dovrebbe mostrarti nella url? la action è la uri a cui punta il form, se ci metti pure la querystring quella la vedi. se non vuoi mostrare devi mettere un

    codice:
    <input type="hidden" value="<?php echo ($user['uid']); ?>" />
    e togliere la querystring dalla action

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2014
    residenza
    Venezia
    Messaggi
    66
    ...prova a togliere
    value="Importa"

    ..no scusa..come non detto..
    Ultima modifica di bedo1; 22-01-2014 a 15:54

  5. #5
    Quote Originariamente inviata da bedo1 Visualizza il messaggio
    ...prova a togliere
    value="Importa"
    Ma cosa c'entra!?!?


    Se usi method GET i dati che forzi sulla url vengono rimossi. Ti consiglio di usare il POST e recuperare il parametro uid in GET:


    Codice PHP:
    <?php
    if (isset($_POST['submit'])) {
        
    $uid $_GET['uid'];
    }
    ?>

    <form name="carica" action="caricafile.php?uid=<?php echo ($user['uid']); ?>" method="post">
        <br><br>Se i dati sono corretti premi IMPORTA per caricarli sul DB.
        <input type="submit" value="Importa" name="submit">
    </form>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    11
    Grazie a tutti.
    Risolto: visto che le querystring inserite nei campi action vengono rimosse, ho semplicemente messo il dato uid come hidden lasciando il metodo GET e funziona tutto.
    ciao
    giorgio

    Quote Originariamente inviata da satifal Visualizza il messaggio
    Ma cosa c'entra!?!?


    Se usi method GET i dati che forzi sulla url vengono rimossi. Ti consiglio di usare il POST e recuperare il parametro uid in GET:


    Codice PHP:
    <?php
    if (isset($_POST['submit'])) {
        
    $uid $_GET['uid'];
    }
    ?>

    <form name="carica" action="caricafile.php?uid=<?php echo ($user['uid']); ?>" method="post">
        <br><br>Se i dati sono corretti premi IMPORTA per caricarli sul DB.
        <input type="submit" value="Importa" name="submit">
    </form>

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.