Visualizzazione risultati 1 fino 8 di 8

Discussione: form con memorizzazione e stampa

  1. #1
    Guest

    Predefinito form con memorizzazione e stampa

    Ciao a tutti... ho bisogno di un vostro aiuto

    la pagina in questine è questa: http://linuxmx.altervista.org/prova.php

    Io volevo sapere se è possibile e in tal caso come, scrivere nei vari from, memorizzare ciò che è stato scritto in un file (qualsiasi estensione mi andrà bene) e le informazioni inserite mi vengano aggiunte nella tabella sottostante (possibilmente in ordine di inserimento, quindi cronologico)...

    il codice della pagina è:

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
    <
    title>Documento senza titolo</title>
    <
    style type="text/css">
    <!--
    body {
    background-color: #000000;
    }
    .
    Stile1 {color: #CCCCCC}
    .Stile2 {color: #FFFFFF}
    -->
    </
    style></head>

    <
    body>
    <
    div align="center">
    <
    p>&nbsp;</p>
    <
    table width="800" border="0" cellspacing="0" cellpadding="0">
    <
    tr>
    <
    td width="264" height="40" align="left" valign="middle"><p class="Stile1">Nome:</p>
    </
    td>
    <
    td width="536" height="40" align="left" valign="middle"><p>
    <
    input type="text" name="textfield22" />
    <
    br />
    </
    p>
    </
    td>
    </
    tr>
    <
    tr>
    <
    td height="40" align="left" valign="middle"><span class="Stile1">Nome programma:</span></td>
    <
    td height="40" align="left" valign="middle"><label>
    <
    input type="text" name="textfield2" />
    </
    label></td>
    </
    tr>
    <
    tr>
    <
    td height="40" align="left" valign="middle"><span class="Stile1">Versione programma:</span></td>
    <
    td height="40" align="left" valign="middle"><label>
    <
    input type="text" name="textfield3" />
    </
    label></td>
    </
    tr>
    </
    table>
    <
    p>&nbsp;</p>
    </
    div>
    <
    div align="center">
    <
    table width="800" border="0" cellspacing="0" cellpadding="0">
    <
    tr>
    <
    td width="266" bgcolor="#CCCCCC"><div align="center">Nome</div></td>
    <
    td width="266" bgcolor="#CCCCCC"><div align="center">Nome programma </div></td>
    <
    td width="266" bgcolor="#CCCCCC"><div align="center">Versione programma </div></td>
    </
    tr>
    <
    tr>
    <
    td>&nbsp;</td>
    <
    td>&nbsp;</td>
    <
    td>&nbsp;</td>
    </
    tr>
    <
    tr>
    <
    td><div align="center"><span class="Stile2">rossi</span></div></td>
    <
    td><div align="center"><span class="Stile2">autocad</span></div></td>
    <
    td><div align="center"><span class="Stile2">2009</span></div></td>
    </
    tr>
    </
    table>
    </
    div>
    <
    p align="center">&nbsp;</p>
    <
    p align="center">&nbsp;</p>
    <
    p align="center">&nbsp;</p>
    </
    body>
    </
    html>
    spero di riuscire in questa impresa

    grazie a tutti in anticipo

  2. #2
    aldigi non è connesso Neofita
    Data registrazione
    07-02-2006
    Messaggi
    4

    Predefinito

    Ciao Linuxmx,

    è fattibilissimo e con un po di pratica sui file di testo anche semplice, il che non guasta.
    Se il Tuo intento è quello di ottenere una semplice lista, puoi tranquillamente mettere il tutto su un unica pagina.
    Per l’inserimento e la lettura dei dati nel file usa FOPEN, per ottenere la lista in ordine cronologico, riversa l’intero contenuto del file in un ARRY che leggerai al contrario tramite un ciclo FOR invertito.

    Ho utilizzato lo stesso metodo per creare un Guestbook.

    Ciao AlDiGi

  3. #3
    Guest

    Predefinito

    Mi potete indirizzare a una guida o fare un esempio anche solo con un tag?

    perche se non ho capito male io devo fare uno script che mi faccia:

    salvo dati su txt premendo il tasto invia

    carico i dati nella tabella sottostante..

    giusto?






    _______________________________





    rettifico...

    :D

    devo solo capire come scrivere nel file con i form...

    help
    Ultima modifica di linuxmx : 04-05-2009 alle ore 14.45.01

  4. #4
    L'avatar di jb17
    jb17 non è connesso Utente giovane
    Data registrazione
    07-01-2006
    Messaggi
    48

    Predefinito

    Ho creato questa pagina php basandomi sulla tua. Dovrebbe fare tutto quello che hai richiesto. Copia tutto il codice sottostante e salvalo in una pagina chiamata form.php (se cambi il nome della pagina ricordati di modificare il codice in base al nuovo nome)
    Codice PHP:
    <?php
    @$action=$_GET['action'];

    if(
    $action=="sub"){
    $nome=$_POST['nome'];
    $prog=$_POST['prog'];
    $vers=$_POST['vers'];
    $tot="$nome"."$prog"."$vers";

    if(
    preg_match("=([|#%]+)=","$tot")){
    echo(
    "<span style=\"color:rgb(255,0,0);\">Non sono ammessi i seguenti caratteri: <b style=\"color:rgb(255,255,255);\">% # |</b> </span><br /><br />");

    }
    else{
    if((
    $nome=="") || ($prog=="") || ($vers=="")){
    echo(
    "<span style=\"color:rgb(255,0,0);\">Completa tutti i campi!</span><br /><br />");
    }
    else{
    $nome2=htmlentities($nome);
    $prog2=htmlentities($prog);
    $vers2=htmlentities($vers);

    $scrivi=fopen("datiform.php","a+");
    flock($scrivi,LOCK_EX);
    fwrite($scrivi,"$nome2|$prog2|$vers2%#%");
    flock($scrivi,LOCK_UN);
    fclose($scrivi);

    header("location:form.php");
    }
    }
    }
    else{
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
    <title>Inserisci programma</title>
    <style type="text/css">
    <!--
    body{margin:20px; padding:0px; text-align:center; background-color: #000000;}
    #main{margin:0px auto; padding:0px auto; text-align:center; width:800px;}
    #tabella{width:800px;}
    #tabella td{width:400px; text-align:left; color:#CCCCCC;}
    #tabella2{width:800px; margin-top:30px;}
    #tabella2 td{width:266px; text-align:center; color:rgb(255,255,255);}
    input{background-color:rgb(255,255,255); border:1px solid rgb(100,100,100); width:194px; padding:3px 3px 3px 3px;}
    -->
    </style>
    </head>
    <body>
    <div id="main">
    <table id="tabella">
    <form action="form.php?action=sub" method="post">
    <tr>
    <td>
    <span class="scritta1">Nome:</span>
    </td>
    <td>
    <input type="text" name="nome" />
    </td>
    </tr>
    <tr>
    <td>
    <span class="scritta1">Nome programma:</span></td>
    <td>
    <input type="text" name="prog" />
    </td>
    </tr>
    <tr>
    <td>
    <span class="scritta1">Versione programma:</span></td>
    <td>
    <input type="text" name="vers" />
    </td>
    </tr>
    <tr>
    <td>
    </td>
    <td>
    <input type="submit" action="submit" value="Invia" style="width:100px; background-color:rgb(200,200,200);" />
    </td>
    </tr>
    </table>
    </form>
    <table id="tabella2">
    <tr style="background-color:#FFFFFF;">
    <td style="color:rgb(0,0,0);">Nome</td>
    <td style="color:rgb(0,0,0);">Nome Programma</td>
    <td style="color:rgb(0,0,0);">Versione Programma</td>
    </tr>
    <?php
    if(file_exists("datiform.php")){
    $leggi=fopen("datiform.php","r+");
    flock($leggi,LOCK_SH);
    $lettura=@fread($leggi,filesize("datiform.php"));
    flock($leggi,LOCK_UN);
    fclose($leggi);


    $sp1=explode("%#%",$lettura);
    $sp1c=count($sp1)-1;
    $sp1x=array_reverse($sp1);

    for(
    $a=0;$a<=$sp1c;$a++){
    @
    $sp2=explode("|",$sp1x[$a]);
    echo@(
    "<tr><td>$sp2[0]</td>");
    echo@(
    "<td>$sp2[1]</td>");
    echo@(
    "<td>$sp2[2]</td></tr>");
    }
    }
    else{

    }
    ?>
    </table>
    </div>
    </body>
    </html>
    Ciao
    Il sito di jb17: jb17.altervista.org

  5. #5
    Guest

    Predefinito

    Se non vado errato la dichiarazione <!DOCTYPE> deve essere sempre la prima cosa. (il Validatore mi da raggione)

  6. #6
    Guest

    Predefinito

    Grazie mille è esattamente quello che cercavo!!!


    un vero grazie x la disponibilità..

    ho modificato la pagina secondo le mie esigenze ora si trova qui: http://linuxmx.altervista.org/12.php ma se notate il campo "versione" non viene stampato.. come posso sistemare la cosa? questo è il codice della pagina:

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
    <title>database rpm</title>
    <style type="text/css">
    <!--
    body {
    background-color: #000000;
    }
    .Stile1 {color: #000000}
    .Stile2 {font-size: 14px}
    -->
    </style></head>

    <body>
    <?php
    @$action=$_GET['action'];

    if(
    $action=="sub"){
    $nome=$_POST['nome'];
    $prog=$_POST['prog'];
    $vers=$_POST['vers'];
    $arch=$_POST['arch'];
    $distro=$_POST['distro'];
    $tot="$nome"."$prog"."$vers"."$arch"."$distro";

    if(
    preg_match("=([|#%]+)=","$tot")){
    echo(
    "<span style=\"color:rgb(255,0,0);\">Non sono ammessi i seguenti caratteri: <b style=\"color:rgb(255,255,255);\">% # |</b> </span><br /><br />");

    }
    else{
    if((
    $nome=="") || ($prog=="") || ($vers=="") || ($arch=="") || ($distro=="")){
    echo(
    "<span style=\"color:rgb(255,0,0);\">Completa tutti i campi!</span><br /><br />");
    }
    else{
    $nome2=htmlentities($nome);
    $prog2=htmlentities($prog);
    $vers2=htmlentities($vers);
    $arch2=htmlentities($arch);
    $distro2=htmlentities($distro);

    $scrivi=fopen("datiform.php","a+");
    flock($scrivi,LOCK_EX);
    fwrite($scrivi,"$nome2|$prog2|$vers2|$arch2|$distro2%#%");
    flock($scrivi,LOCK_UN);
    fclose($scrivi);

    header("location:12.php");
    }
    }
    }
    else{
    }
    ?>
    <div align="center">
    <table width="900" border="1">
    <tr>
    <td bordercolor="#0033FF" bgcolor="#FFFFFF"><div align="center" class="Stile2">
    <table width="800" border="0"> <form action="12.php?action=sub" method="post">
    <tr>
    <td colspan="3"><div align="center"><span class="Stile1">Database creazione di rpm - V0.1 </span></div></td>
    </tr>
    <tr>
    <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
    <td height="30" width="150"> <p align="left" class="Stile1">Nome Packager: </p></td>
    <td height="30" width="205"><div align="left"><input type="text" name="nome" /></div></td>
    <td width="382" rowspan="5" align="center" valign="middle"><div align="center"><img src="mandriva-mondo.png" alt="d" width="212" height="131" /></div>
    </td>
    </tr>
    <tr>
    <td height="30"><div align="left">Nome Programma:</div></td>
    <td><div align="left"><input type="text" name="prog" /></div></td>
    </tr>
    <tr>
    <td height="30"><div align="left">Versione:</div></td>
    <td><div align="left"><input type="text" name="vers" /></div></td>
    </tr>
    <tr>
    <td height="30"><div align="left">Architettura:</div></td>
    <td><div align="left"><input type="text" name="arch" /></div></td>
    </tr>
    <tr>
    <td height="30"><div align="left">Distribuzione:</div></td>
    <td><div align="left"><input type="text" name="distro" /></div></td>
    </tr>
    <tr>
    <td colspan="3"><div align="center">
    <p>&nbsp; </p>
    <p>
    <input name="submit" type="submit" style="width:100px; background-color:rgb(200,200,200);" value="Invia" action="submit" />
    </p>
    </div></td>
    </tr>

    </table>
    </form>
    <p>&nbsp;</p>
    <table width="800" border="0">
    <tr>
    <td width="160"><div align="left">Nome Packager </div></td>
    <td width="160"><div align="left">Nome Programma </div></td>
    <td width="160"><div align="left">Versione</div></td>
    <td width="160"><div align="left">Architettura</div></td>
    <td width="160"><div align="left">Distribuzione</div></td>
    </tr>
    <?php
    if(file_exists("datiform.php")){
    $leggi=fopen("datiform.php","r+");
    flock($leggi,LOCK_SH);
    $lettura=@fread($leggi,filesize("datiform.php"));
    flock($leggi,LOCK_UN);
    fclose($leggi);


    $sp1=explode("%#%",$lettura);
    $sp1c=count($sp1)-1;
    $sp1x=array_reverse($sp1);

    for(
    $a=0;$a<=$sp1c;$a++){
    @
    $sp2=explode("|",$sp1x[$a]);
    echo@(
    "<tr><td>$sp2[0]</td>");
    echo@(
    "<td>$sp2[1]</td>");
    echo@(
    "<td>$sp2[3]</td>");
    echo@(
    "<td>$sp2[4]</td>");
    echo@(
    "<td>$sp2[5]</td></tr>");
    }
    }
    else{

    }
    ?>
    </table>
    <p>&nbsp;</p>
    </div>
    <p class="Stile2">&nbsp;</p>
    <p class="Stile2">&nbsp;</p> </td>
    </tr>
    </table>
    </div>
    </body>
    </html>
    Ultima modifica di linuxmx : 04-05-2009 alle ore 23.58.20

  7. #7
    L'avatar di jb17
    jb17 non è connesso Utente giovane
    Data registrazione
    07-01-2006
    Messaggi
    48

    Predefinito

    Nel caso volessi aggiungere anche i campi di data e sito il codice diventa:
    Codice PHP:
    <?php
    @$action=$_GET['action'];
    $data=date("d/m/Y");
    if(
    $action=="sub"){
    $nome=$_POST['nome'];
    $prog=$_POST['prog'];
    $vers=$_POST['vers'];
    $data=$_POST['data'];
    $sito=$_POST['sito'];
    $tot="$nome"."$prog"."$vers"."$data"."$sito";

    if(
    preg_match("=([|#%]+)=","$tot")){
    echo(
    "<span style=\"color:rgb(255,0,0);\">Non sono ammessi i seguenti caratteri: <b style=\"color:rgb(255,255,255);\">% # |</b> </span><br /><br />");

    }
    else{
    if((
    $nome=="") || ($prog=="") || ($vers=="")){
    echo(
    "<span style=\"color:rgb(255,0,0);\">Completa tutti i campi!</span><br /><br />");
    }
    else{
    $nome2=htmlentities($nome);
    $prog2=htmlentities($prog);
    $vers2=htmlentities($vers);
    $sito2=htmlentities($sito);
    $data2=htmlentities($data);

    $scrivi=fopen("datiform.php","a+");
    flock($scrivi,LOCK_EX);
    fwrite($scrivi,"$nome2|$data2|$sito2|$prog2|$vers2%#%");
    flock($scrivi,LOCK_UN);
    fclose($scrivi);

    header("location:form.php");
    }
    }
    }
    else{
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
    <title>Inserisci programma</title>
    <style type="text/css">
    <!--
    body{margin:20px; padding:0px; text-align:center; background-color: #000000;}
    #main{margin:0px auto; padding:0px auto; text-align:center; width:800px;}
    #tabella{width:800px;}
    #tabella td{width:400px; text-align:left; color:#CCCCCC;}
    #tabella2{width:800px; margin-top:30px;}
    #tabella2 td{width:160px; text-align:center; color:rgb(255,255,255);}
    input{background-color:rgb(255,255,255); border:1px solid rgb(100,100,100); width:194px; padding:3px 3px 3px 3px;}
    -->
    </style>
    </head>
    <body>
    <div id="main">
    <table id="tabella">
    <form action="form.php?action=sub" method="post">
    <tr>
    <td>
    <span class="scritta1">Nome:</span>
    </td>
    <td>
    <input type="text" name="nome" />
    </td>
    </tr>
    <tr>
    <td>
    <span class="scritta1">Data:</span></td>
    <td>
    <input type="text" name="data" value="<?php echo("$data"); ?>" />
    </td>
    </tr>
    <tr>
    <td>
    <span class="scritta1">Sito:</span></td>
    <td>
    <input type="text" name="sito" />
    </td>
    </tr>
    <tr>
    <td>
    <span class="scritta1">Nome Programma:</span></td>
    <td>
    <input type="text" name="prog" />
    </td>
    </tr>
    <tr>
    <td>
    <span class="scritta1">Versione Programma:</span></td>
    <td>
    <input type="text" name="vers" />
    </td>
    </tr>
    <tr>
    <td>
    </td>
    <td>
    <input type="submit" action="submit" value="Invia" style="width:100px; background-color:rgb(200,200,200);" />
    </td>
    </tr>
    </table>
    </form>
    <table id="tabella2">
    <tr style="background-color:#FFFFFF;">
    <td style="color:rgb(0,0,0);">Nome</td>
    <td style="color:rgb(0,0,0);">Data</td>
    <td style="color:rgb(0,0,0);">Sito</td>
    <td style="color:rgb(0,0,0);">Nome Programma</td>
    <td style="color:rgb(0,0,0);">Versione Programma</td>
    </tr>
    <?php
    if(file_exists("datiform.php")){
    $leggi=fopen("datiform.php","r+");
    flock($leggi,LOCK_SH);
    $lettura=@fread($leggi,filesize("datiform.php"));
    flock($leggi,LOCK_UN);
    fclose($leggi);


    $sp1=explode("%#%",$lettura);
    $sp1c=count($sp1)-1;
    $sp1x=array_reverse($sp1);

    for(
    $a=0;$a<=$sp1c;$a++){
    @
    $sp2=explode("|",$sp1x[$a]);
    echo@(
    "<tr><td>$sp2[0]</td>");
    echo@(
    "<td>$sp2[1]</td>");
    echo@(
    "<td>$sp2[2]</td>");
    echo@(
    "<td>$sp2[3]</td>");
    echo@(
    "<td>$sp2[4]</td></tr>");
    }
    }
    else{

    }
    ?>
    </table>
    </div>
    </body>
    </html>
    per capire le differenze confronta semplicemente i due codici...quello postato adesso e quello nel post precedente. Se hai domande chiedi pure!


    Per quanto riguarda il codice su cui hai chiesto chiarimenti:
    Codice PHP:
    <?php
    //con file_exists verifico se esiste il file contente i dati che voglio visualizzare
    if(file_exists("datiform.php")){
    //Se esiste il file lo apro, lo leggo, lo chiudo e memorizzo i dati in $lettura
    $leggi=fopen("datiform.php","r+");
    flock($leggi,LOCK_SH);
    $lettura=@fread($leggi,filesize("datiform.php"));
    flock($leggi,LOCK_UN);
    fclose($leggi);

    //Dopo aver letto i dati li separo, li conto e stampo le righe e le celle della tabella attraverso un ciclo for
    $sp1=explode("%#%",$lettura);
    $sp1c=count($sp1)-1;
    $sp1x=array_reverse($sp1);

    for(
    $a=0;$a<=$sp1c;$a++){
    @
    $sp2=explode("|",$sp1x[$a]);
    echo@(
    "<tr><td>$sp2[0]</td>");
    echo@(
    "<td>$sp2[1]</td>");
    echo@(
    "<td>$sp2[2]</td></tr>");
    }
    }
    else{

    }
    ?>
    Ciaoooo
    Il sito di jb17: jb17.altervista.org

  8. #8
    Guest

    Predefinito

    Grazie mille davvero

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •