PDA

Visualizza versione completa : Perchè questo ERRORE??


ravint
25-01-2003, 18.36.18
Ho bisogno del vostro aiuto per risolvere questo piccolo ma al quanto noioso problemino:
ho questo script che permette di sostituire l'email in un Db mysql, tramite un form.... tuttavia nonostante scrivo correttamente l'email mi da errore di campi non compilati, credo di averle provate tutte ma sicuramente mi sfugge qualcosa..... questi sono gli script, sono esattamente 3 pagine, uno che controlla tutto il sistema, uno di richiamo e controllo e uno il form che non ha codice php ma semplicemente nelle caselle da compilare sono chiamate "email" "emailb":

file di richiamo:

<?php
require("backend.php");
$login_check = $authlib->is_logged();
if (!$login_check) {
include("html/nologin.html");
exit;
}
if (!$email || !$emailb) {
include("html/chemail.html");
}
else {
$chemail = $authlib->chemail($login_check[1], $email, $emailb);
if ($chemail != 1) {
include("html/chemail_error.html");
}
else {
include("html/chemail_done.html");
}
}
?>


file di sistema e di controllo:

function chemail ($id, $email, $emailb) {
if ($email != $emailb) {
return $this->error[14];
}
else {
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->server, $this->db_user, $this->db_pass);
mysql_select_db($this->database);
$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 $name, hai
richiesto il cambio dell'email \n
nel database. Stiamo accertando la validita' della email\n
clicca qui per la conferma:
confirm_email.php?hash&id=$id&email=$email
\n Grazie!
Customer Service");
return 2;
}
}


tra le parentesi quadre del tipo [14] servono per richiamare una serire di diciture di errore da un elenco messo a fine script.

La cosa strana e che per cambiare la pw c'e' lo stesso metodo e funziona corettamente mentre per l'email mi da errore di campo vuoto dal form.....

spero di essermi spiegato bene nel caso chiedete lumi oppure andate qui nella demo inserendo le pw admin - 15963 cliccandio poi sul logo "clicca qui" per cambiare i dati:
http://www.termoacqua.it/members_area/index.html

ciao
Massimo
***************