• Super User

    script per database...

    Ciao a tutti,
    normalmente programmo in HTML ma adesso vorrei fare una pagina di questo genere: i moduli nome cognome e-mail eccetera e dopodiché vorrei che quando si clicca su "invia" tutti i dati vengano salvati in un database e automaticamente si venga a reindirizzati ad un'altra pagina...

    Qualcuno conosce uno script che faccia tutto questo?
    Non so programmare in php e quindi sto cercando qualcosa di già "prefabbricato" esiste?

    Ringrazio tutti fin da ora per il vostro preziosissimo aiuto

    :ciauz:


  • Super User

    Un form che passa questi dati al db?


  • Super User

    sì,1 cosa del genere è dopo bisogna farlo passare ad un'altra pagina... in pratica l'idea è questa: clikki su contatti, allora per arrivare alla pagina vera e propria dei contatti devi prima compilare questo form che invia i dati al database e dopo di che automaticamente viene rimandato subito alla pagina dei contatti

    Grazie! :ciauz:


  • Super User

    @Ranius said:

    sì,1 cosa del genere è dopo bisogna farlo passare ad un'altra pagina... in pratica l'idea è questa: clikki su contatti, allora per arrivare alla pagina vera e propria dei contatti devi prima compilare questo form che invia i dati al database e dopo di che automaticamente viene rimandato subito alla pagina dei contatti

    Grazie! :ciauz:

    Cioè uno clicca su contatti, magari contatti.php e ti da la pagina del form, compili il form e arrivi alla vera pagina contatti... magari che sia lo stesso indirizzo che almeno prevenisce forme di spam (metti che qualcuno linka contatti2.php ? )

    mmmm

    Che moduli vuoi?

    Nome
    Cognome
    E-mail
    ...
    ...


  • Super User

    un forno classico...

    Nome

    Cognome

    E-mail

    Queste cose qui... naturalmente ho detto la pagina contatti perché potrebbe essere una però poi la modifico a secondo degli utilizzi... 😉

    :ciauz:


  • Super User

    Un pezzo alla volta.

    install.php

    <?
    //variabili per settare il database
    $db_user="utente"; //nome utente database
    $db_host="localhost"; // nome host, di solito localhost
    $db_name="databasename"; // nome del database
    $db_pwd="password"; // password database
    
    
    $conn=mysql_connect&#40;$db_host, $db_user, $db_pwd&#41;
    or die &#40;"Errore nella connessione al Database. Verificare i dati contenuti nel file install.php"&#41;;
    mysql_select_db&#40;$db_name, $conn&#41;
    or die &#40;"Errore nella selezione del Database. Verificare i dati contenuti nel file install.php"&#41;;
    
    $sql = 'CREATE TABLE `contatti` &#40;'
            . ' `idc` int&#40;11&#41; NOT NULL default \'0\','
            . ' `nome` varchar&#40;100&#41; NOT NULL default \'\','
            . ' `cognome` varchar&#40;100&#41; NOT NULL default \'\','
            . ' `email` varchar&#40;100&#41; NOT NULL default \'\','
            . ' PRIMARY KEY &#40;`idc`&#41;'
            . ' &#41; TYPE=MyISAM';
    
    
    $tabella=mysql_query&#40;$sql,$conn&#41; or die&#40;"Impossibile eseguire la query 
    **Errore**:".mysql_error&#40;&#41;&#41;;
    
    
    if &#40;$tabella&#41; &#123;
    
      print&#40;"Tabella creata con successo! Elimina questo file.
    <a href=\"/\">Torna all'homepage</a>    \n"&#41;;
     &#125;
     else &#123;
    print&#40;"Tabella non installata correttamente.\n"&#41;;
    &#125;
    
    ?>
    <?php
    // disconnessione dal Database
    mysql_close&#40;$conn&#41;;
    ?>
    

    Stasera posto il codice della pagina se ce la faccio 🙂


  • Super User

    61 angelo

    Grazie 🙂 🙂


  • Super User

    Ed eccomi qui 🙂

    NB: La pagina contatti vera e propria si dovrà chiamare contatti2.php, fare quello nello stesso file non ci sono riuscito, scusa :bho:

    La tabella è così composta:
    idc: Indica l'id del contatto (progressivo)
    nome: Contiene il nome della persona
    cognome: Il cognome della persona
    email: contiene l'email, purtroppo il controllo se c'è o meno @ mi manca 😞

    La pagina è valida W3C.

    contatti.php

    <?
    //variabili per settare il database
    $db_user="utente"; //nome utente database
    $db_host="localhost"; // nome host, di solito localhost
    $db_name="nome_db"; // nome del database
    $db_pwd="pass"; // password database
    
    
    $conn=mysql_connect&#40;$db_host, $db_user, $db_pwd&#41;
    or die &#40;"Errore nella connessione al Database. Verificare i dati contenuti nel file install.php"&#41;;
    mysql_select_db&#40;$db_name, $conn&#41;
    or die &#40;"Errore nella selezione del Database. Verificare i dati contenuti nel file install.php"&#41;;
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html lang="it">
    <head>
    <title>Pagina Contatti</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
    <style type="text/css">
    <!--
    
    .input &#123; font-family&#58; Verdana,Helvetica,sans-serif; font-size&#58; 11px; color&#58; #000000; width&#58; 280px; background-color&#58; #EEEEEE; border&#58; #AAAAAA solid; border-width&#58; 1px 1px; &#125;
    .text_area &#123; font-family&#58; Verdana,Helvetica,sans-serif; font-size&#58; 11px; color&#58;; width&#58; 280px; background-color&#58;; border&#58; solid; border-width&#58; 1px 1px; &#125;
    .button &#123; font-family&#58; Verdana,Helvetica,sans-serif; font-size&#58; 11px; color&#58;; text-align&#58; center; border&#58; #c24733 solid;  border-width&#58; 1px 1px; &#125;
    
    -->
      </style>
    
    </head>
    <body>
    <?php
    
    // calcolo id
    $result=mysql_query&#40;"SELECT idc FROM contatti ORDER BY idc DESC", $conn&#41;;
    $n=mysql_num_rows&#40;$result&#41;;
    $row=mysql_fetch_array&#40;$result&#41;;
    $id=$row&#91;'idc'&#93;+1;
    
    if &#40;$_GET&#91;'action'&#93;=="insert"&#41; &#123;
     $nome=$_POST&#91;'nome'&#93;;
     $nome=htmlspecialchars&#40;stripslashes&#40;$nome&#41;&#41;;
     $nome=stripslashes&#40;$nome&#41;;
     $nome=addslashes&#40;$nome&#41;;
     $cognome=$_POST&#91;'cognome'&#93;;
     $cognome=htmlspecialchars&#40;stripslashes&#40;$cognome&#41;&#41;;
     $cognome=stripslashes&#40;$cognome&#41;;
     $cognome=addslashes&#40;$cognome&#41;;
     $email=$_POST&#91;'email'&#93;;
     $email=htmlspecialchars&#40;stripslashes&#40;$email&#41;&#41;;
     $email=stripslashes&#40;$email&#41;;
     $email=addslashes&#40;$email&#41;;
    
    
     if &#40;&#40;$nome==""&#41;||&#40;$cognome==""&#41;||&#40;$email==""&#41;&#41; &#123;
      print&#40;"
    
    <FONT color=\"#FF0000\">Errore inserimento Dati...</FONT>"&#41;;
      print&#40;"<META http-equiv=\"refresh\" content=\"0;URL=contatti.php\">\n"&#41;;
     &#125;
     else &#123;
      $query="INSERT INTO contatti &#40;idc, nome, cognome, email&#41;
    VALUES &#40;'".$id."', '".$nome."', '".$cognome."', '".$email."'&#41;";
      mysql_query&#40;$query, $conn&#41;;
      print&#40;"
    
    Inserimento dati... Attendere prego"&#41;;
      print&#40;"<META http-equiv=\"refresh\" content=\"1;URL=contatti2.php\">\n"&#41;;
     &#125;
    &#125;
    else &#123;
    ?>
    <FORM action="contatti.php?action=insert" method="post">
    **Dettagli
    
    ID Contatto&#58; <?php print&#40;$id&#41;; ?>**
    
    
    
    <table>
    	<tr>
    		<td>
    Nome&#58;
    <input type="text" name="nome" size="60" class="text_area">
    
    
    Cognome&#58;
    <input type="text" name="cognome" size="60" class="text_area">
    
    
    Email&#58;
    <input type="text" name="email" size="60" class="text_area">
    
    
    
    <input type="submit" name="go_contatti" value="Inserisci" class="button">
    <input type="reset" value="Annulla" class="button">
    
    		</td>
    	</tr>
    </table>
    </form>
    <?php
    &#125;
    
    // disconnessione dal Database
    mysql_close&#40;$conn&#41;;
    ?>
    </body>
    </html>
    

  • Moderatore

    🙂

    Posso chiedere una cosa?

    A cosa serve tutto sto passaggio?

    $nome=htmlspecialchars&#40;stripslashes&#40;$nome&#41;&#41;;
     $nome=stripslashes&#40;$nome&#41;;
     $nome=addslashes&#40;$nome&#41;; 
    ```  :) 
    
     :ciauz:

  • Super User

    A me han sempre detto che ci va 😄

    Poi io l'ho sempre visto nei form, mi pare che senza non funza 😛

    Poi se non è vero, tanto meglio! 🙂

    Inoltre funziona, quindi siamo ottimisti! :yuppi:

    :ciauz:


  • Super User

    Ti ringrazio di vero cuore!

    Grazie ancora

    :ciauz:


  • User Newbie

    Ciao a tutti,
    ho trovato questo post per caso cercando su google ed ho deciso di iscrivermi a questo forum che trovo molto completo ( strano che non l'avessi ancora notato 😉 ).

    Volevo chiedere una cosa : secondo voi potrei usare come punto di partenza questo esempio per creare una pagina dove gli utenti entrano ed inseriscono il proprio nome , la mail e il numero di cellulare senza dover per questo mandarmi una mail. A me serve praticamente che gli utenti che lo desiderano possano inserire questi dati che andrò a vedere solo io tramite una pagina in un'area protetta da password.

    Spero di essere stato chiaro...

    Grazie in anticipo :ciaosai:


  • Super User

    Sto script ha fatto scalpore 😄

    Ciao LeLeK, benvenuto nel forum GT 🙂

    Volevo chiedere una cosa : secondo voi potrei usare come punto di partenza questo esempio per creare una pagina dove gli utenti entrano ed inseriscono il proprio nome , la mail e il numero di cellulare senza dover per questo mandarmi una mail. A me serve praticamente che gli utenti che lo desiderano possano inserire questi dati che andrò a vedere solo io tramite una pagina in un'area protetta da password.

    Ma certo!
    Basta cambiare un minimo lo script per adattarlo alle tue esigenze, vediamo punto per punto:

    in install.php cambia

    $sql = 'CREATE TABLE `contatti` &#40;'
            . ' `idc` int&#40;11&#41; NOT NULL default \'0\','
            . ' `nome` varchar&#40;100&#41; NOT NULL default \'\','
            . ' `cognome` varchar&#40;100&#41; NOT NULL default \'\','
            . ' `email` varchar&#40;100&#41; NOT NULL default \'\','
            . ' PRIMARY KEY &#40;`idc`&#41;'
            . ' &#41; TYPE=MyISAM';
    
    

    con

    $sql = 'CREATE TABLE `contatti` &#40;'
            . ' `idc` int&#40;11&#41; NOT NULL default \'0\','
            . ' `nome` varchar&#40;100&#41; NOT NULL default \'\','
            . ' `email` varchar&#40;100&#41; NOT NULL default \'\','
            . ' `cellulare` int&#40;20&#41; NOT NULL default \'0\','
            . ' PRIMARY KEY &#40;`idc`&#41;'
            . ' &#41; TYPE=MyISAM';
    
    

    in contatti.php
    (faccio prima a riscriverla tutta)

    <?
    //variabili per settare il database
    $db_user="utente"; //nome utente database
    $db_host="localhost"; // nome host, di solito localhost
    $db_name="nome_db"; // nome del database
    $db_pwd="pass"; // password database
    
    
    $conn=mysql_connect&#40;$db_host, $db_user, $db_pwd&#41;
    or die &#40;"Errore nella connessione al Database. Verificare i dati contenuti nel file install.php"&#41;;
    mysql_select_db&#40;$db_name, $conn&#41;
    or die &#40;"Errore nella selezione del Database. Verificare i dati contenuti nel file install.php"&#41;;
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html lang="it">
    <head>
    <title>Pagina Contatti</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <style type="text/css">
    <!--
    
    .input &#123; font-family&#58; Verdana,Helvetica,sans-serif; font-size&#58; 11px; color&#58; #000000; width&#58; 280px; background-color&#58; #EEEEEE; border&#58; #AAAAAA solid; border-width&#58; 1px 1px; &#125;
    .text_area &#123; font-family&#58; Verdana,Helvetica,sans-serif; font-size&#58; 11px; color&#58;; width&#58; 280px; background-color&#58;; border&#58; solid; border-width&#58; 1px 1px; &#125;
    .button &#123; font-family&#58; Verdana,Helvetica,sans-serif; font-size&#58; 11px; color&#58;; text-align&#58; center; border&#58; #c24733 solid;  border-width&#58; 1px 1px; &#125;
    
    -->
      </style>
    
    </head>
    <body>
    <?php
    
    // calcolo id
    $result=mysql_query&#40;"SELECT idc FROM contatti ORDER BY idc DESC", $conn&#41;;
    $n=mysql_num_rows&#40;$result&#41;;
    $row=mysql_fetch_array&#40;$result&#41;;
    $id=$row&#91;'idc'&#93;+1;
    
    if &#40;$_GET&#91;'action'&#93;=="insert"&#41; &#123;
     $nome=$_POST&#91;'nome'&#93;;
     $nome=htmlspecialchars&#40;stripslashes&#40;$nome&#41;&#41;;
     $nome=stripslashes&#40;$nome&#41;;
     $nome=addslashes&#40;$nome&#41;;
     $email=$_POST&#91;'email'&#93;;
     $email=htmlspecialchars&#40;stripslashes&#40;$email&#41;&#41;;
     $email=stripslashes&#40;$email&#41;;
     $email=addslashes&#40;$email&#41;;
     $cellulare=$_POST&#91;'cellulare'&#93;;
     $cellulare=htmlspecialchars&#40;stripslashes&#40;$cellulare&#41;&#41;;
     $cellulare=stripslashes&#40;$cellulare&#41;;
     $cellulare=addslashes&#40;$cellulare&#41;;
    
     if &#40;&#40;$nome==""&#41;||&#40;$email==""&#41;||&#40;$cellulare==""&#41;&#41; &#123;
      print&#40;"
    
    <FONT color=\"#FF0000\">Errore inserimento Dati...</FONT>"&#41;;
      print&#40;"<META http-equiv=\"refresh\" content=\"0;URL=contatti.php\">\n"&#41;;
     &#125;
     else &#123;
      $query="INSERT INTO contatti &#40;idc, nome, email, cellulare&#41;
    VALUES &#40;'".$id."', '".$nome."', '".$email."', '".$cellulare."'&#41;";
      mysql_query&#40;$query, $conn&#41;;
      print&#40;"
    
    Inserimento dati... Attendere prego"&#41;;
      print&#40;"<META http-equiv=\"refresh\" content=\"1;URL=contatti2.php\">\n"&#41;;
     &#125;
    &#125;
    else &#123;
    ?>
    <FORM action="contatti.php?action=insert" method="post">
    **Dettagli
    
    ID Contatto&#58; <?php print&#40;$id&#41;; ?>**
    
    
    
    <table>
       <tr>
          <td>
    Nome&#58;
    <input type="text" name="nome" size="60" class="text_area">
    
    
    Email&#58;
    <input type="text" name="email" size="60" class="text_area">
    
    
    Cellulare&#58;
    <input type="text" name="cellulare" size="60" class="text_area">
    
    
    
    <input type="submit" name="go_contatti" value="Inserisci" class="button">
    <input type="reset" value="Annulla" class="button">
    
          </td>
       </tr>
    </table>
    </form>
    <?php
    &#125;
    
    // disconnessione dal Database
    mysql_close&#40;$conn&#41;;
    ?>
    </body>
    </html>
    

    Questo per quanto riguarda il form.

    Per lo script admin ne ho usato uno molto semplice che non cripta le pass in md5
    (trovato su html.it, avrei fatto prima a darvi il link ma non lo trovo)

    /admin/ (o come vuoi chiamare la cartella)

    area_riservata.php

    <?
    session_start&#40;&#41;;
    
    if&#40;!isset&#40;$_SESSION&#91;"utente"&#93;&#41;&#41;&#123;
    	include&#40;"login.php"&#41;;
    	die&#40;&#41;;
    &#125;
    
    if &#40;$_GET&#91;'action'&#93;=="logout"&#41; &#123;
     unset&#40;$_SESSION&#91;"utente"&#93;&#41;; 
     session_destroy&#40;&#41;;
     print&#40;"<META http-equiv=\"refresh\" content=\"0;URL=index.php\">\n"&#41;;
    &#125;
    
    ?>
    

    login.php

    <?
    session_start&#40;&#41;;  
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http&#58;//www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Login</title>
    
    </head>
    
    <body>
    <?
    function check&#40;$user,$password&#41;&#123;
    		include&#40;"utenti.php"&#41;;
    
    		foreach&#40;$utenti as $user_ => $password_&#41;&#123;
    			if &#40;&#40;$user==$user_&#41; AND &#40;$password==$password_&#41;&#41; &#123;
    				return true;
    			&#125;
    		&#125;
    
    		return false;
    &#125;
    
    function form_login&#40;&#41;&#123;
    ?>
    <form id="login" action="<?=$PHP_SELF?>" method="post">
    <div style="text-align&#58;center;margin-left&#58;auto;margin-right&#58;auto;">
    	Utente&#58;
    
    	<input type="text" name="utente" size="20" maxlength="255">
    
    	Password&#58;
    
    	<input type="password" name="password" size="20" maxlength="255">
    
    
    	<input type="submit" value="   OK   ">
    </div>
    </form>
    <? &#125;
    
    if&#40;isset&#40;$_POST&#91;"utente"&#93;&#41;&#41;&#123;
    	if &#40;check&#40;$_POST&#91;"utente"&#93;,$_POST&#91;"password"&#93;&#41;&#41;&#123;
    		$_SESSION&#91;"utente"&#93; = $_POST&#91;"utente"&#93;;
    		$_SESSION&#91;"password"&#93; = $_POST&#91;"password"&#93;;
    		echo "<DIV align=\"center\">Reindirizzamento...</DIV><META http-equiv=\"refresh\" content=\"0;URL=index.php\">";
    	&#125;else&#123;
    		form_login&#40;&#41;;
    	&#125;
    &#125;else&#123;
    	form_login&#40;&#41;;
    &#125;		
    ?>
    
    </body>
    </html>
    

    utenti.php

    <?
    
    // account utenti abilitati&#58; $utenti&#91;"user"&#93; = "password"
    
    $utenti&#91;"user"&#93; = "pass";
    
    ?>
    

    e finalmente index.php

    <?
    //variabili per settare il database
    $db_user="utente"; //nome utente database
    $db_host="localhost"; // nome host, di solito localhost
    $db_name="nome_db"; // nome del database
    $db_pwd="pass"; // password database
    
    
    $conn=mysql_connect&#40;$db_host, $db_user, $db_pwd&#41;
    or die &#40;"Errore nella connessione al Database. Verificare i dati contenuti nel file install.php"&#41;;
    mysql_select_db&#40;$db_name, $conn&#41;
    or die &#40;"Errore nella selezione del Database. Verificare i dati contenuti nel file install.php"&#41;;
    ?>
    <?php
    include&#40;"area_riservata.php"&#41;; 
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http&#58;//www.w3.org/TR/html4/loose.dtd">
    <html lang="it">
    <head>
    <title>Area Admin</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    
    
    </head>
    <body>
    <?
    $query = "SELECT * FROM contatti";
    $result = mysql_query&#40;$query, $conn&#41;or die&#40; mysql_error&#40;&#41; &#41;;
    while &#40;$row = mysql_fetch_array&#40;$result&#41;&#41; &#123;
    print &#40;"".$row&#91;'idc'&#93;." | ".$row&#91;'nome'&#93;." | ".$row&#91;'email'&#93;." | ".$row&#91;'cellulare'&#93;.""&#41;;
    &#125;
    ?> 
    
    <?php
    // disconnessione dal Database
    mysql_close&#40;$conn&#41;;
    ?>
    </body>
    </html>
    

    Dovrebbe funzionare, nota bene, la grafica è 0, quindi devi un pò adattarla.

    Ciao :ciauz:


  • User Newbie

    Incredibile... Mai prima d'ora avevo ricevuto una risposta così rapida 😄

    Oggi pomeriggio lo provo e ti faccio sapere. Successivamente devo solo riuscire a far integrare la prima parte ( contatti.php ) con Joomla 😉


  • User Newbie

    Ok provato. Non mi funziona la parte di area_riservata.

    Facciamo conto che io non voglia questo tipo di login che non è neanche criptato, ma voglia usare una cartella chiamata sms con dentro un .htaccess. Dentro questa cartella vado a metterci il file che va a fare la query sul database e che mi formatta la pagina html. Come posso risolvere ?


  • Super User

    Vuoi creare un login tramite htaccess?


  • User Newbie

    Guarda ti faccio un'esempio pratico di quello che volevo realizzare io.

    Se vai su http://www.cyborgdisco.it/prenotazioni.php è praticamente la stessa cosa che vorrei inserire io in una pagina di Joomla chiamandola ad esempio http://www.sito.com/portal/contatti.php . Dopo di che vorrei fare una richiesta al database digitando ad esempio http://www.sito.com/admin/lista.php. In questa cartella ci inserisco un file .htaccess per entrare solo con password. La pagina lista.php dovrebbe venire formatta con i campi Nome Email Cellulare. Si può fare ? :mmm:


  • User Newbie

    Ragazzi scusate se tiro su il topic... Qualcuno riesce a darmi una mano ? Grazie ^^


  • Super User

    Non è difficile, se ho ben capito

    Tu uppi la pagina tramite ftp e poi gli dai il link da joomla.

    La pagina lista.php è quella dell'amministrazione giusto?

    <?
    //variabili per settare il database
    $db_user="utente"; //nome utente database
    $db_host="localhost"; // nome host, di solito localhost
    $db_name="nome_db"; // nome del database
    $db_pwd="pass"; // password database
    
    
    $conn=mysql_connect($db_host, $db_user, $db_pwd)
    or die ("Errore nella connessione al Database. Verificare i dati contenuti nel file install.php");
    mysql_select_db($db_name, $conn)
    or die ("Errore nella selezione del Database. Verificare i dati contenuti nel file install.php");
    ?>
    <?php
    include("area_riservata.php"); 
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html lang="it">
    <head>
    <title>Area Admin</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    
    
    </head>
    <body>
    <?
    $query = "SELECT * FROM contatti";
    $result = mysql_query($query, $conn)or die( mysql_error() );
    while ($row = mysql_fetch_array($result)) {
    print ("".$row['idc']." | ".$row['nome']." | ".$row['email']." | ".$row['cellulare']."");
    }
    ?> 
    
    <?php
    // disconnessione dal Database
    mysql_close($conn);
    ?>
    </body>
    </html>
    

    Allora questo dovrebbe andare


  • User Newbie

    Funziona... però non capisco perchè i numeri di cellulare me li restituisce strani... Li cambia totalmente !