Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Problema di Login

  1. #1

    Problema di Login

    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

  2. #2
    Utente di HTML.it L'avatar di DjBart
    Registrato dal
    Jan 2009
    Messaggi
    346
    praticamente non trova il file user_manager.inc

    controlla che il percorso sia giusto

    a posto di require_once prova con include

  3. #3
    Ciao siccome non sono un esperto ti dico che ho installato EasyPhp 5 e cartella www

  4. #4
    Assicurati che i files:

    require_once('user_manager.inc');
    require_once('errors.inc');

    Siano tali. Generalmente in Windows li vedi user_manager.inc, però in realtà hanno estensione PHP

    Quindi devi alterare così
    require_once('user_manager.inc.php');
    require_once('errors.inc.php');

    Facci sapere.

  5. #5
    Ho provato a cambiare l'estensione in .php ma non ho risolto il mio problema,deve essere un problema di percorsi ma sinceramente non saprei quale e come risolverlo.....
    Warning: require_once(user_manager.inc.php) [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.php' (include_path='.;C:\php\pear') in C:\Program Files (x86)\EasyPHP-5.3.9\www\login\create_user.php on line 2

  6. #6
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, quando utilizzi
    require_once('user_manager.inc');
    ,senza specificare il percorso del file da includere, vuol dire che si trova nella stessa cartella dove la pagina che lo richiama si trova. E' veramente così?perchè se dovesse trovarsi in un'altra cartella devi specificare il path corretto.

  7. #7
    Utente di HTML.it L'avatar di DjBart
    Registrato dal
    Jan 2009
    Messaggi
    346
    L'estensione non è importante puoi mettere anche un estensione del tipo .gtyu basta che metti il percorso giusto ti apre tutto controlla il percorso

  8. #8
    Ok ma come faccio a sapere il percorso corretto io sinceramente non so dove mettere mano!!!
    Se qualcuno mi puoi spiegare come trovo questo file e come inserisco l'estensione corretta lo ringrazio infinitamente.

  9. #9
    Utente di HTML.it L'avatar di DjBart
    Registrato dal
    Jan 2009
    Messaggi
    346
    Allora iniziamo da questo , stai lavorando in locale ? o su un server ??

    Hai creato tu questo script o e un cms ?

  10. #10
    Lavoro in Locale

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.