verifica caratteri per email e password

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti,

Sto cercando di creare un controllo d'inserimento caratteri per l'email e la password. Ho questo spezzone qua, ma mi da errore e chiedo aiuto a voi:

controllo caratteri:


PHP:
 $cognome = $mysqli->real_escape_string(trim($_POST['cognome']));
 
#Inizamo a controllare il carattere inserito per l'email che sia corretto
  
  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']) < 3)))
  {
    echo "La password deve essere alfanumerica e non inferiore ai 3 caratteri.";
  }else{
    // se i parametri sono corretti popoliamo il database
    $email = $_POST['email'];
   # $password = sha1($_POST['password']);

$checkemail = mysql_query("SELECT id FROM utenti WHERE email='$email'") or die (mysql_error());
    if(mysql_num_rows($ctrl_mail)>0) {
        echo "Attenzione l'email è valida";
        
    }else{
        echo "Attenzione l'email risulta essere presnete nel db !!! Contattare l'amministratore del sito grazie.";
        
    }
    }

La password deve essere inferiore ai due caratteri max. 8 caratteri e deve includere sia numeri che lettere e caratteri speciali e qua c'è l'inghippo in cui mi so fermato. Inoltre volevo sapere se questa è corretta oppure no:

$cognome = $mysqli->real_escape_string(trim($_POST['cognome']));

Spero che qualcuno mi possa aiutare nel modo più semplice possibile grazie.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ti shematizzo
per il controllo dell'email ti conviene
PHP:
<?php
//...
$email=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
	echo "Attenzione, formato email non valido.";
}//....
?>
poi per la pass nel preg_match metti la lungheza, eviti tutto quell'ambaradan

PHP:
<?php
{!preg_match("/^[A-Za-z0-9@]{3,10}+$/i", $_POST['password']))//.....
?>

la funzione eregi è deprecata e passa alle funzioni mysqli, le vecchie funzioni mysql sono deprecate e comunque non puoi mescolarle
si è corretta, pero vedo che usi il procedurale, quella è a oggetti e non mescolare la programmazione procedura a quella ad oggetti
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Perdonami, quindi è meglio quella procedurale anzicchè ad oggetti. Ancora il link non l'ho visto ma lo vedo ora. L'unica cosa che non capisco quando mi dici che "non mescolare la programmazione procedura a quella ad oggetti ", nel mio caso dov'è il mescolamento ??? Non riesco ad individuarlo.
 
Ultima modifica:

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao Borgo,

Innanzi tutto ti ringrazio per avermi risposto. Secondo ti volevo dire che mi da un bel "!" rosso su questa stringa:

$email=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
echo "Attenzione, formato email non valido.";
}//....

Come mai ???
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
problemi con mysqli

Salve a tutti,

Spero di non crossare non è mia intenzione ma voirrei sapere qual'ìè la sintassi corretta:

prima sintassi in mysqli:

PHP:
$id = mysqli_real_escape_string($con, $id);
$cognome = mysqli_real_escape_string($con, $cognome);
$nome = mysqli_real_escape_string($con, $nome);
$username = mysqli_real_escape_string($con, $username);
$passwrod = mysqli_real_escape_string($con, $password);
$rippassword = mysqli_real_escape_string($con, $rippassword);
$email = mysqli_real_escape_string($con, $email);
$ripemail = mysqli_real_escape_string($con, $ripemail);

secondo tipo di sintassi mysqli:

PHP:
$id = $mysqli->real_escape_string(trim($_POST['id'])); 
$cognome = $mysqli->real_escape_string(trim($_POST['cognome'])); 
$nome = $mysqli->real_escape_string(trim($_POST['nome'])); 
$username = $mysqli->real_escape_string(trim($_POST['username'])); 
$password = $mysqli->real_escape_string(trim($_POST['password'])); 
$rippassword = $mysqli->real_escape_string(trim($_POST['rippassword']));  
$email = $mysqli->real_escape_string(trim($_POST['email']));  
$ripemail = $mysqli->real_escape_string(trim($_POST['ripemail']));

In entrambi i casi il mio editor netbeans mi da un triangolino giallo e mi da il seguente errore:

Fatal error: call to member function real_escape_string() on null

Cosa vuol dire e come posso eliminarlo ??? Grazie.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
che la funzione real_escape_string non accetta un valore NULL, cioè probabilmente vuoro
entrambe giuste dipende su usi la programmazione procedurale (la prima) o a oggetti (la seconda)
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Io vorrei adoperare la prima che mi sembra che sia la più semplice e la più facile. E come le debbo riempire ???? perchè sennò non c'ho capito niente. Perdonami se ti chiedo una mano ma vorrei imparare al meglio.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
problemi con mysqli

Allora,

Ricapitolando io avrei fatto così:

iscrizione.php

PHP:
<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title>Modulo Iscrizione</title>

      <style type="text/css">
        
#intestazione{
 width:100%;
 height:100px;
 position:absolute;
 font-family: Comic Sans MS;
 top:0px;
 left:0px;
 text-align: center;
}
#divhr {
    
position:absolute;
top: 100px;    
font-family:Comic Sans MS;
}
#messaggio {
    
position:relative;
top:400px;    
font-family:Comic Sans MS;
color:#ff0000;
}
.label {
 display: inline-block;
 widht: 9em;
 }   
 form: valid input[tyupe="submit"] {
 background: red;   
 }   
</style>        
        
<div id ="intestazione"> 
    <H1>BENVENUTI NEL MODULO D'ISCRIZIONE</H1>
    <hr>
</div>
  
    <div id ="divhr">
    <form method="POST" autocomplete ="off" action="<?php $_SERVER['PHP_SELF'] ?>">

<label for =campo-cognome"> Nome: </label> <input type ="text" required id = "campo-cognome"  name = "cognome">
                
<p> <p><label for =campo-nome"> Nome: </label> <input type ="text" required id = "campo-nome"  name = "nome"> </p></p>
  
<p> <p><label for =campo-username"> Username: </label> <input type ="text" required id = "campo-username"  name = "username"> </p></p>        
       
<p> <p><label for =campo-email"> E-Mail: </label> <input type ="text" required id = "campo-email"  name = "email"> </p></p>        

<p> <p><label for =campo-ripemail"> Ripeti-Email: </label> <input type ="text" required id = "campo-ripemail"  name = "ripemail"> </p></p>        

<p> <p><label for =campo-passwod"> Password: </label> <input type ="password" required id = "campo-password"  name = "password"> </p></p>        

<p> <p><label for =campo-rippassword"> Ripeti-Password: </label> <input type ="password" required id = "campo-rippassword"  name = "rippassword"> </p></p>        
  
  
<div id = "center">
</p>  
                    <input type="submit" name="log" value="Invio iscrizione" />
</div>
        </div>
        
            </form>
       
    </head>
    <body>
        <?php
  if(!isset($_POST[log])){
require_once ("connettimysqli.php");
require_once ("data.php");
echo"</hr>";


$id = mysqli_real_escape_string($con, $id);
$cognome = mysqli_real_escape_string($con, $cognome);
$nome = mysqli_real_escape_string($con, $nome);
$username = mysqli_real_escape_string($con, $username);
$passwrod = mysqli_real_escape_string($con, $password);
$rippassword = mysqli_real_escape_string($con, $rippassword);
$email = mysqli_real_escape_string($con, $email);
$ripemail = mysqli_real_escape_string($con, $ripemail);



 
#Inizamo a controllare il carattere inserito per l'email che sia corretto
  
  $errore = "";

#Inizamo a controllare il carattere inserito per l'email che sia corretto
  if(!isset($_POST[log])){
$email=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
    echo "Attenzione, formato email non valido.";
}// 


if($errore==""){
    
$query=("INSERT INTO utenti (cognome, nome, username,email, password) VALUES('$nome','$cognome','$username','$email','$password')");
$result=mysqli_query($con,$query);

    echo("<p> Inserimento avvenuto correttamente <p>");
} else{
    echo("<br>Inserimento non eseguito");
}
}
}
             
        
        ?>
    </body>
</html>

Risultato della pagina è il seguente:

Risultato della pagina.PNG

Dove sbaglio ???? Non riesco a capirlo l'ho rifatto duecento volte ma nada :( Spero in voi in una mano. Grazie. Ovviamente il messaggio non deve apparire in quella posizione ma in fondo dopo il tasto "Invio dati".
 
Ultima modifica:

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
problemi con mysqli

Salve a tutti,

Ho iniziatod a capo il mio codcie che avevo postato mi sono accorto che è un gran casino 8scusate x il termine) Detto ciò posto il nuovo codice che sto facendo campo x campo cerncando di mettere anche i controlli necessari per gli eventuali "sbadati" che non mettono la "@" nell'inserimento email oppure che lasciano il campo vuoto. Questo è quanto ho fatto in pochi minuti adesso.

provains.php

PHP:
<?php
    
     
        require_once("connettimysqli.php");
        require_once("data.php");
     echo "</hr>";
 
     
$id = mysqli_real_escape_string($con, $id);
$nome = mysqli_real_escape_string($con, $nome);
$cognome = mysqli_real_escape_string($con, $cognome);
$username = mysqli_real_escape_string($con, $username);


echo '<div class ="messaggio">';

$errore = "";

if (cognome == ""){$errore .= "Attenzione il campo è vuoto";}


   
   ?>
<div id ="messaggio">
    <?php
if(!empty($_POST)){
    
$query=("INSERT INTO utenti (cognome, nome, username) VALUES('$cognome','$nome','$username'')");
$result=mysqli_query($con,$query);

if($result){
    echo("<p> Inserimento avvenuto correttamente <p>");
} else{
    echo("<br>Inserimento non eseguito");
}
}
?>
</div>
    </body>
</html>

Questo spezzone di codice che posto isolatamente:

PHP:
$errore = "";

if (cognome == ""){$errore .= "Attenzione il campo è vuoto";}

Dovrebbe far si che se il campo "cognome" risulta vuoto alla fine della registrazione glielo indica purtroppo semplice php, mi piacerebbe farlo in java o ajax ma sembra non funzionare. Inoltre non mi memorizza i dati :( Domanda perchè tutte queste complicazione ogni volta che debbo fare qualcosa di nuovo ???? Risposta: bah !!!! Spero che qualcuno mi possa aiutare, grazie.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ho fatto le correzioni segnalatomi da te, ma ora mi continua a dare la memorizzazione dati sempre bianco non so pià che pesci prendere. Considera che è lo stesso listato che adoperavo con la vecchia versione di mysql corretta a suo tempo e funzionava. con mysqli non mi funziona :(


PHP:
<!DOCTYPE html>
      
<html>
    <head>
         <meta http-equiv="Content-Type" content="text/html; charset="ISO-8859-1" />        
        <title>ISCRZIONE PROVA</title>
    

      <style type="text/css">
body {
 background-color:#333;
 color:#FFF;
 font-family:Comic Sans MS;
 font-size:20px;
 
}
#intestazione{
 width:100%;
 height:100px;
 position:absolute;
 font-family: Comic Sans MS;
 top:0px;
 left:0px;
 text-align: center;
}
#divhr {
    
position:absolute;
top: 120px;    
font-family:Comic Sans MS;

}
#messaggio {
 position: absolute;
 top: 280px;
 
  }  
</style>

    </head>
    <body>
        
        <div id = "intestazione">
            <h1>Gestione iscrizione prova</h1>
            <hr>
            </div>
            
        <div id = "divhr">    

            <form method="POST" action="<?php $_SERVER['PHP_SELF'] ?>">
            
Cognome: <input type="text" name="cognome"  maxlength="80" size ="82" />

<p> <p>

Nome: <input type="text" name="nome"  maxlength="80" size ="82" />

</p></p>
<p> <p>

Username: <input type="text" name="username"  maxlength="80" size ="82" />

</p></p>
     
            <div align ="center">
            <input type="submit" name="reg" value="Invio Iscrizione" />
            </div>
            
                </div>
        
            </form>
       
        
    <?php
    
     
        require_once("connettimysqli.php");
        require_once("data.php");
     echo "</hr>";
 
     
$id = mysqli_real_escape_string($con, $id);
$nome = mysqli_real_escape_string($con, $nome);
$cognome = mysqli_real_escape_string($con, $cognome);
$username = mysqli_real_escape_string($con, $username);

    echo '<div id ="messaggio">';

if(!empty($_POST)){
    
$query=("INSERT INTO utenti (cognome, nome, username) VALUES('$cognome','$nome','$username')");
$result=mysqli_query($con,$query);

if($result){
    echo("<p> Inserimento avvenuto correttamente <p>");
} else{
 echo("Inserimento non eseguito. Errore: ".mysqli_error($con));
}
}
?>
</div>
    </body>
</html>


Credo che sia tutto corretto ma non capisco il perchè non funziona. Sono giorni che ci lavoro senza concludere niente. Spero in voi. Grazie.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
metti un var_dump e dimmi cosa riporta (anche se immagino gia cosa)
PHP:
<?php
//....
if(!empty($_POST)){
var_dump($cognome,$nome,$username);
$query=("INSERT INTO utenti (cognome, nome, username) VALUES('$cognome','$nome','$username')");
$result=mysqli_query($con,$query);
//....
?>
poi non stare a postare tutto il codice, ma solo le parti interessate
comunque come hai detto tu era un casino, ma non è che sia cambiato molto
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao Borgo ,

Mi sono autorisposto da solo ho confrontato i due codici e manca il $_POST alla fine della stringa delle variabili elencate. Cioè doveva essere in questa maniera qua:

$id = mysqli_real_escape_string($con, $_POST['id']);

L'unica cosa che netbeans mi da triangolino giallo e non so cosa voglia dire però funziona e memorizza. Si può chiudere la discussione.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
E Verifica dell'Età Javascript 0
MarcoGrazia Verifica di una stringa o di un nome proveniente da form Snippet PHP 0
G Problema verifica palindromo e verifica pari e dispari javascript Javascript 0
D verifica codice fiscale persona fisica /aziendale stesso campo HTML e CSS 1
F [PHP] Verifica utente presente nel DB PHP 13
gandalf1959 [PHP] Verifica password per accesso ad area riservata PHP 3
M [Javascript] Verifica calcolo prima di fare insert Javascript 13
Samuele Ronzani [PHP] Verifica se un dato esiste già PHP 1
S [Javascript] Verifica separatore decimale sistema operativo Javascript 2
felino EXCEL: verifica dati mancanti tra due sheet Windows e Software 2
A Verifica validità data in Java Java 2
kikki882 verifica account - dati personali Social Media Marketing 0
S [PHP] Verifica dati tramite form e annullamento codice inserito PHP 7
L Wordpress: consiglio plugin per "verifica disponibilità" WordPress 0
MarcoGrazia Verifica di un indirizzo email Snippet PHP 0
MarcoGrazia [PHP] Verifica dell'input utente tramite funzione generica. PHP 0
francesco87 [Vendo] Verifica pagina (bollino grigio) Annunci servizi di Social Media Marketing 0
M [PHP] Verifica formato data in tempo reale PHP 2
WebDr [Javascript] verifica input Javascript 8
R [WordPress] Accesso al db e verifica credenziali (password criptata) WordPress 1
A VENDO ACCOUNT DI DIVERSE PIATTAFORME E VERIFICA FACEBOOK ACCOUNT(PHOTO TAG VERIFICATION,VERIFICA TEL Annunci servizi di Social Media Marketing 2
S Verifica Esistenza Codice Fiscale PHP 5
C verifica e invio ordine php PHP 19
MarcoGrazia Verifica della data inserita in un form ( utilizzando bootstrap ) Javascript 7
G verifica caricamento foto originali su social network o sito di hosting immagini Discussioni Varie 3
A Strumenti "ufficiali" per la verifica dei Cookie HTML e CSS 2
A verifica di proprietà bing webmaster tool Google Search Console 0
P Verifica form solo con php senza javascript PHP 15
D Verifica inserimento dati form PHP 12
P verifica utente in db PHP 6
L [MySQL] Verifica disponibilità camera MySQL 32
L vendo account facebook femmina 5.000 amici con verifica cell e tag superati Annunci servizi di Social Media Marketing 0
V verifica form jQuery 5
filippino Verifica email per attribuzione dei contenuti SEO e Posizionamento 0
N Verifica email di registrazione PHP 0
D Verifica plug-in aggiornati di Firefox non vede gli aggiornamenti effettivi Windows e Software 0
il_bauscia Verifica segnale operatore 5ghz Reti LAN e Wireless 2
Virginia86 [risolto] Problema select e verifica form PHP 38
G php asincrono con ajax 2 campi di verifica PHP 1
P Problema ocon verifica campo in javascript Javascript 7
M Cosa ne pensate del mio primo file PHP (verifica disponibilità stanze)? PHP 0
M adsmanager e messaggio di verifica email Joomla 0
L verifica mail in db con jquery e ajax. Aiuto jQuery 9
asevenx modulo registrazione utenti, cicli if di verifica PHP 9
A Espressione Regolare per verifica stringa PHP 14
A verifica codice PHP 7
M Verifica HTTP o HTTPS PHP 1
M Verifica se una Funzione appartiene ad una Classe PHP 9
F Esiste un programma che verifica la home page e la corregge automaticamente? HTML e CSS 7
P problema verifica dati Ajax 58

Discussioni simili