Ho la seguente script preso da un libro eppure mi da un errore non riesco a capire cosa signichi
codice:
<?php
require_once('user_manager.inc');
require_once('errors.inc');
session_start();
//Verifica input utente
$uname=isset($_POST['username']) ? $_POST['username']: '';
$pw1=isset($_POST['password1']) ? $_POST['password1']: '';
$pw2=isset($_POST['password2']) ? $_POST['password2']: '';
$fname=isset($_POST['nome']) ? $_POST['nome']: '';
$email=isset($_POST['email']) ? $_POST['email']: '';
$year=isset($_POST['anno']) ? $_POST['year']: '';
$month=isset($_POST['month']) ? $_POST['month']: '';
$day=isset($_POST['day']) ? $_POST['day']: '';
//Verificare valori obbligatori
if ($uname=='' or $pw1=='' or $pw2=='' or $email=='')
{
throw new InvalidInputException();
}
//Verificare se i valori sono sensati
$usermgr=new UserManager();
$result=$usermgr->isValidUserName($uname);
if ($result !==True)
throw new InvalidInputException();
//Verifica che le password siano uguali
if($pw1!=$pw2)
throw new InvalidInputException();
// Verifica che la data sia sensata
if (!checkdate($month,$day,$year))
throw new InvalidInputException();
//Creare L'account
$usermgr->createAccount($uname,$pw1,$pw2,$fname,$email,$year,$month,$day);
//reindirezzare alla pagina utente;
header ('Location: form.php');
?>
<?php
require_once('dbconn.inc');
require_once('errors.inc');
class UserManager
{
function __construct()
{
//non si ha ancora l'inizializzazione
}
}
function isValidUserName($in_user_name)
{
if($in_user_name=='' or ereg('[:alnum:]_-]',$in_user_name)===TRUE)
return false;
else
return true;
}
function createAccount
(
$in_unname,
$in_pw,
$in_fname,
$in_email,
$in_year,
$in_month,
$in_day
)
{
//Convalida input utnete
if($in_pw=='' or $in_fname='' or !$this->isValidUserName($in_uname))
{
throw new InvalidArgumentExcepiton();
}
//stabilire connessione al db
$conn=$this->getConnection();
try
{
//Accertarsi che non esista il nome utente
$existes=False;
$existes=$this->userNameExists($in_uname, $in_conn);
if($existes===TRUE)
throw new UserAlreadyExistEception();
$uname=$this->super_escape_string($in_uname, $conn);
$fname=$this->super_escape_string($in_fname, $conn);
$email=$this->super_escape_string($in_email, $conn);
$pw=md5($in_pw);
$qstr=<<<E0QUERY
INSERT INTO USER
(user_name,password,full_name,user_email,birthdate)
VALUES ('$uname', '$pw', '$fname', $in_year-$in_month-$in_day)
E0QUERY;
// inserire un nuovo utente
$result=@$conn->query($qstr);
if($result===FALSE)
throw new DatabaseErrorException($conn->error);
//si vuole restituire l'Id utente appena creato
$user_id=$conn->insert_id;
}
catch (Excepiton $e)
{
if (isset ($conn))
$conn->close();
throw $e;
}
// esegue il cleanup e uscire
$conn->close();
return $user_id;
}
function getConnection()
{
$conn=new mysqli('localhost', 'root', 'mysql', 'login');
if(mysqli_connect_errno()!==0)
throw new DatabaseErrorException(mysqli_connect_error());
return $conn;
}
function super_escape_string($in_string,$in_conn,$in_removePct=False)
{
$str=$in_conn->real_escape_string($in_string);
if($in_removePct)
{
$str=ereg_replace('(%)',"\\\1", $str);
return $str;
}
}
function userNameExists ($in_uname, $in_db_conn=Null)
{
if ($in_name=='')
throw new InvalidArgumentException();
if($in_db_conn ===NULL)
$conn=$this->getConnection();
else
$conn=$in_db_conn;
try
{
$name=$this->super_escape_string($in_uname,$conn);
$qstr=<<<E0QUERY
SELECT user_name From Users_where user_name='$name'
E0QUERY;
$results=@$conn->query($qstr);
if($results===FALSE)
throw new DatabaseErrorExcption($conn->error);
$user_exists=false;
while (($row=@$results->fetch_assoc())!==NULL)
{
if($row['user_name']==$in_uname)
{
$user_exists=True;
break;
}
}
}
catch(Excetpion $e)
{
if ($in_db_conn===NULL and isset($conn))
$conn->close();
throw $e;
}
$results->close();
if($in_db_conn==NULL)
$conn->close();
return $user_exists;
}
mi genera i seguenti errori
Warning: require_once(user_manager.inc) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files (x86)\EasyPHP-5.3.9\www\login\create_user.php on line 2
Fatal error: require_once() [function.require]: Failed opening required 'user_manager.inc' (include_path='.;C:\php\pear') in C:\Program Files (x86)\EasyPHP-5.3.9\www\login\create_user.php on line 2
premetto che uso db mysql