- Home
- Categorie
- Coding e Sistemistica
- PHP
- script per database...
-
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($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"); ?> <!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 { font-family: Verdana,Helvetica,sans-serif; font-size: 11px; color: #000000; width: 280px; background-color: #EEEEEE; border: #AAAAAA solid; border-width: 1px 1px; } .text_area { font-family: Verdana,Helvetica,sans-serif; font-size: 11px; color:; width: 280px; background-color:; border: solid; border-width: 1px 1px; } .button { font-family: Verdana,Helvetica,sans-serif; font-size: 11px; color:; text-align: center; border: #c24733 solid; border-width: 1px 1px; } --> </style> </head> <body> <?php // calcolo id $result=mysql_query("SELECT idc FROM contatti ORDER BY idc DESC", $conn); $n=mysql_num_rows($result); $row=mysql_fetch_array($result); $id=$row['idc']+1; if ($_GET['action']=="insert") { $nome=$_POST['nome']; $nome=htmlspecialchars(stripslashes($nome)); $nome=stripslashes($nome); $nome=addslashes($nome); $email=$_POST['email']; $email=htmlspecialchars(stripslashes($email)); $email=stripslashes($email); $email=addslashes($email); $cellulare=$_POST['cellulare']; $cellulare=htmlspecialchars(stripslashes($cellulare)); $cellulare=stripslashes($cellulare); $cellulare=addslashes($cellulare); if (($nome=="")||($email=="")||($cellulare=="")) { print(" <FONT color=\"#FF0000\">Errore inserimento Dati...</FONT>"); print("<META http-equiv=\"refresh\" content=\"0;URL=contatti.php\">\n"); } else { $query="INSERT INTO contatti (idc, nome, email, cellulare) VALUES ('".$id."', '".$nome."', '".$email."', '".$cellulare."')"; mysql_query($query, $conn); print(" Inserimento dati... Attendere prego"); print("<META http-equiv=\"refresh\" content=\"1;URL=contatti2.php\">\n"); } } else { ?> <FORM action="contatti.php?action=insert" method="post"> **Dettagli ID Contatto: <?php print($id); ?>** <table> <tr> <td> Nome: <input type="text" name="nome" size="60" class="text_area"> Email: <input type="text" name="email" size="60" class="text_area"> Cellulare: <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 } // disconnessione dal Database mysql_close($conn); ?> </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(); if(!isset($_SESSION["utente"])){ include("login.php"); die(); } if ($_GET['action']=="logout") { unset($_SESSION["utente"]); session_destroy(); print("<META http-equiv=\"refresh\" content=\"0;URL=index.php\">\n"); } ?>
login.php
<? session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://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($user,$password){ include("utenti.php"); foreach($utenti as $user_ => $password_){ if (($user==$user_) AND ($password==$password_)) { return true; } } return false; } function form_login(){ ?> <form id="login" action="<?=$PHP_SELF?>" method="post"> <div style="text-align:center;margin-left:auto;margin-right:auto;"> Utente: <input type="text" name="utente" size="20" maxlength="255"> Password: <input type="password" name="password" size="20" maxlength="255"> <input type="submit" value=" OK "> </div> </form> <? } if(isset($_POST["utente"])){ if (check($_POST["utente"],$_POST["password"])){ $_SESSION["utente"] = $_POST["utente"]; $_SESSION["password"] = $_POST["password"]; echo "<DIV align=\"center\">Reindirizzamento...</DIV><META http-equiv=\"refresh\" content=\"0;URL=index.php\">"; }else{ form_login(); } }else{ form_login(); } ?> </body> </html>
utenti.php
<? // account utenti abilitati: $utenti["user"] = "password" $utenti["user"] = "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($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>
Dovrebbe funzionare, nota bene, la grafica è 0, quindi devi un pò adattarla.
Ciao
-
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
-
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 ?
-
Vuoi creare un login tramite htaccess?
-
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 ?
-
Ragazzi scusate se tiro su il topic... Qualcuno riesce a darmi una mano ? Grazie ^^
-
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
-
Funziona... però non capisco perchè i numeri di cellulare me li restituisce strani... Li cambia totalmente !
-
?
Non capisco, sono numeri, sempre quelli dovrebbe tirare fuori
-
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
-
Oddio sta cosa mi è nuova, pensavo che numeri erano numeri sarebbero rimasti.. boh, non so che dire
-
Hai messo per caso come campo int per il telefono?
-
Io ho messo
. ' `cellulare` int(20) NOT NULL default \'0\','
sbagliato vero?
-
Eccolo là.
Int ha valore max di 2147483647, appunto. Se metti un numero più alto lui ti ritorna sempre 2147483647.
Usa un campo testo.
-
Mettendo varchar tutto funziona. Grazie per la pazienza e l'aiuto