• 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` ('
            . ' `idc` int(11) NOT NULL default \'0\','
            . ' `nome` varchar(100) NOT NULL default \'\','
            . ' `cognome` varchar(100) NOT NULL default \'\','
            . ' `email` varchar(100) NOT NULL default \'\','
            . ' PRIMARY KEY (`idc`)'
            . ' ) TYPE=MyISAM';
    
    

    con

    $sql = 'CREATE TABLE `contatti` ('
            . ' `idc` int(11) NOT NULL default \'0\','
            . ' `nome` varchar(100) NOT NULL default \'\','
            . ' `email` varchar(100) NOT NULL default \'\','
            . ' `cellulare` int(20) NOT NULL default \'0\','
            . ' PRIMARY KEY (`idc`)'
            . ' ) 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 !


  • Super User

    ?

    Non capisco, sono numeri, sempre quelli dovrebbe tirare fuori 😛


  • User Newbie

    Eh no... se per esempio inserisco nome LeLe K. mail [email][email protected][/email] e numero di cell 333222222 mi da come risultato :

    LeLe K. | [email][email protected][/email] | 2147483647


  • Super User

    Oddio sta cosa mi è nuova, pensavo che numeri erano numeri sarebbero rimasti.. boh, non so che dire


  • Moderatore

    Hai messo per caso come campo int per il telefono? 🙂


  • Super User

    Io ho messo

        . ' `cellulare` int(20) NOT NULL default \'0\','
    

    sbagliato vero? 😄


  • Moderatore

    Eccolo là. 🙂

    Int ha valore max di 2147483647, appunto. Se metti un numero più alto lui ti ritorna sempre 2147483647.

    Usa un campo testo.


  • User Newbie

    Mettendo varchar tutto funziona. Grazie per la pazienza e l'aiuto 😉