Ciao a tutti,
aiutandomi con uno script che ho trovato sul vostro sito ho creato un form di registrazione con email di conferma, e fino a qui nn ho avuto problemi tutto funziona.
Nello script come controllo c'è la funzione preg_match con l'istruzione
per il controllo della password con caratteri alfanumerici e se inserisco abcd1234 funziona ... chi mi aiuta a capire cosa devo mettere per avere in questa funzione il controllo di vari caratteri e nn solo caratteri alfanumerici es vorrei dare la possibilità come in qualsiasi sito di avere una password magari con massimo 10 caratteri (questo conteggio lo fa già lo script) ma es pippo@123 oppure 12pippo@we
for_registrazione.php
aiutandomi con uno script che ho trovato sul vostro sito ho creato un form di registrazione con email di conferma, e fino a qui nn ho avuto problemi tutto funziona.
Nello script come controllo c'è la funzione preg_match con l'istruzione
PHP:
(!preg_match("/^[a-z0-9]+$/i", $_POST['password'])) || (strlen(trim($_POST['password']) >
for_registrazione.php
PHP:
<?php
// controllo sul parametro d'invio
if(isset($_POST['submit']) && (trim($_POST['submit']) == "Iscriviti"))
{
// controllo sul formato dell'email
if((!isset($_POST['email'])) || (!eregi("^([a-z0-9\._-]+)(@[a-z0-9.-]+)(\.{1}[a-z]{2,4})$", $_POST['email'])))
{
echo "Attenzione, formato email non valido.";
}
// controllo sul formato della password deve essere alfanumerica e non deve superare i dieci caratteri di lunghezza
elseif((!isset($_POST['password'])) || ($_POST['password'] == "") || (!preg_match("/^[a-z0-9]+$/i", $_POST['password'])) || (strlen(trim($_POST['password']) > 10)))
{
echo "La password deve essere alfanumerica e non più lunga di 10 caratteri.";
}else{
// se i parametri sono corretti popoliamo il database
$email = $_POST['email'];
$password = $_POST['password'];
// ma prima controlliamo che la mail non sia già presente includiamo il file di configurazione
@include "config.php";
$ctrl_mail = @mysql_query("SELECT id FROM users WHERE email='$email'") or die (mysql_error());
if(@mysql_num_rows($ctrl_mail)>0)
{
echo "L'email risulta già stata registrata.";
}else{
// query d'inserimento
if(@mysql_query("INSERT INTO users (email, password) VALUES('$email','$password')") or die (mysql_error()))
{
// messaggio di conferma
echo "Conferma l'iscrizione tramite la mail che ti abbiamo inviato.";
// email per la conferma
// intestazioni
$headers = "From: $admin_email\nreply-To: noreply\r\n";
$subject = "Conferma la tua iscrizione.";
//corpo del messaggio
$messaggio = "Ti ringraziamo per la tua iscrizione.\n";
$messaggio .= "La tua user è: ".$email."\n";
$messaggio .= "La tua password è: ".$password."\n";
$messaggio .= "Per confemare vai alla pagina http://miosito.it/conferma.php ";
$messaggio .= "e inserisci i dati per l'autenticazione.\n";
// invio dell'email
@mail($email, stripslashes($subject),stripslashes($messaggio),$headers);
}
}
}
}else{
// form per l'iscrizione
?>
<h1>Modulo d'iscrizione:</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Email:<br>
<input name="email" type="text" size="20"><br>
Password: (max 10 caratteri alfanumerici)<br>
<input name="password" type="password" size="20"><br>
<input name="submit" type="submit" value="Iscriviti">
</form>
<?
}
?>