Controlli form per Registrazione utenti

FireinCairo

Nuovo Utente
21 Feb 2013
3
0
0
Salve a tutti,
sto cercando di creare un sistema di registrazione di utenti. Mi sto aiutando con un tutorial presente su Youtube. I primi passaggi sono riusciti ma non riesco a completare i controlli del form. Ecco l'editor:

PHP:
<?
include 'header.php';
?>
<div id="wrapper">
<?php
if (!isset ($_GET ['PASSKEY'] ) ) {
if (!isset ($_POST ['invia'] ) ) { ?>
<form method="post" action="#" id"formregistrazione">
<label for="username">Username</label>
<input type="text" name="username" id="username" /><br>
<label for="password1">Passoword</label>
<input type="password" name="password1" id="password1" /><br>
<label for="password2">Ripeti password</label>
<input type="password" name="password2" id="password2" /><br>
<label for="email">Email</label>
<input type="text" name="email" id="email" /><br>
<input type="submit" name="invia" id="registrati" value="Registrati" />
</form>
<?
} else {
$codiceconferma = md5(uniqid(rand()));
$username = mysql_real_escape_string($_POST['username']);
$password1 = mysql_real_escape_string($_POST['password1']);
$password2 = mysql_real_escape_string($_POST['password2']);
$email = mysql_real_escape_string($_POST['email']);
if($username == "" || $email == "") {
      echo "Devi riempire tutti i campi";
} elseif($password1 == "" || $password2 == "") {
      echo "Devi riempire tutti i campi";
} elseif($password2 != $password1) {
       echo "Le password devono coincidere";
} else {
}
}
</div>
</body>
</html>



Quando vado a verificare su Firefox se tutto è riuscito, mi appaiono tutti i form ma, quando provo a digitare password diverse o uguali, non mi escono le frasi per le diverse condizioni (elseif) come, ad esempio, "Le password devono coincidere", "Devi riempire tutti i campi", ecc....qual'è il problema????
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
se non hai sbagliato a copiare il codice, manca la chiusura di una } e una di php ?>
poi non usare gli short tag ma sempre il tag completo <?php

p.s.
poi nel post racchiudi sempre il codice tra gli appositi tag /seconda riga formattazione del post ultime tre iconcine, nell'ordine CODE HTML PHP
 

FireinCairo

Nuovo Utente
21 Feb 2013
3
0
0
Quali tag mancano?

Grazie per la riposta. Potrei sapere con precisione dov'è che manca la chiusura di una } e di un tag di php ?>. Se possibile, potresti incollarmi proprio le zone in cui c'è il problema? Te ne sarei molto grata.

Grazie


ciao
se non hai sbagliato a copiare il codice, manca la chiusura di una } e una di php ?>
poi non usare gli short tag ma sempre il tag completo <?php

p.s.
poi nel post racchiudi sempre il codice tra gli appositi tag /seconda riga formattazione del post ultime tre iconcine, nell'ordine CODE HTML PHP
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
intanto la chiusura php prima di </div></body></html> che sono tag html

PHP:
<?php
//....
} elseif($password2 != $password1) {
       echo "Le password devono coincidere";
} else {
}
}
?>
</div>
</body>
</html>

poi per la graffa manca la ciusura dell if
if (!isset ($_GET ['PASSKEY'] ) ) {
penso che sia questa (ma non ho seguito attentamente la logica dello script quindi la chiusura può essere in un altro punto)
piccolo accorgimento: se conti le graffe (aperte e chiuse) devi ottenere un numero pari, contandole (salvo errori) ne ho contate 13, quindi o manca una chiusa o una aperta
 

FireinCairo

Nuovo Utente
21 Feb 2013
3
0
0
Modifiche apportate ma nulla di fatto!

Ho provato a fare le modifiche che mi hai detto ma il problema persiste. Ho modificato bene?
Cerco di spiegarti meglio tutto: voglio creare un sistema di registrazione e ho creato, per ora, 4 file di testo (index, config, header, register), secondo le direttive di un tutorial presente su Youtube. Il file di testo in questione è register.php. I file di testo li ho messi tutti nella cartella htdocs di XAMPP. Fino ad ora è riuscito tutto ma non mi si vedono i controlli degli script. Infine, può darsi che i controlli non si vedano perchè non ho installato mysql? Non dovrebbe essere già incluso in XAMPP?

Ps: grazie ancora per la disponibilità, speriamo di risolvere la questione!

PHP:
<?php 

include 'header.php';


?>
<div id="wrapper">
<?php

if (!isset ($_GET ['PASSKEY'] ) ) {

}

if (!isset ($_POST ['invia'] ) ) {
} 

?>


<form method="post" action="#" id"formregistrazione">
<label for="username">Username</label>
<input type="text" name="username" id="username" /><br>
<label for="password1">Passoword</label>
<input type="password" name="password1" id="password1" /><br>
<label for="password2">Ripeti password</label>
<input type="password" name="password2" id="password2" /><br>
<label for="email">Email</label>
<input type="text" name="email" id="email" /><br>
<input type="submit" name="invia" id="registrati" value="Registrati" />


</form>

<?


} else {

$codiceconferma = md5(uniqid(rand()));



$username = mysql_real_escape_string($_POST['username']);
$password1 = mysql_real_escape_string($_POST['password1']);
$password2 = mysql_real_escape_string($_POST['password2']);
$email = mysql_real_escape_string($_POST['email']);


if($username == "" || $email == "") {
      echo "Devi riempire tutti i campi";
} elseif($password1 == "" || $password2 == "") {
      echo "Devi riempire tutti i campi";
} elseif($password2 != $password1) {
       echo "Le password devono coincidere";
} else {



}



</div>
</body>
</html>

ciao
intanto la chiusura php prima di </div></body></html> che sono tag html

PHP:
<?php
//....
} elseif($password2 != $password1) {
       echo "Le password devono coincidere";
} else {
}
}
?>
</div>
</body>
</html>

poi per la graffa manca la ciusura dell if
if (!isset ($_GET ['PASSKEY'] ) ) {
penso che sia questa (ma non ho seguito attentamente la logica dello script quindi la chiusura può essere in un altro punto)
piccolo accorgimento: se conti le graffe (aperte e chiuse) devi ottenere un numero pari, contandole (salvo errori) ne ho contate 13, quindi o manca una chiusa o una aperta
 
Ultima modifica di un moderatore:

marino51

Utente Attivo
28 Feb 2013
3.001
173
63
Lombardia
suggerimento ... php-validation-one-page

ciao Fire,

ho letto solo oggi il messaggio e mi sono iscritto per un suggerimento,
ho iniziato ad usare php e html solo da un paio di settimane, ho fatto qualche ricerca e l'idea
è arrivata dal sito che ti allego (solo teoria ma molto utile)

http://coredogs.com/lesson/form-and-php-validation-one-page

così ho creato lo script che ti allego, ti sarà facile adattarlo alle tue necessità
è diventato lo "skeleton" per gestire i miei form

io utilizzo ms sql come gestore di database quindi per MySQL devi adattare la funzione "check_userID()"
è pienamente funzionante ma ho eliminato alcuni dati "sensibili"
in ogni caso puoi mascherare la chiamata alla suddetta funzione per provarlo

attenta a non modificare le parentesi graffe e l'apertura/chiusura di php a ridosso del codice HTML
il form è parte integrante di una funzione PHP adeguatamente chiamata

quindi come spiegato nel sito che ti ho indicato il "pallino" lo gestisce PHP non HTML o un misto dei due
in questo modo diventa molto semplice gestire la logica

trovi lo script ed il relativo file .css richiamato in HTML

sperando che non mi vengano troncati x la lunghezza

io uso IIS 7.5, MS SQL e php l'ho installato con gli strumenti messi a disposizione da Microsoft, con qualche veloce verifica
quindi non conosco MySQL

ciao
Marino

PHP:
<?php

# http://localhost/test_site/php/Optidea_Login.php

$errormsg = array();
$errorstring = "";

if (!isset($_POST['Submitted'])) {
  $_POST['Submitted'] = 0;
  $_POST['Action'] = "";
  EmptyFields();
}

if ($_POST['Action'] == "Cancella") $_POST['Submitted'] = 0;

if ($_POST['Submitted'] == 1) {

  check_SOLID();

  check_fields();

  if ($_POST['Action'] == "Abbandona") $_POST['Submitted'] = 0;
  else {
    if (count($errormsg) == 0) {
      $OPdbresult = check_userID($OPfirstname, $OPlastname, $OPpassword);
      if (!$OPdbresult) $errormsg[] = "Le credenziali indicate non hanno trovato riscontro";
    }
    if (count($errormsg) > 0) {
      $errorstring = '<p><font color=red>Ci sono errori nella verifica del form</font></p>';
      $errorstring .= '<ul>';
      foreach($errormsg as $error) $errorstring .= "<li>$error</li>";
      $errorstring .= '</ul>';
    }
    else {
      UnsetFields();
      include "Optidea_Menu_0_MainMenu.php";
      exit();
    }
  }
}
else {
  EmptyFields();
}
DisplayForm();



function check_SOLID() {
  global $_POST;

  $allowedFields = array(
    'OPfirstname' => '1',
    'OPlastname' => '1',
    'OPpassword' => '1',
    'Submitted' => '1',
    'Action' => '1',
  );
  $isSolidRequest = array_diff_key($_POST, $allowedFields);
  if (!empty($isSolidRequest)) exit("SOLID ERROR");
}



function check_fields() {
  global $_POST,$OPfirstname,$OPlastname,$OPpassword,$errormsg;

  if ($_POST['OPfirstname'] != "") $_POST['OPfirstname'] = trim(filter_var($_POST['OPfirstname'], FILTER_SANITIZE_STRING));
  if (!$_POST['OPfirstname']) $errormsg[] = "Non hai inserito il tuo nome";
  else {
    $OPfirstname = $_POST['OPfirstname'];
    if (strlen($OPfirstname) < 3) $errormsg[] = "Il nome indicato e' veramente troppo corto (> 2 car)";
    elseif (strlen($OPfirstname) > 15) $errormsg[] = "Il nome indicato e' di lunghezza eccessiva (< 16 car)";
  }

  if ($_POST['OPlastname'] != "") $_POST['OPlastname'] = trim(filter_var($_POST['OPlastname'], FILTER_SANITIZE_STRING));
  if (!$_POST['OPlastname']) $errormsg[] = "Non hai inserito il tuo cognome";
  else {
    $OPlastname = $_POST['OPlastname'];
    if (strlen($OPlastname) < 3) $errormsg[] = "Il cognome indicato e' veramente troppo corto (> 2 car)";
    elseif (strlen($OPlastname) > 15) $errormsg[] = "Il cognome indicato e' di lunghezza eccessiva (< 16 car)";
  }

  if ($_POST['OPpassword'] != "") $_POST['OPpassword'] = trim($_POST['OPpassword']);
  if (!$_POST['OPpassword']) $errormsg[] = "Non hai inserito la tua password";
  else {
    $OPpassword = $_POST['OPpassword'];
    if (strlen($OPpassword) < 7) $errormsg[] = "La password deve essere di almeno 8 caratteri (> 6 car)";
    elseif (strlen($OPpassword) > 15) $errormsg[] = "La password e' di lunghezza eccessiva (< 16 car)";
  }
}



function check_userID() {
  global $OPconn,$OPfirstname,$OPlastname,$OPpassword;

  $OPdbresult = false;

  if (!isset($OPconn)) {
    $serverName = "nome del server sql";
    $connectionInfo = array("Database"=>"nome del database", "UID"=>"nome dell'utente", "PWD"=>"password");
    $OPconn = sqlsrv_connect($serverName, $connectionInfo);
    if (!$OPconn) die(print_r(sqlsrv_errors(), true));
  }
  $query = "SELECT * FROM users ";
  $query .= "WHERE inserisci le clausole di ricerca");

  $params = array();
  $options =  array("Scrollable" => SQLSRV_CURSOR_KEYSET);

  $result = sqlsrv_query($OPconn, $query, $params, $options);
  if (!$result) die(print_r(sqlsrv_errors(), true));

  $row_count = sqlsrv_num_rows($result);
  if ($row_count > 0) $OPdbresult = true;

  sqlsrv_close($OPconn);

  return $OPdbresult;
}



function EmptyFields() {
  global $OPfirstname,$OPlastname,$OPpassword;

  $OPfirstname = "";
  $OPlastname = "";
  $OPpassword = "";
}



function UnsetFields() {
  global $Submitted,$Action,$errormsg,$errorstring,$OPdbresult;

  unset($Submitted);
  unset($Action);
  unset($errormsg);
  unset($errorstring);
  unset($OPdbresult);
}



function DisplayForm() {
  global $_POST,$OPfirstname,$OPlastname,$OPpassword,$errorstring;
?>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="description" content=" OPTIDEA - Optimal solution system - Simplex method ">
    <meta name="keywords" content="OPTIDEA, Optimal, Simplex">
    <meta name="copyright" content="Copyright (c) 1987 Marino Gaslini">
    <meta name="author" content="Marino Gaslini">
    <LINK REL="stylesheet" TYPE="text/css" HREF="Optidea_style.css">
    <title>Optidea - Login function</title>
  </head>
  <body>
    <div>
      <center><H2>Welcome to the<BR>Optidea : Optimal Solution System</H2><HR size=1><H3>Login function</H3><br /></center>
      <form action="<?php echo basename ($_SERVER['PHP_SELF'],".php") . ".php"; ?>" method="POST" enctype="multipart/form-data">
        <TABLE ALIGN=center frame="border" border=10 cellspacing=5 cellpadding=0>
 	  <TBODY valign="center">
	    <TR><TD align="Right"><B>Nome</B></TD>
	        <TD align="Left"><input type=TEXT name="OPfirstname" value="<?php echo $OPfirstname; ?>" size=30 maxlenght=15></TD></TR>
	    <TR><TD align="Right"><B>Cognome</B></TD>
	        <TD align="Left"><input type=TEXT name="OPlastname" value="<?php echo $OPlastname; ?>" size=30 maxlenght=15></TD></TR>
	    <TR><TD align="Right"><B>Password</B></TD>
	        <TD align="Left"><input type=PASSWORD name="OPpassword" value="<?php echo $OPpassword; ?>" size=30 maxlenght=15></TD></TR>
	  </TBODY>
        </TABLE>
        <input type='hidden' name='Submitted' value='1'/>
        <BR /><BR /><BR />
        <TABLE ALIGN=center frame="border" border=10 cellspacing=5 cellpadding=0>
	  <TBODY valign="center">
	    <TR><TD><input type="SUBMIT" name="Action" value="Registrati"></TD>
	        <TD><input type="SUBMIT" name="Action" value="Cancella"></TD>
	        <TD><input type="SUBMIT" name="Action" value="Abbandona" onClick="javascript:window.close()"></TD></TR>
	  </TBODY>
        </TABLE>
        <BR /><BR /><BR />
        <HR size=1 width=50%><center><I><?php echo "Copyright Optidea Solution  -  " . date('l, F jS, Y'); ?></I></center><HR size=1 width=50%>
        <BR /><BR /><center><?php echo "<b>$errorstring"; ?></center>
      </form>
    </div>
  </body>
</html> 
<?php
}
?>



HTML {
  HEIGHT:100%;
  }

BODY {
  HEIGHT:100%;
  MARGIN:0;
  PADDING:0;
  BORDER:0;
  COLOR:black;
  BACKGROUND-COLOR:white;
  FONT-FAMILY:verdana, arial, sans-serif, times new roman;
  FONT-SIZE:10pt;
  FONT-WEIGHT:normal
  }

H1 {
  COLOR:black;
  FONT-FAMILY:verdana, arial, sans-serif, times new roman;
  }

H2 {
  COLOR:teal;
  FONT-FAMILY:verdana, arial, sans-serif, times new roman;
  }

H3 {
  COLOR:black;
  FONT-FAMILY:verdana, arial, sans-serif, times new roman;
  }

H4 {
  COLOR:black;
  FONT-FAMILY:verdana, arial, sans-serif, times new roman;
  }

H5 {
  COLOR:black;
  FONT-FAMILY:verdana, arial, sans-serif, times new roman;
  }

H6 {
  COLOR:black;
  FONT-FAMILY:verdana, arial, sans-serif, times new roman;
  }

TABLE {
  COLOR:black;
  BACKGROUND-COLOR:rgb(255,255,180);
  FONT-FAMILY:verdana, arial, sans-serif, times new roman;
  }

TD {
  BACKGROUND-COLOR:rgb(255,255,204);
  FONT-FAMILY:verdana, arial, sans-serif, times new roman;
  FONT-SIZE:10pt;
  FONT-WEIGHT:normal
  }

.Header {
  COLOR:yellow;
  BACKGROUND-COLOR:teal;
  FONT-FAMILY:verdana, arial, times new roman;
  FONT-WEIGHT:bold
  }

.formtable {
  BACKGROUND-COLOR:white;
  }

* {  
  padding:0;  
  margin:0;  
  }

#content {  
  width:300px;  
  text-align:left;  
  margin:10px;  
  }  

.formitem {  
  width:100%;  
  padding:6px;  
  font:11px "Lucida Grande",Arial,sans-serif;  
  }  

.box {  
  width:100%;  
  padding:10px 0px 10px 5px;  
  margin-bottom:8px;  
  font-weight:bold;  
  }
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
marino51, vedi la stessa cosa che ho scritto due post sopra: cerca di formattare correttamente il sorgente nei tuoi post, altrimenti le discussioni diventano lunghe e difficili da leggere. Trovi i tag BBCode nella seconda barra di formattazione, ultimi tre bottoni.
 

marino51

Utente Attivo
28 Feb 2013
3.001
173
63
Lombardia
formattazione

Ciao FireinCairo,

ti invito a formattare correttamente il codice nei tuoi post al fine di migliorare la leggibilità e, se non l'hai già fatto, a leggere il regolamento.

scusa Alessandro,
ho appena inserito il mio primo intervento, il codice in esso contenuto era ben formattato ma dopo l'invio, ha perso la formattazione
pazienza, capiterà ancora di postare alro codice ....
bye
Marino
 
Discussioni simili
Autore Titolo Forum Risposte Data
H Controlli form jQuery 0
H [risolto] Controlli form iscrizione PHP 16
S Eseguire controlli sul form delle foto PHP 17
T come mettere controlli su form di inserimento dati?? PHP 11
K allineare controlli in un div HTML e CSS 3
M Effettuare i controlli di obbligatorietà lato server e, per quanto possibile, di tipo. PHP 0
M Controlli array PHP 0
X Errore nei controlli! PHP 5
M Problema controlli MySQL ( XOR ) MySQL 1
S Controlli variabili php PHP 11
Emix Momento di lapsus... Controlli su user e pwd e campo booleano... PHP 5
P Miglioramento controlli su input PHP 57
O Controlli come parametri Javascript 3
P far sparire un tasto con i controlli PHP 1
C controlli sulle registrazioni Sicurezza e Virus 0
Z problema con i controlli disattivati su IE 7 Javascript 2
M controlli radio button Javascript 2
E controlli su tabelle statiche Classic ASP 1
F me lo controlli per favore? PHP 0
Q VB6 Caricamento spezzettato matrici di controlli Programmazione 0
A controlli js Javascript 1
S Licenze?? controlli?? Flash 1
H controlli per la data Javascript 1
L Problemi form Pagina php HTML e CSS 2
Cosina Creare bottone delete in form upload PHP 4
Cosina Creare bottone delete in form upload PHP 1
D Devo far funzionare un form di contatti PHP 4
B form gestione input PHP 2
V PHP form intersecate PHP 0
8 Javascript - PDF Form Javascript 0
J Form inserimento dati in database Ajax 1
E Gestione profilo utente tramite Form PHP 3
R [C#] Form principale si blocca mentre un altro Thread lavora .NET Framework 0
M Problema con controllo form in real time jQuery 6
D Form validazione Javascript 2
R form recovery pass PHP 0
V Symfony e i form PHP 3
M form con checkbox PHP 8
S come aggiustare un form di contatto? HTML e CSS 3
F query e form con select multipla PHP 17
AC1 Form in finestra modale PHP 1
MarcoGrazia Verifica di una stringa o di un nome proveniente da form Snippet PHP 0
A Inserimento dati nel database tramite form + altre operazioni PHP 18
websilvia Contact form using Bootstrap 3.3.4 PHP 8
Alex_70 Button non funziona nella form PHP 2
C Form email php su pagina index.html? PHP 21
W Rinominare Documenti Con Form Asp Classic ASP 9
S Invio email da form PHP 8
L form multipla php sql,errore in inserimento MySQL 0
L inviare i dati di un form ad un database PHP 6

Discussioni simili