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

Discussione: Controller CakePHP

  1. #1

    Controller CakePHP

    Buongiorno a tutti!
    Ho un problema con un'applicazione basata su CakePHP.
    Ho definito un controller (UsersController) contentente un metodo index() per richiamare la pagina di indice. Questa pagina viene poi richiamata all'interno di altri due metodi usando questo comando:
    Codice PHP:
    $this->redirect("/users/index"); 
    Quando faccio accesso diretto alla pagina, me la visualizza correttamente, ma quando ci accedo attraverso altre pagine e in particolare usando il comando sopra esposto ricevo questo errore:
    codice:
    Notice: Undefined index: User in /var/www/test/app/controllers/users_controller.php on line 59
    Ovviamente alla linea 59 c'è tutt'altro...
    Windows 7 x64 + Ubuntu Linux 10.10 (Default)
    In principio era il C...
    C/C++ & C# & JavaSE/EE Developer

  2. #2

  3. #3
    Attorno alla riga 59 c'è tutt'altra funzione...
    Codice PHP:
     /**
      * 
      */
    function login()
    {
        
    $this->set("error"false);
             
        if (
    $this->data)
        {
            
    $results $this->User->findByUsername($this->data["User"]["username"]);
                 
            if (
    $results && $results["User"]["password"] == md5($this->data["User"]["password"]))
            {
                
    $this->Session->write("user"$this->data["User"]["username"]);
                
    $this->Session->write("last_login"$results["User"]["last_login"]);
                     
                
    $results["User"]["last_login"] = date("Y-m-d H:i:s");
                
    $this->User->save($results);
                     
                
    $this->redirect("/users/index");
            }
            else
            {
                
    $this->set("error"true);
            }
        }

    Sto provando a fare questi tutorial...
    CakePHP Tutorial 1 from IBM
    CakePHP Tutorial 2 from IBM
    Windows 7 x64 + Ubuntu Linux 10.10 (Default)
    In principio era il C...
    C/C++ & C# & JavaSE/EE Developer

  4. #4
    Intorno = In matematica, in partic. in topologia, è detto intorno un sottoinsieme associato a un punto dello spazio (astratto) che gode di certe proprietà le quali corrispondono all'idea intuitiva di “vicinanza”; a seconda delle proprietà, lo spazio stesso viene a coincidere con l'uno o l'altro tipo di spazio topologico.

    Postare un intorno = postare un estratto del codice comprendente un numero significativo di righe prima e dopo il codice in oggetto.

    Puoi postare un intorno della riga 59?

  5. #5
    Originariamente inviato da filippo.toso
    Intorno = In matematica, in partic. in topologia, è detto intorno un sottoinsieme associato a un punto dello spazio (astratto) che gode di certe proprietà le quali corrispondono all'idea intuitiva di “vicinanza”; a seconda delle proprietà, lo spazio stesso viene a coincidere con l'uno o l'altro tipo di spazio topologico.

    Postare un intorno = postare un estratto del codice comprendente un numero significativo di righe prima e dopo il codice in oggetto.
    Non ho bisogno della definizione di intorno... la riga 59 è la decima del codice.
    Per precauzione estendo il concetto di "intorno" all'intero dominio del file...
    Codice PHP:
    <?php
    /*
     * Created on 13/gen/08
     *
     * To change the template for this generated file go to
     * Window - Preferences - PHPeclipse - PHP - Code Templates
     */
     
     
    class UsersController extends AppController
     
    {
         
    /**
          * 
          */
         
    function register()
         {
             
    $this->set("username_error""Username must be between 6 and 40 characters.");
             
             if (!empty(
    $this->data))
             {
                 if (
    $this->User->validates($this->data))
                 {
                     if (
    $this->User->findByUsername($this->data["User"]["username"]))
                     {
                         
    $this->User->invalidate("username");
                         
    $this->set("username_error""User already exists.");
                     }
                     else
                     {
                        
    $this->data["User"]["password"] = md5($this->data["User"]["password"]);
                        
    $this->User->save($this->data);
                        
    $this->Session->write("user"$this->data["User"]["username"]);
                         
    $this->redirect("/users/index");                     
                     }
                 }
                 else
                 {
                     
    $this->validateErrors($this->User);
                 }
             }
         }
         
         
    /**
          * 
          */
         
    function knownusers()
         {
             
    $this->set("knownusers"$this->User->findAll(null, array("id""username""first_name""last_name""last_login"), "id desc"));
         }
         
         
    /**
          * 
          */
         
    function login()
         {
             
    $this->set("error"false);
             
             if (
    $this->data)
             {
                 
    $results $this->User->findByUsername($this->data["User"]["username"]);
                 
                 if (
    $results && $results["User"]["password"] == md5($this->data["User"]["password"]))
                 {
                     
    $this->Session->write("user"$this->data["User"]["username"]);
                     
    $this->Session->write("last_login"$results["User"]["last_login"]);
                     
                     
    $results["User"]["last_login"] = date("Y-m-d H:i:s");
                     
    $this->User->save($results);
                     
                     
    $this->redirect("/users/index");
                 }
                 else
                 {
                     
    $this->set("error"true);
                 }
             }
         }
         
         
    /**
          * 
          */
         
    function logout()
         {
             
    $this->Session->delete("user");
             
    $this->redirect("/users/login");
         }
         
         
    /**
          * 
          */
         
    function index()
         {
             
    $username $this->Session->read("user");
             
             if (
    $username)
             {
                 
    $results $this->User->findByUsername($username);
                 
    $this->set("User"$results["User"]);
                 
    $this->set("last_login"$this->Session->read("last_login"));
             }
             else
             {
                 
    $this->redirect("/users/login");
             }
         }
     }
     
    ?>
    Windows 7 x64 + Ubuntu Linux 10.10 (Default)
    In principio era il C...
    C/C++ & C# & JavaSE/EE Developer

  6. #6
    Alla riga 58 inserisci:

    Codice PHP:
    print_r($this->data);
    die(); 
    e posta il risultato del comando.

  7. #7
    E' corretto...
    codice:
    Array ( [User] => Array ( [username] => ospite [password] => ospite ) )
    Windows 7 x64 + Ubuntu Linux 10.10 (Default)
    In principio era il C...
    C/C++ & C# & JavaSE/EE Developer

  8. #8
    Il problema è che hai scritto $this->data["User"] e non $this->data["Users"] (con la S finale) nella chiamata findByUsername().

  9. #9
    Ovviamente intendevo "Il problema è che non hai scritto $this->data["User"] ma $this->data["Users"] (con la S finale) nella chiamata findByUsername()."

  10. #10
    Originariamente inviato da filippo.toso
    Ovviamente intendevo "Il problema è che non hai scritto $this->data["User"] ma $this->data["Users"] (con la S finale) nella chiamata findByUsername()."
    Ho scritto quello che c'era sul post di poco fa...
    Codice PHP:
    $results $this->User->findByUsername($this->data["User"]["username"]); 
    Comunque ho risolto semplicemente reinstallando il pacchetto di PHP...
    Windows 7 x64 + Ubuntu Linux 10.10 (Default)
    In principio era il C...
    C/C++ & C# & JavaSE/EE Developer

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.