script php form registrazione

francesco gnutti

Nuovo Utente
12 Nov 2013
11
0
0
Vorrei chiedere cortesemente se qualcuno conosce uno script, gratuito, per la registrazione degli utenti che consenta anche un login, in pratica è una sorta di servizio per garantire agli utenti una navigazione sicura visto che offrirò preventivi on line e per me, lavorando in visuale conosco pochissimo il linguaggio php tutti gli script trovati mi restituiscono errori di comunicazione col db oppure non restituiscono mail di conferma registrazione spero di ricevere aiuto.

Grazie a tutti e buon lavoro:)
 
form registrazione utenti

ciao
dai un occhio a questa discussione
http://forum.mrwebmaster.it/php/36718-risolto-controllo-mail-se-esiste.html
verso l'ultimo post vedi un es di come si fa il log, poi per la registrazione non è difficile. conosci quelcosa di php e mysql?

Sono sincero ne so pochissimo giusto per muovermi nella creazione delle tabelle, ho fatto un corso online con copelli tempo fa, non sono proprio estraneo, uso Dream weaver lavoro in visuale faccio template ed altre cose da grafico costruttore pagine web, provo in
caso ritorno a disturbare grazie molto per il vostro aiuto:)
 
ciao
anch'io uso dream anche se quasi eslusivamente in vista codice, tra l'altro per php devi farlo.
comunque butta giù qualcosa poi qui qualche buon'anima che ti da una mano la trovi
 
form registrazione

Borgo Italia grazie ai tuoi consigli il form di registrazione ora va che è una meraviglia ora devo solo capire come integrarle il form login il che è tutto da vedersi mo vedrete che verrò a elemosinare aiuto:( ma non è cosi difficile come pensavo a lavoro finito vi mostrero il tutto sono anche preso perchè è il compleanno della mia fidanzata futura mogli la persona più importante della mia vita e stasera avrete la fettina di torta virtuale0:) grazie a tutti per il vostro prezioso aiuto
 
problema con mod registrazioni

Eccomi nuovamente qui ora e tutto ok si fa per dire il mod registrazione e online ma non riesco ad integrarle la possibilità o gdi inserire Login, ho trovato parecchi modelli con registrazione e login io vorrei modificare quello che hia in possesso so poco di php uso dream weaver mi so muovere nei db potresti aiutarmi? garzie a tutti per l aiuto:)
 
ciao
non capisco molto cosa intendi (forse hai la testa impegnata con la fidanzata, che di sicuro è meglio di php). eventualmente posta quello che hai fatto (senza tanti ammenicoli come i css ecc..) che qualcuno vedrà se riesce a darti una mano
 
form integrazione login

Hem hem 0:)
Allora scusate ma il pc ha spezzato tutte le frasi, allora, il mio problema consiste nel dover inserire un modello per il login da integrare al modello di registrazione in mio possesso.
PHP:
<?php
// includiamo il file di connessione al database 
include ('configurazione.php');
// creiamo il nostro modulo di registrazione
?>
<form action='?inviodati=ok' method='POST'>
<b>Nome</b><br>
<input type='text' name='nome'><br>
<b>NickName</b><br>
<input type='text' name='nickname'><br>
<b>Mail</b><br>
<input type='text' name='mail'><br>
<b>Password</b><br>
<input type='password' name='pass'><br>
<b>Ripeti Password</b><br>
<input type='password' name='pass2'><br>
<input type='submit' value='Completa Registrazione'><br>
</form>
<?php
// attraverso un if controlliamo che il form sia stato inviato 
if ( $_GET['inviodati'] == "ok" ) {
// recuperiamo i dati inviati con il form
$nome = $_POST['nome'];
$nickname = $_POST['nickname'];
$mail = $_POST['mail'];
$pass1 = $_POST['pass'];
$pass2 = $_POST['pass2'];
// ora controlliamo che i campi siano stati tutti compilati
if ( $nome == TRUE && $mail == TRUE && $nickname == TRUE && $pass1 == TRUE && $pass2 == TRUE )  {
// controlliamo se il campo mail è stato scritto in maniera errata
$email = eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$mail); 
if ( $email == TRUE ) {
// controlliamo se l'mail è presente già nel database
$sql = mysql_query("SELECT * FROM tabella_registrati WHERE mail = '$mail'") or die ("Mail già occupata");
$num_rows = mysql_num_rows($sql); 
if ( $num_rows == 0 ) {
// ora controlliamo che le password inserite siano identiche
if ( $pass1 == $pass2 ) {
// infine criptiamo la password con md5
$pass_md5 = md5($pass1);
mysql_query("INSERT INTO tabella_registrati
             (id , nick , nome , pass , mail )
             VALUES 
             ('','$nickname', '$nome', '$pass_md5', '$mail' )") OR DIE(mysql_error());

// e inviamo una mail con la riuscita registazione
mail ($mail, "Registrazione OK", "Complimenti registrazione effettuata con successo", "From: [email][email protected][/email]");
// messaggio da far visualizzare all'utente finale
echo "Complimenti registrazione effettuata con successo.";
} else {
echo "Le password non corrispondono";
}
} else {
echo "Indirizzo mail già utilizzato.";
}
} else {
echo "La tua mail non è idonea, per la registrazione.";
}
} else {
echo "Tutti i campi sono obbligatori.";
}
}
?>
Questo è il file di registrazione al quale dovrei integrare il login cosi uno si registra e si logga, tutti quelli che ho trovato fino ad ora oltre che essere pieni di errori e non funzionare sono previsti di file registrazione che io comunque ho già, spero possiate aiutarmi e spero di essermi spiegato bene, scusatemi per la poca chiarezza nel mio messaggio che sembrava una lettera di ET:crying:
 
Ultima modifica di un moderatore:
ciao
do un occhio poi ti so dire (spero)
comunque non sbodolare così il codice e racchiudilo tra gli appositi tag (seconda riga di formattazione del post, ultime tre iconcine, nell'ordine CODE, HTML, PHP)
altrimenti si fa fatica a capire
 
ciao
così ad una prima occhiata ti do alcune indicazioni di base, poi lo metto un po' a posto
1) non usare il get (è sempre pericoloso) visto che hai il pulsante di subimit a cui devi dare il name
modifica la prima riga del form così
HTML:
<form action='<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>' method='POST'>
e quella del submit
HTML:
<input name='registrati' type='submit' value='Completa Registrazione'><br>
di conseguenza la prima riga php
PHP:
<?php
// attraverso un if controlliamo che il form sia stato inviato 
if(isset($_POST['registrati'])){//l'indice di questo $_POST deve essere = al name del submit
//.....
?>
2) non conviene usare l'include, in caso di file non trovato, da un warning ma lo script continua
usa
PHP:
<?php
// includiamo il file di connessione al database 
require_once "configurazione.php";
//....
?>
3) i dati letti come minimo necessitano di un certa pulizia es.
PHP:
<?php
//...
$nome = trim(addslashes($_POST['nome']));//così anche gli altri
//...
?>
addslashes ti serve per evitare crossinjection
trim toglie eventuali spazi in testa e in coda e se la stringa è solo spazi la vuota
4) la funzione eregi è obsoleta devi usare la preg_match() o meglio (io preferisco)
PHP:
<?php
//....
if (filter_var($email, FILTER_VALIDATE_EMAIL)){//ritorna $email (quindi true) se OK, FALSE se ko
//...
?>
5) non so se è stato un difetto di copia/incolla sul post, ma indenta il codice, tra l'altro mi sembra che ci siano errore di apertura/chisura dell parentesi graffe
6) usi la funzione mail()
guarda che ha problemi con alcuni, es. [email protected] e altri, l'email viene inviata, ma non inoltrata, ti conviene passare alla classe phpmailler o simile
7) dulcis in fundo.
anche se io continuo ad usarle per ora, abbandona le becchioe istruzioni mysql (deprecate da php 5.5) e passa alle mysqli

comunque, se hai pazienza, rimetto a posto un po' il tutto
 
form registrazione

Ti dico la verità, lo trovato su internet, per farlo funzionare ho dovuto separare il form dal codice php dela registrazione, sei gentilissimo davvero non voglio però dare troppo disturbo, ti dirò che il codice di registrazione funyiona ricevo la mail, va a tutto a buon fine ma vorrei che i miei utenti una volta registrati si logghino con quei dati ma tutti i tentativi sono stati inutili, gli altri script di registrazione e login invece non funzionavano per nulla.

Grazie di cuore per il tuo aiuto
 
cioa
correggi comunque quegli errori, corri il rischio che prima o poi ti faccia casino, es. col mio host e la versione php che ha l'eregi non funziona più e tra un po' (ahime perche devo correggere un sacco di pagine) le mysql faranno visualizzare un sacco di warning (sai che bello vedere una pagina piena di warning?)
poi per la mail a te arriva, ma non è detto (se vuoi inviarla all'utente) gli arrivi.
comunque se hai pazienza ti posto come faccio io il log, facendoti presente che se fai il log le pagine devono essere protette altrimenti a che ti serve il log?
 
ciao
ecco uno schema di come faccio io
1. pagina di log (es. loggati.php)
2. pagina che io ho chiamato transito.php ed è quella che gestisce il log e il logout, ma che puoi chiamare come vuoi basta che tu ti ricordi di cambiare il nome dove serve
nota che quella che ho chiamato transito.php è puro php senza niente html
3. pagina o pagine riservate

loggati.php
PHP:
<?php
session_start();
$_SESSION['verifica']=md5(rand(1000,9999);
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>...</title>
</head>
<body>
<form action="transito.php?ver=<?php echo $_SESSION['verifica'];?>" method="post">
  <p>inserisci:<br>
    tuo username 
    <input name="user" type="text" id="user">
    <br>
    tua password 
    <input name="pass" type="text" id="pass">
</p>
  <p>
    <input name="log" type="submit" id="log" value="loggati"> 
  se non sei registrato vai alla pag &quot;<a href="registrati.php">registrati</a>&quot; o <a href="index.php">esci</a></p>
</form>
</body>
</html>
transito.php
PHP:
<?php
session_start();
//questa parte seve per rendere inaccessibile (o quasi) la pagina
if(!isset($_SESSION['verifica']) || $_SESSION['verifica']!=$_GET['ver']){
	if(isset($_SESSION['verifica'])) session_destroy();
	header("location:index.php");
	exit();
}
$user=trim(addslashes($_POST['user']);
$pass=trim($_POST['pass']);
if($user=="" || $pass==""){
	header("location:loggati.php");
	exit();
}else{
	//qui i dati di connessione al db
	//se, come deve essere hai codificato la password
	$pass=md5($pass);//se parte riservata importante adotta un'altra codifica
	//verifica il nome della tabella e dei campi, devono essere i tuoi
	$query="SELECT * FROM utenti WHERE user='user' AND pass='$pass'";
	$ris=mysql_query($query);
	if(mysql_num_rows($ris) !=1){//deve esistere un solo abbinamento user/pass
		header("location:$_SERVER['PHP_SELF']");//questo rimanda all'inizio, ma in cuesto caso il get è sicuramente diverso dalla sessione
		exit();
	}else{
		//user e pass esistono e coincidono
		$riga=mysql_fetch_array($ris);
		$_SESSION['utente']=$riga['user'];
		header("location:prima_riservata.php");//invia alla prima pagina riservata (il nome devi saperlo tu)
		exit();
	}
}
?>
prima_riservata.php
PHP:
<?php
//tutte le pagine riservate se ne hai più di unna devono iniziare così
if(!isset($_SESSION['utente'])){
	header("location:transito.php");
	exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>...</title>
</head>
<body>
<?php
echo "ciao ".$_SESSION['utente']."benvenuta nella parte a te riservata";
?>
<!-- tutto quello che ti serve: html e/o php -->
<a href="transito.php">esci</a>
</body>
</html>

in questa modo tra l'altro eviti che un malentenzionato che è riuscito a sapere il nome della/e pagina/e riservata/e possa accedervi scrivendo sul browser es.(metto degli spazi)
http:// www. tuo_sito.com / prima_riservata.php
p.s.
guarda che ho messo le vecchie mysql perche mi viene più facile, ma tu traducile in mysqli
 

Discussioni simili