phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

dati registrazione non vengono inseriti in tabella mysql

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Rispondi
Pavel-17
Utente
Utente
Messaggi: 1
Iscritto il: 29/04/2015, 15:56
Sesso: Maschio

dati registrazione non vengono inseriti in tabella mysql

Messaggio da Pavel-17 » 29/04/2015, 16:29

Ciao ragazzi! Sono Vincenzo, un quasi completo niubbo completamente disperato!!!! Mi scuso in anticipo se non rispetto qualcosa del regolamento per quanto riguarda informazioni fornite e metodologia del post

devo aggiungere a un sito una procedura di registrazione-autenticazione che sia abbastanza completa ma semplice. Ho provato a utilizzare vari codici trovati qua e là in vari forum e alla fine questo mi è sembrato il più affidabile e affine alle mie necessità. http://www.miniscript.it/articoli/59/se ... tenti.html

credevo di averlo modificato correttamente e di aver creato una corretta tabella nel database mysql (db: termts, tabella: utentiregistrati) ma non mi registra i dati in mysql e non capisco perché....

il link alla pagina di registrazione è:
http://www2.units.it/termts/simple_logi ... azione.php

la tabella è:
Immagine
ENGINE=MyISAM DEFAULT CHARSET=latin1_bin ROW_FORMAT=dynamic

il codice presente in lib/Users.class.php è il seguente:
<?php
// error_reporting(E_ALL | E_DEPRECATED | E_STRICT);

Class Users{
/********************************
SETTING
*********************************/
// le credenziali di accesso al database
private $host_db = 'webdb2';
private $user_db = 'termts';
private $pass_db = 'ter2302!';
private $name_db = 'termts';
// gli url che gestinranno le operazioni di login
public $Urls = array(
'login_page' => 'login.php',
'register_page' => 'registrato.php',
'logout_page' => 'logout.php'
);


/*risorse di connessione*/
protected $conn;
protected $selezione_db;

/*variabili di registrazione*/
protected $reg_username;
protected $reg_email;
protected $reg_pass;
protected $reg_confirm_pass;
protected $reg_crypt_pass;

/*variabili di login*/
protected $login_username;
protected $login_password;
protected $login_cryptpass;
protected $login_iduser;

/*variabili per gestire gli errori*/
public $messages = array(
1 => 'Il campo username è obbligatorio.',
2 => 'Il campo email è obbligatorio.',
3 => 'Il campo password è obbligatorio.',
4 => 'Le due password non coincidono.',
5 => 'Il campo username contiene caratteri non validi. Sono consentiti solo lettere, numeri e i seguenti simboli . _ -.',
6 => 'Inserisci una email con sitassi corretta.',
7 => 'La password scelta è troppo breve. Scegli una password di almeno 8 caratteri.',
8 => 'Esiste già un utente registrato con questo username.',
9 => 'Esiste già un utente registrato con questa email.',
10 => 'Registrazione effettuata con successo.',
11 => 'Login errato',
12 => 'Login eseguito con successo.',
13 => 'Logout eseguito con successo.',
14 => 'Puoi accedere a questa pagina solo dopo aver effettuato il login.'
);

public $message_script;

// il costruttore attiva la connessione a mysql
public function __construct(){
$this->connessione();
}
/******************
CONNESSIONE A MYSQL
******************/
protected function connessione(){
$this->conn = mysql_connect($this->host_db, $this->user_db, $this->pass_db) or die(mysql_error());
$this->selezione_db = mysql_select_db($this->name_db, $this->conn) or die(mysql_error());
return TRUE;
}

/*************************************
VALIDAZIONI
*************************************/

// verifica campo generico non vuoto (TRUE se non vuoto)
public function empty_string($string){
$string = trim($string);
if($string==''){
return TRUE;
}
else{
return FALSE;
}
}

// verifica sintassi username
public function is_username($username){
$regex = '/^[a-z0-9\.\-_]{3,30}$/i';
return preg_match($regex, $username);
}

// verifica sintassi email (TRUE se ok)
public function is_email($email){
$regex = '/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/';
return preg_match($regex, $email);
}

// verifica sintassi password (per semplicità solo lunghezza) (TRUE se ok)
public function is_secure_password($password){
if(strlen($password)>=8){
return TRUE;
}
else{
return FALSE;
}
}

/*****************************************************
VERIFICARE ESISTENZA DI USERNAME E PASSWORD
******************************************************/

// verifica esistenza username (TRUE se esiste)
public function isset_username($username){
$query = "SELECT COUNT(username) AS count
FROM utentiregistrati
WHERE username='".mysql_real_escape_string($username)."'
LIMIT 1";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
if($row['count']==1){
return TRUE;
}
else{
return FALSE;
}
}

// verifica esistenza email (TRUE se esiste)
public function isset_email($email){
$query = "SELECT COUNT(email) AS count
FROM utentiregistrati
WHERE email='".mysql_real_escape_string($email)."'
LIMIT 1";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
if($row['count']==1){
return TRUE;
}
else{
return FALSE;
}
}

/******************************
FORM DI LOGIN E REGISTRAZIONE
******************************/
public function get_login_form(){
$html = '
<form action="' .$this->Urls['login_page']. '" method="post" id="form_login">
<fieldset>
<legend>Login<legend>
<label for="login_user">Username</label>
<input type="text" name="username" id="login_user" />
<label for="login_pass">Password</label>
<input type="password" name="pass" id="login_pass" />
<input type="submit" name="login" value="Login" id="login_submit"/>
</fieldset>
</form>';
return $html;
}

public function get_register_form(){
$html = '
<form action="' .$this->Urls['register_page']. '" method="post" id="form_register">
<fieldset>
<legend>Registrazione<legend>
<label for="reg_user">Username*</label>
<input type="text" name="username" id="reg_user" />
<label for="reg_email">Email*</label>
<input type="text" name="email" id="reg_email" />
<label for="reg_pass1">Password*</label>
<input type="password" name="pass1" id="reg_pass1" />
<label for="reg_pass2">Ripeti password*</label>
<input type="password" name="pass2" id="reg_pass2" />
<input type="submit" name="register" value="Invia" id="reg_submit" />
<input type="reset" name="reset" value="Annulla" id="reg_reset" />
</fieldset>
</form>';
return $html;
}

/*****************************
LINK LOGOUT
*****************************/
public function get_link_logout(){
if($this->is_logged()){
return '<a href="'.$this->Urls['logout_page'].'" class="logout">Logout</a>';
}
return '';
}


/*******************************
CRIPTARE LE PASSWORD
*******************************/
public function crypt_pass($pass){
return sha1($pass);
}

/*****************************
ESECUZIONE DELLA REGISTRAZIONE
******************************/
public function esegui_registrazione(){
// se il form e i suoi input sono stati inviati
if(isset($_POST['register']) AND
isset($_POST['username']) AND
isset($_POST['email']) AND
isset($_POST['pass1']) AND
isset($_POST['pass2'])){
//valorizziamo alcune variabili
$this->reg_username = trim($_POST['username']);
$this->reg_email = trim($_POST['email']);
$this->reg_pass = trim($_POST['pass1']);
$this->reg_confirm_pass = trim($_POST['pass2']);
// criptiamo la password
$this->reg_crypt_pass = $this->crypt_pass($this->reg_pass);
// eseguiamo la validazione degli input
$valid_input = $this->check_input_registrazione();
// se sono validi
if($valid_input===TRUE){
// inseriemo all'interno del database i dati
$this->query_insert_registrazione();
// settiamo il messaggio di successo della registrazione
$this->message_script = 10;
return TRUE;
}
}
return FALSE;
}

// verifica che gli input siano corretti
protected function check_input_registrazione(){
if($this->empty_string($this->reg_username)){
$this->message_script = 1;
return FALSE;
}
else if($this->empty_string($this->reg_email)){
$this->message_script = 2;
return FALSE;
}
else if($this->empty_string($this->reg_pass)){
$this->message_script = 3;
return FALSE;
}
else if($this->reg_pass != $this->reg_confirm_pass){
$this->message_script = 4;
return FALSE;
}
else if(!$this->is_username($this->reg_username)){
$this->message_script = 5;
return FALSE;
}
else if(!$this->is_email($this->reg_email)){
$this->message_script = 6;
return FALSE;
}
else if(!$this->is_secure_password($this->reg_pass)){
$this->message_script = 7;
return FALSE;
}
else if($this->isset_username($this->reg_username)==TRUE){
$this->message_script = 8;
return FALSE;
}
else if($this->isset_email($this->reg_email)==TRUE){
$this->message_script = 9;
return FALSE;
}
return TRUE;
}

// esecuzione della query insert di registrazione
protected function query_insert_registrazione(){
$query = "
INSERT INTO utentiregistrati
SET
username='".mysql_real_escape_string($this->reg_username)."',
password='".mysql_real_escape_string($this->reg_crypt_pass)."',
email='".mysql_real_escape_string($this->reg_email)."',
data_reg= NOW()";
$result = mysql_query($query) or die(mysql_error());
return mysql_insert_id();
}

/*******************
ESECUZIONE DEL LOGIN
********************/
public function esegui_login(){
// se il form di login e i sui tutti input sono stati inviati
if(isset($_POST['login']) AND isset($_POST['username']) AND isset($_POST['pass'])){
// valorizziamo delle variabili
$this->login_username = trim($_POST['username']);
$this->login_password = trim($_POST['pass']);
// criptiamo la password
$this->login_cryptpass = $this->crypt_pass($this->login_password);
// validiamo i dati (non devono essere vuoti)
$not_empty_input = $this->check_input_login();
// se la validazione è andata a buon fine
if($not_empty_input===TRUE){
// eseguiamo la query e verifichiamo se individua le credenziali
if($this->query_select_login()==TRUE){
// settiamo lo status di utente loggato
$this->set_logged($this->login_iduser);
// settiamo l'username
$this->set_username($this->login_username);
// settiamo il messaggio di successo del login
$this->message_script = 12;
return TRUE;
}
// se la query non ha trovat utenti con quelle credenziali
else{
// settiamo un messaggio di insuccesso dell'operazone
$this->message_script = 11;
}
}
}
return FALSE;
}

// verifica che gli input del login non siano vuoti
protected function check_input_login(){
if($this->empty_string($this->login_username)){
$this->message_script = 1;
return FALSE;
}
else if($this->empty_string($this->login_password)){
$this->message_script = 3;
return FALSE;
}
return TRUE;
}

// esecuzione della qeury per verificare il login
protected function query_select_login(){
$query = "
SELECT id FROM utentiregistrati
WHERE
username='".mysql_real_escape_string($this->login_username)."' AND
password='".mysql_real_escape_string($this->login_cryptpass)."'";
$result = mysql_query($query) or die(mysql_error());
// se individua l'utente
if(mysql_num_rows($result)==1){
$row = mysql_fetch_array($result);
$this->login_iduser = $row['id'];
return TRUE;
}
return FALSE;
}

/***********************************
VERIFICA DELLO STATO DI LOGIN UTENTE
***********************************/

// verifica login
public function is_logged(){
return isset($_SESSION['auth']);
}

// set login
protected function set_logged($id_user){
$_SESSION['auth'] = $id_user;
return;
}

// access denied
public function access_denied(){
if(!$this->is_logged()){
header("location: ".$this->Urls['login_page']."?message=14");
exit;
}
return;
}

protected function set_username($username){
$_SESSION['username_logged'] = $username;
return;
}

public function get_username(){
return isset($_SESSION['username_logged']) ? $_SESSION['username_logged'] : '';
}

// logout
public function logout(){
session_unset();
session_destroy();
setcookie(session_name(), '', time()-42000, '/');
header("location: ".$this->Urls['login_page']."?message=13");
return;
}

/*****************************
METODO PER OTTENERE I MESSAGGI
******************************/
public function get_message(){
if(isset($_GET['message'])){
$this->message_script = $_GET['message'];
}
$key = intval($this->message_script);
if(array_key_exists($key, $this->messages)){
return $this->messages[$key];
}
return FALSE;
}
}
?>

vi servono altre informazioni?

lasciate stare la disorganizzazione e le varie funzioni deprecate, sono niubbo e ignorante in materia ergo vorrei risolvere un problema alla volta e al momento sto impazzendo per capire perchè non mi invia i dati al database. Grazie mille a chi vorrà farmi da chioccia! Mi dispiace ma nei prossimi mesi romperò spesso le scatole....

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 69 ospiti