Oppure

Loading
19/07/06 13:44
stefano
Salve a tutti al forum, sto cercando da tanto tempo uno script che mi registri per me gli utenti, che poi entrino dopo aver fatto il login in una pagina, simile a quella che ho fatto la registrazione al vostro sito. La vostra community è molto interessante si parla di tante cose molto utili, se ci fosse qualcuno che mi può aiutare ne sarei molto grato.
by stefano:)
aaa
20/07/06 16:54
radio
Non so se ho capito bene ma mi sembra che tu stia cercando uno script per la gestione degli utenti.[Giusto?]

Beh se è così ne troverai molti, in giro, ma devi avere chiaro in mente cosa stai cercando: vuoi che gli utenti siano registrati in un database o su un 'normale' file di testo.

Ove possibile la prima ipotesi è ovviamente da preferire ma comporta un leggero aumento nella complessità dello script.

Ti scrivo due righe d'esempio ma naturalmente devi stare molto attento quando permetti la registrazione degli utenti: è consigliata la conferma via e-mail per evitare che dei bot registrino migliaia di utenti fittizzi sul tuo sito.
Magari potresti anche mettere un'immagine con del testo da riconoscere....Ma tutto ciò naturalmente complica il sorgente...

Struttura database:
CREATE TABLE `users` (
  `ID` mediumint(9) NOT NULL auto_increment,
  `nome` varchar(31) default NULL,
  `cognome` varchar(31) default NULL,
  `nick` varchar(12) default NULL,
  `pwd` varchar(16) default NULL,
  `email` varchar(45) default NULL,
  `IP` varchar(15) default NULL,
  `admin` char(1) default NULL,
  PRIMARY KEY  (`ID`),
  UNIQUE KEY `nick` (`nick`),
  UNIQUE KEY `email` (`email`),
  UNIQUE KEY `IP` (`IP`)
) TYPE=MyISAM;


poi un form per la registrazione [form.html]
<form action="registra.php" method="POST">
Nome:&nbsp;<input type="text" name="nome" maxlength="31" size="32"><br>
Cognome:&nbsp;<input type="text" name="cognome" maxlength="31" size="32"><br><br>

Nickname:&nbsp;<input type="text" name="nick" maxlength="12" size="15"><br>
<!-- La password saràa inviata per e-mail -->

E-mail:&nbsp;<input type="text" name="email" maxlength="45" size="50">
</form>
<!-- Volendo si può aggiungere un JS che controlla la correttezza dei dati inseriti, ad esempio con un'espressione regolare per l'email...-->


Poi da registra.php intercetti i dati che arrivano con il post con qualcosa del genere...
// Genero una password a caso, (in qusto caso un numero ma naturalmente si può fare di MOLTO meglio!)
$pwd=rand(0,1000000);

# Qui sarebbe bene controllare che non ci siano altre persone nel DB con la stessa e.mail IP o nick e che tutte le vriabili siano arrivate con qualche valore

$query="INSERT INTO users (nome, cognome, nick, pwd, email, IP, admin) VALUES ('".$_POST["nome"]."', '".$_POST["cognome"]."', '".$_POST["nick"]."', '".md5($_POST["pwd"])."', '".$_POST["email"]."', '".$_SERVER["SERVER_ADDR"].", 'n');

$result=mysql_query($query);
if (!$result===false)
  mail($_POST["email"], "password per il sito", "La tua password è ".$pwd);
else
  die("Errore nella query: ".$query."<br>".mysql_error());


Poi vabbè il login.php potrebbe essere [supponendo che arrivino da un POST 'pwd' e 'nick'...
<?php
$pwd=md5($_POST["pwd"]);
$query="SELECT nome FROM users WHERE pwd='$pwd' AND nick='$nick';";
$result=mysql_query($query);

if (mysql_num_rows($result)<>1)
  {?>
  <b>errore</b> login fallito!
  <?}
else
  {
  $riga=mysql_fetch_assoc($result);
  ?>
  ciao <?=$riga["nome"]?>!
  <?}

?>


Ovviamente su questo codice ci sarebbero molte migliorie da fare....
aaa
21/07/06 13:16
stefano
Ti ringrazio per la tua rapidità della risposta. La mia richiesta era troppo scarna di informarzioni, io volevo che la registrazione sia fatta su file di testo, purtroppo non uso il mysql, e quindi se ti è possibile farne uno senza mysql.




Aspetto con fiducia grazie.:)
Ultima modifica effettuata da stefano 21/07/06 13:29
aaa
21/07/06 13:30
stefano
AAAAA mi ero dimenticato di inserire + info:

Lo volevo con il nickname e l'email il form di invio.

La password se è possibile lo potrebbe dare il sistema cioè lo script, e se un utente la vuole cambiare la password va in un form cambia_password e la cambia.

Poi che quando un utente si è registrato che ricevi i suoi dati via email con la notifica.

E se un utente a perso i suoi dati di accesso basta inserire l'email e lo script da file di testo gli invia l'user e la passw.

grazie a tutti:):k:
Ultima modifica effettuata da stefano 21/07/06 13:31
aaa
21/07/06 21:21
radio
sì, non sarebbe difficile, però io domani devo partire alle 7 di mattina per il mare (starò via max un mese) e ora sono le 23:15.......

cmq per il file di testo ti metto due funzioni che uso per il guestbook che trovi nella project zone, solo che non ci sono queste funzioni uguali perchè sono della versione alpha in sviluppo...;)
Non centran molto ma ti potrebbero servire come spunto


function Inserisci_Post($testo_post,$autore_post)
{#Se non lo ho già fatto includo il file di configurazione (nnn si sà mai ;-))
include_once "./config.inc.php";

if ((!isset($autore_post)) OR (!isset($testo_post)))
        {
        echo "<b>Errore:</b> Non ho potuto inserire il messaggio nel database.<br>
        <i>Non sono stati inseriti tutti i dati richiesti (nome e testo)</i>";
        } else {

# Apre il file "DB" in letura e scrittura, posiziona il puntatore al'inizio, crea il file se non esiste.
global $config;

include $config["db_file"];

// Trovo l'ID dell'ultimo msg
if (isset($msg))
        {
        end($msg);
        $i=key($msg);
        }
else // Documento vuoto!!!
        {
        $testo_nuovo="
<?
/* ATTENZIONE: Questo fle viene generatoe modificato automaticamente;
 * NON deve essere assolutamente modificato a mano ma tramite le opzioni del pannello (cp.php)
 * altrimenti potrebbe divenire INUTILIZZABILE!
 */
";
        $i=0;
        }


$handle=fopen($config["db_file"], "r+b");

# Leggo il contenuto del file [messaggi precedenti]
$testo_originale=fread($handle, filesize($config["db_file"]));

# Preparo data e ora da inserire nell'intestazione del post
$time = date("G:i:s");
$date = date("d-m-y");

# Questo è il testo che aggiungo al DB

$y=$i+1;
$testo_nuovo .= "// Nuovo post [$y] !

$msg[$y][\"autore\"] = \"$autore_post\";
$msg[$y][\"date\"]   = \"$date\";
$msg[$y][\"time\"]   = \"$time\";
$msg[$y][\"testo\"]  = \"$testo_post\";


?>";
// tolgo la chiusura del tag "?\>" dal testo di prima [tolgo tre caratteri: '?' '>' e '\n'

$testo_originale=str_replace("?>", "", $testo_originale);


$testo_originale=str_replace("?>", "", $testo_originale);
echo $testo_originale;
# Aggiungo il testo nuovo in coda ai messaggi precedenti
$testo=$testo_originale.$testo_nuovo;

# Mi posiziono all'inizio del file e...
fseek($handle,0);
# ...riscrivo tutto (perchè non si sa mai ;-)
fwrite($handle, $testo);
# Chiudo il puntatore
fclose($handle);
}
}


Function Visualizza_Post()
	{
	global $config;
	# Se non lo ho già fatto includo il file di configurazione (nnn si sà mai ;-))
	include_once "./config.inc.php";
	
	# Include il DB, ora un file PHP
	include $config["db_file"];
	
	$n=count($msg);
	
	if ($n<=$config["postxpag"]) // Se i messaggi sono meno di quelli massimi per pagina non 'creo' le pagine
		{
		krsort($msg);
		}
	else
		{
		krsort($msg);
		foreach ($msg as $value)
			{
			}
		}
	// Li ordino secondo le chiavi in senso inverso. --> ovvero:
	// gli ultimi messaggi vanno per primi
	krsort($msg);
	foreach ($msg as $value)
		{
		$testo.="
	<p class=\"msg\">
	    <i>%posted%<b>".$value["autore"]."</b> %on% ".$value["date"]." %at% ".$value["time"].".</i><br>
		".$value["testo"]."
	</p>
	<hr style=\"background-color : #B35A00\">
		";
		}
	
	if ($config["emoticons"]) $testo=Emoticons($testo);
	if ($config["bad_words_control"]) $testo=Bad_Words($testo);
	if ($config["BB_code"]) $testo=BB_Code($testo);
	
	$testo=Traduci_Post($testo);
	?>
<h1><?=$config["title"]?></h1>
<!--ScriptGuestbook v.0.1.beta1, www.pierotofy.it (C) 2005. All rights reserved.-->

	<div class="messaggi">
	<br>
	<?
	echo $testo;
	?>
	</div>
	
	<div class="varie">
	<?
	//carica traduzione
	$transl=Carica_Traduzione();
	?>
	<p class="normal">
		<i><b><?=$transl["Add_msg"]?></b></i><br><br>
		<?
		echo (str_replace("%self%", $SERVER_["PHP_SELF"], $transl["chg_lng"]));
		?>
	</p>
	
	</div>
	<?
	}
aaa
22/07/06 18:49
stefano
Posso aspettare anche quando torni tanto non hò fretta, poi io di php non ci capisco nulla. AAA poi quando un utente si registrerà e avra l'email di notifica e poi andrà in login, io vorrei che poi il login effettuato rispedisca l'utente nella pagina dove ci sarà la pagina con altri link mia mi sembra che si chiami redirect. ciao
aaa
15/09/06 14:08
stefano
Cè qualcuno che può aiutarmi alla mia richiesta di script registra utenti, con amministrazione admin per poter cancellare utenti. Hò cercato in web ma non riesco a trovarlo e nemmeno crearlo xchè di php non ci capisco. Per il database vorrei archiviare i dati su file di testo blocco note ( database.txt ). grazie:asd::asd:
aaa
15/09/06 17:14
Black Shadow
E' possibile che in 2 mesi non hai ne imparato PHP ne, al limite, sei riuscito a procurarti un Database SQL ??:-|
aaa