[PHP] Strano comportamento Form

Discussione in 'PHP' iniziata da Alex@1983, 28 Maggio 2017.

  1. Alex@1983

    Alex@1983 Utente Attivo

    Registrato:
    9 Maggio 2015
    Messaggi:
    105
    Mi Piace Ricevuti:
    1
    Punteggio:
    18
    Ciao a tutti,

    mi sto arrovellando dietro un tentativo di creazione pagina per inserimento dati tramite Form.

    a seguire vi posto il codice, il problema e' che nella prima , versione che vi riporto quella senza l'header(location: form.php) , una volta compilati i campi e cliccato sul pulsante inserisci. L'utima "riga" compilata verrà reinserita N volte , ad ogni click per refreshare la pagina.

    Nella seconda versione , aggiungendo l' header .... il problema degli inserimenti multipli cessa......ma i dati inseriti nell'ultima compilazione del form non vengono visualizzati, nel db viene creato correttamente il record ma ...lato visualizzazione nulla compare fino all'inserimento di un nuovo record.

    In pratica si vede solo fino al penultimo.

    Mi dareste una mano ????????

    P.S: sono un principiantissimo....non mi bacchettate troppo ;-)

    Prima versione.... senza header

    PHP:

    <?php
    ob_start
    ();//questa serve in quanto si usa la funzione header dopo un outpt html
    session_start();
    //.....
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
    Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

    <html>
    <link type="text/css" rel="stylesheet" media="all" href="ri.css"/>
    <head>
        <title>Registro</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <meta name="generator" content="HAPedit 3.0">
    </head>

    <body>
    <div id="container">
    <div class="riepilogo">
    <div style="
            padding-top: 100px;
            padding-right: 0px;
            padding-bottom: 110px;
          ">

      <table>

     
    <?php


    $HOST 
    'localhost';
     
    $USER 'web1105';
     
    $PASSWORD '.........';
    $connessione mysql_connect("$HOST","$USER","$PASSWORD");//database connection

    mysql_select_db("my_web1105");
    $sqlaperti "SELECT COUNT(stato) FROM `Registro` WHERE stato = \"Aperto\"";
        
    $sqlAp mysql_query($sqlaperti);
        list(
    $aperti) = mysql_fetch_array($sqlAp);

    $sqlchiusi "SELECT COUNT(stato) FROM `Registro` WHERE stato = \"Chiuso\"";
        
    $sqlCh mysql_query($sqlchiusi);
        list(
    $chiusi) = mysql_fetch_array($sqlCh);

    $sqlincorso "SELECT COUNT(stato) FROM `Registro` WHERE stato = \"In corso\"";
    $sqlIc mysql_query($sqlincorso);
        list(
    $incorso) = mysql_fetch_array($sqlIc);

    $sqlannullati "SELECT COUNT(stato) FROM `Registro` WHERE stato = \"Annullato\"";
        
    $sqlAn mysql_query($sqlannullati);
        list(
    $annullati) = mysql_fetch_array($sqlAn);

    $sqltotali "SELECT COUNT(*) FROM `Registro`";
        
    $sqlTo mysql_query($sqltotali);
        list(
    $totali) = mysql_fetch_array($sqlTo);


    echo 
    "<tr>
              <td class='lblstati'>"
    .APERTI.
                  
    "</td>".
         
    "<td class='numaperti'>"."$aperti".
              
    "</td>
         </tr>"
    .
        
    "<tr>
            <td class='lblstati'>"
    .CHIUSI.
              
    "</td>".
            
    "<td class='numchiusi'>".$chiusi.
              
    "</td>
        </tr>"
    .
        
    "<tr>
            <td class='lblstati'>"
    .INCORSO.
                  
    "</td>".
            
    "<td class='numincorso'>".$incorso.
              
    "</td>
        </tr>"
    .
        
    "<tr>
            <td class'lblstati'>"
    .ANNULLATI.
              
    "</td>".
            
    "<td class='numannullati'>".$annullati.
              
    "</td>
        </tr>"
    .
        
    "<tr>
            <td class='lblstati'>"
    .TOTALI.
              
    "</td>".
            
    "<td class='numtotali'>".$totali.
              
    "</td>
        </tr>"
    ;
    ?>

     </table>
    </div>

    <div style="
         padding-left: 20px;
         padding-right: 0px;
         height: 0px;
         widht: 0px;
         ">
       <form method="post" runat="server" action="<?php echo $_SERVER['PHP_SELF']; ?>" autocomplete="on">
        <table class="table" align="center">
          <tr>
            <td align="center" colspan="8" class="registro"><h1>REGISTRO 2017</h1></td>
        </tr>

          <tr class="lbl">
             <td class="lbl"; align="center">DATA</td>
           </td>
         <td class="lbl"; align="center">RICHIEDENTE
           </td>
         <td class="lbl"; align="center">CATEGORIA
           </td>
        
             <td class="lbl"; align="center">STATO
           </td>
         </tr>
          <tr>  
             <td> <input type="text" id="data"  name="data" value="" size="10" autocomplete="on">
           </td>
         <td> <input type="text" id="rich"  name="rich" value="" size="15" autocomplete="on">
           </td>
        
    td> <input type="text" id="rcat"  name="cat" value="" size="15" autocomplete="on">
           </td>
       
             <td> <select id="stato"  name="stato" value="">
            <option></option>
            <option>Aperto</option>
            <option>Chiuso</option>
            <option>In corso</option>
            <option>Annullato</option>
              </select>
           </td>
        
           <tr>
             <td class="lbl"; align="center"; colspan="8">DESCRIZIONE
           </td>
         </tr>
           <tr>
         <td colspan="8"> <input type="text" class="desc" id="desc"  name="desc" value="" size="137" autocomplete="on">
           </td>
         </tr>
           <tr>
         <td align="center"; colspan="8"><input type="submit" name="inserisci" value="Inserisci"></td>
         </tr>
       </table>
      </form>
    <?php

    if(isset($_POST['inserisci'])){
        
    header("Cache-Control: no-cache"); //dovrebbero vuotare la cache
        
    header("Expires: -1");

       
        
    //codice d'invio dati al db.

    $HOST 'localhost';
    $USER 'web1105';
    $PASSWORD '...................';
    $connessione=mysql_connect("$HOST","$USER","$PASSWORD");//database connection

    mysql_select_db("my_web1105");

    $id'NULL';
    $data $_POST['data'];

    $dataUs explode("/"$data);
    $datadb $dataUs[2]. "-"$dataUs[1]. "-" .$dataUs[0];

    $richiedente $_POST['rich'];

    $categoria $_POST['cat'];

    $stato $_POST['stato'];

    $descrizione $_POST['desc'];

    //--VERIFICA CHE I CAMPI NON SIANO VUOTI

    if (($data=="") || ($richiedente==""))
    //
        
    {
            echo 
    "Non hai inserito la data";
    //      
            
    exit;
        }
    //
    //
    $toinsert "INSERT INTO `Registro`
            (id, data, richiedente,  categoria,  descrizione, stato,)
                VALUES
                ('
    $id',
                  '
    $datadb',
                 '
    $richiedente',
                 '
    $categoria',    
                 '
    $descrizione',
                 '
    $stato'),
            

    //declare in the order variable
    $res = mysql_query($toinsert);
    if(
    $res){
       

            echo("
    INSERITO");

    //        
    $messaggio = urlencode("Inserimento effettuato con successo");
    //        header("
    locationform.php");
       
        }

    else
        {
        echo("
    ERRORE '$id',
                  
    '$data',
                 
    '$richiedente',
               
                 
    '$categoria',
             
                 
    '$descrizione',
                 
    '$stato'),
               

    mysql_close($connessione);
    }
    }

    ?>


    </div>
    </div>


    <div class=�wide�> </div>


    <div id="provaprova"
         style="    
         padding-top: 0px;
         width: 123%;
         padding-right: 0px;
         padding-left: 5px;
         height: 0px;
         height: 800px;overflow-y: scroll; border:0px solid black;
       ">
    <hr>
    <br>
    <br>

    <table class="tableregistro" border=1 cellspacing=0 cellpadding=3>
    <?php


    $HOST 
    'localhost';
     
    $USER 'web1105';
     
    $PASSWORD '...';
    $connessione mysql_connect("$HOST","$USER","$PASSWORD");//database connection

    mysql_select_db("my_web1105");


    $sql "SELECT * FROM `Registro`\n"
        
    "ORDER BY `Registro`.`id` DESC";
    $result mysql_query($sql);

    $dataoraRelativi mysql_fetch_array($result);
    //$dataRel = $dataoraRelativi['data'];



    while($r mysql_fetch_array($result)) {

    $d explode("-"$r['data']);
    $dataRelIta $d[2]. "/" .$d[1] . "/" .$d[0];


    if (
    $r['stato'] == "Chiuso")

    echo 
    "<tr bgcolor='#98FF98'><td>".$r['id']."</td>".
         
    "<td style='width: 80px;'>".$dataRelIta."</td>".
         
    "<td>".$r['richiedente']."</td>".
         
    "<td style='width: 400px;'>".$r['descrizione']."</td>".
         
    "<td>".$r['stato']."</td>".
        </
    tr>";

    else

    if (
    $r['stato'] == "Aperto")


    echo "
    <tr bgcolor='#FF8C69'><td>".$r['id']."</td>".
         "
    <td style='width: 80px;'>".$dataRelIta."</td>".
         "
    <td>".$r['richiedente']."</td>".
         "
    <td>".$r['categoria']."</td>".
         "
    <td style='width: 400px;'>".$r['descrizione']."</td>".
         "
    <td>".$r['stato']."</td>".
        </tr>"
    ;

    else

    if (
    $r['stato'] == "Annullato")


    echo 
    "<tr bgcolor='#5F5F5F' style='color:#FFFF00'><td>".$r['id']."</td>".
        
    "<td style='width: 80px;'>".$dataRelIta."</td>".
         
    "<td>".$r['richiedente']."</td>".
         
    "<td>".$r['categoria']."</td>".
         
    "<td style='width: 400px;'>".$r['descrizione']."</td>".
         
    "<td>".$r['stato']."</td>".
        </
    tr>";

    else

    if (
    $r['stato'] == "In corso")


    echo "
    <tr bgcolor='#FFFF66'><td>".$r['id']."</td>".
        "
    <td style='width: 80px;'>".$dataRelIta."</td>".
         "
    <td>".$r['richiedente']."</td>".
         "
    <td>".$r['categoria']."</td>".
         "
    <td style='width: 400px;'>".$r['descrizione']."</td>".
         "
    <td>".$r['stato']."</td>".
          </tr>"
    ;

    else

    echo 
    "<tr><td>".$r['id']."</td>".
         
    "<td>".$r['data']."</td>".
         
    "<td>".$r['richiedente']."</td>".
         
    "<td>".$r['categoria']."</td>".
         
    "<td style='width: 400px;'>".$r['descrizione']."</td>".
         
    "<td>".$r['stato']."</td>".

        </
    tr>";
    }

    mysql_close(
    $connessione);
    ?>
    </table>
    </div>
     </body>
    </html>

    <?php
    ob_end_flush();//chiude ob_start
    ?>
    Non posso incollare la versione con header perchè supero il numero di righe che posso scrivere, comunque pasta decommentare la riga 210 del file sopra riportato
     
    Ultima modifica: 28 Maggio 2017
  2. mr.x

    mr.x Utente Attivo

    Registrato:
    9 Aprile 2016
    Messaggi:
    214
    Mi Piace Ricevuti:
    22
    Punteggio:
    28
    Sposta la parte HTML, la struttura del form,
    dopo le istruzioni PHP di recupero e inserimento in DB e dovrebbe andare .


    Inviato dal mio CW-Vi7 utilizzando Tapatalk
     
    Ultima modifica: 29 Maggio 2017
Sto caricando...

Condividi questa Pagina