confronto tra password

è corretta?

non riesco a farla funzionare...

function check_two_password($passord, $password2){
   global $_CONFIG;
   
   $password= trim($passord);
   $password2= trim($passord2);
   
   if($password != $password2)
      return "attenzione le password non coincidono";
   
   return true;
}
inviato 9 anni fa
myscript72
X 0 X

function check_two_password($passord, $password2){

global $_CONFIG;

$password= trim($passord);

$password2= trim($passord2);

............

sono diversi, lo passi alla funzione come $password2, ma fai il trim su $passord2

credo sia quello il prob...

ciao

Lore

risposto 9 anni fa
Lore
Lore
1
X 0 X

e sarebbe il caso che se sono diverse passi false, dato che se sono uguali passi true!

risposto 9 anni fa
LonelyWolf
X 0 X

nulla non va....

ho questo nella pagina reg.lib.php  quella in cui avviene il controllo

function check_two_password($password, $password2){
   global $_CONFIG;
   
   $password= trim($password);
   $password2= trim($password2);
   
   if($password != $password2)
      return "attenzione le password non coincidono";
   
   return false;
}

questo nella pagina config.php

$_CONFIG['check_table'] = array(
   "username" => "check_username",
   "password" => "check_global",
   "password2" => "check_global",
   "nome" => "check_global",
   "cognome" => "check_global",
   "email" => "check_global"
);

e questo nella pagina registrazione.php

<?php
include_once("include/config.php");
include_once("include/reg.lib.php");

if(isset($_POST['action']) and $_POST['action'] == 'Invia'){
   $ret = reg_check_data($_POST);
   $status = ($ret === true) ? reg_register($_POST) : REG_ERRORS;
}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
   <title>Login Utente</title>
   <link type="text/css" rel="stylesheet" href="css/style.css" />
</head>

<body>


<table cellpadding="0" cellspacing="0" align="ceter">
<tr>
   <td><?php include ('header.php');  ?></td>
</tr>
<tr>
   <td><?php include ('menu.php');  ?></td>
</tr>
<tr>
   <td>
   
   <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
   <div align="center">
   <table border="0" width="300" class="style1">
   <tr>
      <td colspan="2" height="10"></td>
   </tr>
   <tr>
      <td>Nome:</td>
      <td><input type="text" name="nome"></td>
   </tr>
   <tr>
      <td>Cognome:</td>
      <td><input type="text" name="cognome"></td>
   </tr>
   <tr>
      <td>Username:</td>
      <td><input type="text" name="username"></td>
   </tr>
   <tr>
      <td>Password:</td>
      <td><input type="password" name="password"></td>
   </tr>
   <tr>
      <td>Riscrivi la password:</td>
      <td><input type="password" name="password2"></td>
   </tr>
   <tr>
      <td>E-mail:</td>
      <td><input type="text" name="email"></td>
   </tr>
   <tr>
      <td colspan="2" align="center"><input type="submit" name="action" value="Invia"></td>
   </tr>
   </table>
   </div>
   </form>
   
   <div>
   <?
   switch($status){
      case REG_ERRORS:
         ?>
         <span class="style1">Sono stati rilevati i seguenti errori:</span><br>
         <span class="style2">
         <?php
         foreach($ret as $error)
            printf("<b>%s</b>: %s<br>", $error[0], $error[1]);
         ?>
         </span>
         <?php
      break;
      case REG_FAILED:
         echo "Registrazione Fallita a causa di un errore interno.";
      break;
      case REG_SUCCESS:
         echo "Registrazione avvenuta con successo.";
         require_once('ty.php');
         //Vi è stata inviata una email contente le istruzioni per confermare la registrazione.";
      break;
   }
   ?>
   </div>

   </td>
</tr>
<tr>
   <td><?php include ('footer.php');  ?></td>
</tr>
</table>

</body>
</html>
risposto 9 anni fa
myscript72
X 0 X

Io nel codice non vedo la chiamata alla funzione.

risposto 9 anni fa
LonelyWolf
X 0 X

come e dove LonelyWolf?  :crazy:

risposto 9 anni fa
myscript72
X 0 X

non vedo dove chiami la funzione di controllo delle due password.

risposto 9 anni fa
LonelyWolf
X 0 X

nulla LonelyWolf non riesco a farla funzionare, mi faresti un esempio di come devo richiamarla?

risposto 9 anni fa
myscript72
X 0 X

aggiungi un campo hidden al form di nome invio con value 1,

prima delle intestazioni:

if (isset($_POST["invio"]) {
check_two_password($_POST["password"],$_POST["password2"]);
//altro codice di registrazione dei dati.
}

Questa è una implementazione alla buona.

risposto 9 anni fa
LonelyWolf
X 0 X

reg.lib.php

function check_two_password($password, $password2){
   global $_CONFIG;
   
   $password= trim($password);
   $password2= trim($password2);
   
   if($password != $password2)
      return "attenzione le password non coincidono";
   
   return false;
}

config.php

$_CONFIG['check_table'] = array(
   "username" => "check_username",
   "password" => "check_global",
   "password2" => "check_global",
   "nome" => "check_global",
   "cognome" => "check_global",
   "email" => "check_global"
);

registrazione.php

<?php
include_once("include/config.php");
include_once("include/reg.lib.php");

if(isset($_POST['action']) and $_POST['action'] == 'Invia'){
   $ret = reg_check_data($_POST);
   $status = ($ret === true) ? reg_register($_POST) : REG_ERRORS;
/* qui inserisci il controllo (chiami la funzione) */

check_two_password($_POST["password"], $_POST["password2"])
}
?>

Occhio non l'ho testata devi chiamare la funzione dentro al file registrazione.php se no come fà a farti i lcontrollo?

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

Ooops mi hai battuto sul tempo....  :o

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

Ma la tua è meglio! :D

risposto 9 anni fa
LonelyWolf
X 0 X

scusa Maverikgoos ma non riesco a farla funzionare in nessun modo...

risposto 9 anni fa
myscript72
X 0 X

non riesco in nessun modo non so dove mettere le mani per richiamare l'errore

registrazione.php

<?php

include_once("include/config.php");

include_once("include/reg.lib.php");

if(isset($_POST['action']) and $_POST['action'] == 'Invia'){

   $ret = reg_check_data($_POST);

   $status = ($ret === true) ? reg_register($_POST) : REG_ERRORS;

}

if(isset($_POST['action']) and $_POST['action'] == 'Invia'){

   

   $pippo = check_two_password($_POST["password"],$_POST["password2"]);

   $status2 = ($pippo === true) ? reg_register($_POST) : REG_ERRORS;

//altro codice di registrazione dei dati.

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

   <title>Login Utente</title>

   <link type="text/css" rel="stylesheet" href="css/style.css" />

</head>

<body>

<table cellpadding="0" cellspacing="0" align="ceter">

<tr>

   <td><?php include ('header.php');  ?></td>

</tr>

<tr>

   <td><?php include ('menu.php');  ?></td>

</tr>

<tr>

   <td>

   

   <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">

   <div align="center">

   <table border="0" width="300" class="style1">

   <tr>

      <td colspan="2" height="10"></td>

   </tr>

   <tr>

      <td>Nome:</td>

      <td><input type="text" name="nome"></td>

   </tr>

   <tr>

      <td>Cognome:</td>

      <td><input type="text" name="cognome"></td>

   </tr>

   <tr>

      <td>Username:</td>

      <td><input type="text" name="username"></td>

   </tr>

   <tr>

      <td>Password:</td>

      <td><input type="password" name="password"></td>

   </tr>

   <tr>

      <td>Riscrivi la password:</td>

      <td><input type="password" name="password2"></td>

   </tr>

   <tr>

      <td>E-mail:</td>

      <td><input type="text" name="email"></td>

   </tr>

   <tr>

      <td colspan="2" align="center"><input type="submit" name="action" value="Invia"></td>

   </tr>

   </table>

   </div>

   </form>

   

   <div>

   <?

   switch($status){

      case REG_ERRORS:

         ?>

         <span class="style1">Sono stati rilevati i seguenti errori:</span><br>

         <span class="style2">

         <?php

         foreach($ret as $error)

            printf("<b>%s</b>: %s<br>", $error[0], $error[1]);

            printf("<b>%s</b>: %s<br>", $pass);

         ?>

         </span>

         <?php

      break;

      case REG_FAILED:

         echo "Registrazione Fallita a causa di un errore interno.";

      break;

      case REG_SUCCESS:

         echo "Registrazione avvenuta con successo.";

         require_once('ty.php');

         //Vi è stata inviata una email contente le istruzioni per confermare la registrazione.";

      break;

   }

   ?>

   </div>

   </td>

</tr>

<tr>

   <td><?php include ('footer.php');  ?></td>

</tr>

</table>

</body>

</html>

config.php

<?php

$_CONFIG['host'] = "localhost";

$_CONFIG['user'] = "root";

$_CONFIG['pass'] = "*******";

$_CONFIG['dbname'] = "autenticazione";

$_CONFIG['table_sessioni'] = "sessioni";

$_CONFIG['table_utenti'] = "utenti";

$_CONFIG['expire'] = 60;

$_CONFIG['regexpire'] = 24; //in ore

$_CONFIG['check_table'] = array(

   "username" => "check_username",

   "password" => "check_global",

   "password2" => "check_global",

   "nome" => "check_global",

   "cognome" => "check_global",

   "email" => "check_global"

);

function check_username($value){

   global $_CONFIG;

   

   $value = trim($value);

   if($value == "")

      return "Il campo non può essere lasciato vuoto";

   $query = mysql_query("

   SELECT id

   FROM ".$_CONFIG['table_utenti']."

   WHERE username='".$value."'");

   if(mysql_num_rows($query) != 0)

      return "Nome utente già utilizzato";

   

   return true;

}

function check_global($value){

   global $_CONFIG;

   

   $value = trim($value);

   if($value == "")

      return "Il campo non può essere lasciato vuoto";

   

   return true;

}

function check_two_password($password, $password2){

   global $_CONFIG;

   $password= trim($password);

   $password2= trim($password2);

   if($password != $password2)

      return "attenzione le password non coincidono";

   return true;

}

//--------------

define('AUTH_LOGGED', 99);

define('AUTH_NOT_LOGGED', 100);

define('AUTH_USE_COOKIE', 101);

define('AUTH_USE_LINK', 103);

define('AUTH_INVALID_PARAMS', 104);

define('AUTH_LOGEDD_IN', 105);

define('AUTH_FAILED', 106);

define('REG_ERRORS', 107);

define('REG_SUCCESS', 108);

define('REG_FAILED', 109);

$conn = mysql_connect($_CONFIG['host'], $_CONFIG['user'], $_CONFIG['pass']) or die('Impossibile stabilire una connessione');

mysql_select_db($_CONFIG['dbname']);

?>

reg.lib.php

<?php

function reg_register($data){

   //registro l'utente

   global $_CONFIG;

   

   $id = reg_get_unique_id();

   mysql_query("

   INSERT INTO ".$_CONFIG['table_utenti']."

   (name, surname, indirizzo, occupazione, username, password, temp, regdate, uid)

   VALUES

   ('".$data['name']."','".$data['surname']."','".$data['indirizzo']."',

   '".$data['occupazione']."','".$data['username']."',MD5('".$data['password']."'),

   '1', '".time()."','".$id."')");

   

   //Decommentate la riga seguente per testare lo script in locale

   //echo "<a href=\"http://localhost/Articoli/autenticazione/2/scripts/confirm.php?id=".$id."\">Conferma</a>";

   if(mysql_insert_id()){

      return reg_send_confirmation_mail($data['mail'], "test@localhost", $id);

   }else return REG_FAILED;

}

function reg_send_confirmation_mail($to, $from, $id){

   //invio la mail di conferma

   $msg = "Per confermare l'avvenuta registrazione, clicckate il link seguente:

   http://localhost/Articoli/autenticazione/1/scripts/confirm.php?id=".$id."

   ";

   return (mail($to, "Conferma la registrazione", $msg, "From: ".$from)) ? REG_SUCCESS : REG_FAILED;

}

function reg_clean_expired(){

   global $_CONFIG;

   

   $query = mysql_query("

   DELETE FROM ".$_CONFIG['table_utenti']."

   WHERE (regdate + ".($_CONFIG['regexpire'] * 60 * 60).") <= ".time()." and temp='1'");

}

function reg_get_unique_id(){

   //restituisce un ID univoco per gestire la registrazione

   list($usec, $sec) = explode(' ', microtime());

   mt_srand((float) $sec + ((float) $usec * 100000));

   return md5(uniqid(mt_rand(), true));

}

function reg_check_data($data){

   global $_CONFIG;

   

   $errors = array();

   

   foreach($data as $field_name => $value){

      $func = $_CONFIG['check_table'][$field_name];

      if(!is_null($func)){

         $ret = $func($value);

         if($ret !== true)

            $errors[] = array($field_name, $ret);

      }

   }

   

   return count($errors) > 0 ? $errors : true;

}

function reg_confirm($id){

   global $_CONFIG;

   

   $query = mysql_query("

   UPDATE ".$_CONFIG['table_utenti']."

   SET temp='0'

   WHERE uid='".$id."'");

   

   return (mysql_affected_rows () != 0) ? REG_SUCCESS : REG_FAILED;

}

?>
risposto 9 anni fa
myscript72
X 0 X

Secondo me dovresti partire con delle belle letture sul php. In quanto ti mancano alcuni concetti di base.

Premesso questo:

registrazione.php

<?php
include_once("include/config.php");
include_once("include/reg.lib.php");

if(isset($_POST['action']) and $_POST['action'] == 'Invia'){

$pippo = check_two_password($_POST["password"],$_POST["password2"]);
echo $pippo; /*<------------------------------ Devi dirgli di stampare la stringa -------< */
$status2 = ($pippo === true) ? reg_register($_POST) : REG_ERRORS;
//altro codice di registrazione dei dati.
}
?>

Basta mettere un semplice echo.

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

Ciao maverikgoos, le funzioni non le ho mai usate e vorrei utilizzarle al meglio nello script sopra, dai dati che ho,  e che non riesco a stampare l'errore all'interno di questa porzione di codice

<?
switch($status){

case REG_ERRORS:

?>

<span class="style1">Sono stati rilevati i seguenti errori:</span><br>

<span class="style2">

<?php

foreach($ret as $error)

printf("<b>%s</b>: %s<br>", $error[0], $error[1]);

printf("<b>%s</b>: %s<br>", $pass);

?>

</span>

<?php

break;

case REG_FAILED:

echo "Registrazione Fallita a causa di un errore interno.";

break;

case REG_SUCCESS:

echo "Registrazione avvenuta con successo.";

require_once('ty.php');

//Vi è stata inviata una email contente le istruzioni per confermare la registrazione.";

break;

}

?>

se metto un print fuori va bene però nel momento in cui non ci sono errori per lo script precedente e le due password non coincidono mi stampa la parte contenuta in questa porzione.

case REG_FAILED:

echo "Registrazione Fallita a causa di un errore interno.";

break;

quello che devo cercare di far stampare  tutti gli errori possibili all'interno di quel "case REG_ERRORS:"

risposto 9 anni fa
myscript72
X 0 X

Fai una lettura quì prima.  8)

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda