Problema nel collegarmi al database (era "Problemi con script")
ho inserito le tabelle nel mio database ed ho provato ad effettuare la regitrazione sul mio sito. Purtroppo mi da errore di connessione al server ma i dati mi sembra di averli messi giusti!! Devo fare qualcosa nel database ho devo cercare altrove l'errore?
re:problemi script connessione mysql
ti posto il file php per la connessione e la registrazione dati in 2 messaggi
parte 1
Codice PHP:
<?
class authlib {
var $db_host = "localhost";
var $db_user = "nohow82";
var $db_pass = "++++++++++";
var $db_name = "my_nohow82";
function register ($username, $password, $password2, $name, $email, $citta, $professione, $telefono) {
if (!$username || !$password || !$password2 || !$name || !$email || !$citta || !$professione || !$telefono) {
return $this->error[14];
}
else {
if (!eregi("^[a-z ]+$", $name)) {
return $this->error[8];
}
if (!eregi("^([a-z0-9]+)([._-]([a-z0-9]+))*[@]([a-z0-9]+)([._-]([a-z0-9]+))*[.]([a-z0-9]){2}([a-z0-9])?$", $email)) {
return $this->error[4];
}
if (!eregi("^[a-z]+$", $citta)) {
return $this->error[10];
}
if ($professione != "Studente" && $professione != "Artigiano" && $professione != "Operaio" && $professione != "Impiegato"
&& $professione != "Quadro" && $professione != "Funzionario" && $professione != "Dirigente" && $professione != "Pensionato"
&& $professione != "Insegnante" && $professione != "Magistrato" && $professione != "Medico/dentista" && $professione != "Notaio/avvocato" && $professione != "Architetto/ingegnere"
&& $professione != "Consulente" && $professione != "Giornalista" && $professione != "Artista" && $professione != "Sportivo"
&& $professione != "Veterinario" && $professione != "Geometra" && $professione != "Agente di cambio" && $professione
!= "Agente assicurativo" && $professione != "Consulente finanziario" && $professione != "Militare" &&
$professione != "Casalinga" && $professione != "Tecnico installatore" && $professione != "Manutetore Navale" && $professione != "Altro") {
return $this->error[11];
}
if (!eregi("^[a-z0-9 ]+$", $telefono)) {
return $this->error[9];
}
if (strlen($username) < 3) {
return $this->error[1];
}
if (strlen($username) > 20) {
return $this->error[2];
}
if (!ereg("^[[:alnum:]_-]+$", $username)) {
return $this->error[3];
}
if ($password != $password2) {
return $this->error[0];
}
if (strlen($password) < 3) {
return $this->error[5];
}
if (strlen($password) > 20) {
return $this->error[6];
}
if (!ereg("^[[:alnum:]_-]+$", $password)) {
return $this->error[7];
}
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("select id from authlib_login where username = '$username'");
$result = mysql_num_rows($query);
if ($result > 0) {
mysql_close();
return $this->error[12];
}
$query = mysql_query("select id from authlib_data where email = '$email'");
$result = mysql_num_rows($query);
if ($result > 0) {
mysql_close();
return $this->error[13];
}
$hash = md5($this->secret.$username);
$is_success = mysql_query("insert into authlib_confirm values ('$hash', '$username', '$password', '$name', '$email', '$citta', '$professione', '$telefono', now())");
mysql_close();
if (!$is_success) {
return $this->error[16];
}
mail($email, "Member Hai voglia di scrivere", "Grazie $name, per esserti registrato al sito nohow82.altervista.org.\nQuesti sono i dati che hai inserito :\n
Name: $name
Email: $email
Città: $citta
Professione: $professione
Telefono: $telefono
Username: $username
Password: $password\n
Per confermare la tua registrazione clicca sul link qui di seguito \n
http://nohow82.altervista.org/confirm.php?hash=$hash&username=$username\n
Se non sei interessato alla registrazione, cancella questa mail senza confermare.\n
Assistenza utenti Hai voglia di scrivere", "From: Lo staff Hai voglia di scrivere");
return 2;
}
}
function login ($username, $password) {
if (!$username || !$password) {
return $this->error[14];
}
else {
if (!eregi("^[[:alnum:]_-]+$", $username)) {
return $this->error[3];
}
if (!eregi("^[[:alnum:]_-]+$", $password)) {
return $this->error[7];
}
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("select id from authlib_login where username = '$username' and password = '$password'");
$result = mysql_num_rows($query);
mysql_close();
if ($result < 1) {
return false;
}
else {
list ($id) = mysql_fetch_row($query);
$hash = md5($username.$this->secret);
setcookie("hello", "$username:$hash:$id", time()+3600);
return 2;
}
}
}
function is_logged () {
global $hello;
$session_vars = explode(":", $hello);
$hash = md5($session_vars[0].$this->secret);
if ($hash != $session_vars[1]) {
return false;
}
else {
return array($session_vars[0], $session_vars[2]);
}
}
function logout () {
setcookie("hello");
header("Location: $this->logout_url");
}
function edit_retrieve ($id) {
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("select * from authlib_data where id = '$id'");
mysql_close();
list ($id, $name, $email, $citta, $professione, $telefono) = mysql_fetch_row($query);
return array($name, $citta, $professione, $telefono, $email);
}
function edit ($id, $name, $citta, $professione, $telefono) {
if (!$name || !$citta || !$professione || !$telefono) {
return $this->error[14];
}
else {
if (!eregi("^[a-z ]+$", $name)) {
return $this->error[8];
}
if (!eregi("^[a-z0-9 ]+$", $telefono)) {
return $this->error[9];
}
if (!eregi("^[a-z ]+$", $citta)) {
return $this->error[10];
}
if ($professione != "Studente" && $professione != "Artigiano" && $professione != "Operaio" && $professione != "Impiegato"
&& $professione != "Quadro" && $professione != "Funzionario" && $professione != "Dirigente" && $professione != "Pensionato"
&& $professione != "Insegnante" && $professione != "Magistrato" && $professione != "Medico/dentista" && $professione != "Notaio/avvocato" && $professione != "Architetto/ingegnere"
&& $professione != "Consulente" && $professione != "Giornalista" && $professione != "Artista" && $professione != "Sportivo"
&& $professione != "Veterinario" && $professione != "Geometra" && $professione != "Agente di cambio" && $professione
!= "Agente assicurativo" && $professione != "Consulente finanziario" && $professione != "Militare" &&
$professione != "Casalinga" && $professione != "Tecnico installatore" && $professione != "Manutetore Navale" && $professione != "Altro") {
return $this->error[11];
}
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("update authlib_data set name = '$name', citta = '$citta', professione = '$professione', telefono = '$telefono' where id = '$id'");
mysql_close();
if (!$query) {
$this->error[20];
}
return 2;
}
}
function confirm ($hash, $username) {
if (!$hash || !$username) {
return $this->error[14];
}
re:problemi script connessione mysql
parte 2
Codice PHP:
else {
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("select * from authlib_confirm where mdhash = '$hash' AND username = '$username'");
$result = mysql_num_rows($query);
if ($result < 1) {
mysql_close();
return $this->error[15];
}
list($hd,$username,$password,$name,$email,$citta,$professione,$telefono) = mysql_fetch_row($query);
$is_success_first = mysql_query("insert into authlib_login (username, password) values ('$username', '$password')");
if ($is_success_first) {
$is_success_second = mysql_query("insert into authlib_data (name, email, citta, professione, telefono) values ('$name', '$email', '$citta', '$professione', '$telefono')");
if ($is_success_second) {
$is_success_third = mysql_query("delete from authlib_confirm where username = '$username'");
}
}
mysql_close();
if (!$is_success_first) {
return $this->error[16];
}
if (!$is_success_second) {
@mail($email, "Errore in Member Area", "Attenzione, $name, non e' stato possibile inserire i dati al data base \n
a causa di un errore interno o di inserimento dati. Accedi al tuo account per rimuoverlo e \n
ripeti la registrazione.", "From: Lo staff Hai voglia di scrivere");
return $this->error[17];
}
if (!$is_success_third) {
@mail($this->webmaster, "Attenzione!!!", "Controlla i tuoi dati $name, c'e' stato un problema di inserimento
dei dati, ricontrolla ed eventualmente riprova l'operazione.", "From: Lo staff Hai voglia di scrivere");
return 2;
}
@mail($email, "Conferma Registrazione", "Grazie, $name per esserti registrato a nohow82.altervista.org.\n Questi sono i tuoi dati:\n
Name: $name
Email: $email
Città: $citta
Professione: $professione
Telefono: $telefono
Username: $username
Password: $password\n
Grazie per esserti registrato.\n
Assistenza Utenti Hai voglia di scrivere", "From: Lo staff Hai voglia di scrivere");
return 2;
}
}
function conf_flush () {
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("delete from authlib_confirm where date_add(date, interval 2 day) < now()");
mysql_close();
if (!$query) {
return $this->error[18];
}
return 2;
}
function lostpwd ($email) {
if (!$email) {
return $this->error[14];
}
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("select authlib_login.password, authlib_login.username from authlib_login, authlib_data where authlib_data.email = '$email' and authlib_login.id = authlib_data.id");
$result = mysql_num_rows($query);
mysql_close();
if ($result < 1) {
return $this->error[19];
}
list($password, $username) = mysql_fetch_row($query);
@mail($email, "Recupero dati member Hai voglia di scrivere", "Gentile $name,\nquesti sono i tuoi dati di accesso:\n
\nUsername: $username
\nPassword: $password
\n Conserva questi dati in un posto sicuro per una prossima consultazione\n
Cordialmente\n
Assistenza Utenti hai voglia di scrivere", "From: Lo staff Hai voglia di scrivere");
return 2;
}
function chemail ($id, $email, $email2) {
if (!eregi("^([a-z0-9]+)([._-]([a-z0-9]+))*[@]([a-z0-9]+)([._-]([a-z0-9]+))*[.]([a-z0-9]){2}([a-z0-9])?$", $email)) {
return $this->error[4];
}
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("select id from authlib_data where email = '$email'");
$result = mysql_num_rows($query);
if ($result > 0) {
list($id_from_db) = mysql_fetch_row($query);
if ($id_from_db != $id) {
mysql_close();
return $this->error[13];
}
return $this->error[23];
}
$mdhash = md5($id.$email.$this->secret);
$query = mysql_query("insert into authlib_confirm_email values ('$id', '$email', '$mdhash', now())");
if (!$query) {
mysql_close();
$this->error[20];
}
@mail($email, "Member Area, Cambio email", "Gentile Member, hai richiesto il cambio dell'email nel database.
Stiamo accertando la validita' della email\n
clicca qui per la conferma: http://nohow82.altervista.org/confirm_email.php?mdhash=$mdhash&id=$id&email=$email
\n Grazie!
Assistenza Utenti Hai voglia di scrivere");
return 2;
}
function confirm_email($id, $email, $mdhash) {
if (!$id || !$email || !$mdhash) {
return $this->error[14];
}
else {
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("select * from authlib_confirm_email where id = '$id' AND email = '$email' AND mdhash = '$mdhash'");
$result = mysql_num_rows($query);
if ($result < 1) {
mysql_close();
return $this->error[15];
}
$update = mysql_query("update authlib_data set email = '$email' where id = '$id'");
$delete = mysql_query("delete from authlib_confirm_email where email = '$email'");
mysql_close();
return 2;
}
}
function email_flush () {
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("delete from authlib_confirm_email where date_add(date, interval 2 day) < now()");
mysql_close();
if (!$query) {
return $this->error[18];
}
return 2;
}
function chpass ($id, $password, $password2) {
if ($password != $password2) {
return $this->error[0];
}
else {
if (strlen($password) < 5) {
return $this->error[5];
}
if (strlen($password) > 20) {
return $this->error[6];
}
if (!ereg("^[[:alnum:]_-]+$", $password)) {
return $this->error[7];
}
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("update authlib_login set password = '$password' where id = '$id'");
mysql_close();
if (!$query) {
return $this->error[21];
}
return 2;
}
}
function delete($id) {
mysql_connect($this->db_host, $this->db_user, $this->db_pass);
mysql_select_db($this->db_name);
$query = mysql_query("delete from authlib_login where id = '$id'");
$query = mysql_query("delete from authlib_data where id = '$id'");
mysql_close();
return 2;
}
var $error = array
(
"Le Passwords non sono uguali", //0
"Username non valido. inserisci almeno 3 caratteri.", //1
"Username non valido. inserisci non oltre 11 caratteri.", //2
"Username con caratteri non validi.", //3
"Email non valida.", //4
"Password non valido. inserisci almeno 3 caratteri.", //5
"Password non valido. inserisci non oltre 11 caratteri.", //6
"Password con caratteri non validi.", //7
"Nome con caratteri non validi.", //8
"Telefono con caratteri non validi.", //9
"Citta' con caratteri non validi.", //10
"Professione opzione obligatoria.", //11
"Username gia' esistente nel database.", //12
"Username ed email gia' esistente.", //13
"Alcuni campi sono stati lasciati vuoti.", //14
"Combinazione ID e Username non corretta, o member cancellato.", //15
"Connessione al Database fallita, riprova piu' tardi.", //16
"Le tue info sono state inserite, ma c'e' stato un errore temporaneo, clicca qui <a href=\"index.html\">login</a> e rimuovi il tuo account e ripeti la registrazione.", //17
"La registrazione non e' andata a buon fine, ripetere.", //18
"La username non corrisponde all'email.", //19
"Non e' stata possibile aggiornare i tuoi dati per un errore interno al database.", //20
"Non e' stata possibile aggiornare la tua password per un errore interno al database.", //21
"L'email non esiste.", //22
"L'email che hai inserito e' uguale a quella gia' nel database, non e' stato eseguito alcun aggiornamento." //23
);
var $logout_url = "index.html";
}
$authlib = new authlib;
?>