IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

Exemple d'identification


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 89
    Par défaut Exemple d'identification
    Bonsoir !
    je débute avec zend framework et je trouve des problèmes avec mon petit exemple : je commence par une simple page d'authentification : index.php
    j'utilise un controlleur IndexController.php, une vue index.phtml et un modèle formlogin.php, dans la page d'index , l'utilisateur doit taper son cin et son mot de passe , si ça marche, il sera redirigé vers la page espaceetudiant.phtml que j'ai deja crée avec une action espaceetudiantAction qui permet d'afficher un simple message
    mais en exécutant, j'ai toujours le message d'erreur qui apparait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Not Found
     
    The requested URL /monapplizend/public/index/espaceetudiant was not found on this server.
    alors voici mon code si vous voulez bien m'aider
    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?php
    // politique traitement des erreurs 
    error_reporting(E_ALL|E_STRICT);
    ini_set('display_errors', 'on');
    // mise en place des répertoires et chargement des classes
    ini_set('include_path' , ini_get('include_path'). ':../library');
    ini_set('include_path' , ini_get('include_path'). ':../application/models');
    set_include_path('.' . PATH_SEPARATOR . '../library' . PATH_SEPARATOR . '../application/models' . PATH_SEPARATOR . get_include_path());
    include "Zend/Loader.php";
    include "Zend/Layout.php";
    include "Zend/Config.php";
    // Chargement de la configuration
      Zend_Loader::loadClass("Zend_Config_Ini");
     Zend_Loader::loadClass("Zend_Registry");
     Zend_Loader::registerAutoload();
    $config = new Zend_Config_Ini('../config.ini', 'general');
    $registry = Zend_Registry::getInstance();
    $registry->set('config', $config);
    // Mise en place du Factory 
    Zend_Loader::loadClass("Zend_DB"); 
    $db = Zend_Db::factory($config->db);
    //mise en place du Zend_Db_Table
    Zend_Loader::loadClass("Zend_Db_Table"); 
    Zend_Db_Table::setDefaultAdapter($db);
    Zend_Loader::loadClass ('Zend_Controller_Front');
    // setup controller
    $front = Zend_Controller_Front::getInstance();
    $front->throwExceptions(true);
    $front->setControllerDirectory('../Application/Controllers');
    Zend_Layout::startMvc(array('layoutPath'=>'../application/layouts'));
    // executer !
    $front->dispatch();
    ?>
    IndexController.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    <?php
    session_start();
    class IndexController extends Zend_Controller_Action
    { public $db = null;
     public  $cin=null ;
                          function init ()
                          {Zend_Loader::loadClass('Zend_Db_Table');
                          Zend_Loader::loadClass('Zend_Db_Statement_PDO');
                          Zend_Loader::loadClass('Formlogin');
                            //Zend_Loader::loadClass('admin');
                           // Zend_Loader::loadClass('salle');
                          // Zend_Loader::loadClass('FullModel');
                          Zend_Loader::loadClass('Zend_Session_Namespace');
                          }
     
     
          function indexAction()
         {
         $this->view->title = "Passage d'authentification";
         $form = new Formlogin();
         $this->view->form = $form ;
        if ($this->_request->isPost())
    	 {
                $formData = $this->_request->getPost();
                if ($form->isValid($formData))
    			 {               
                    //$etudiant=new etudiant();
                    $cin = $form->getValue('login');
                    $passe = $form->getValue('passe');     
                   $config = new Zend_Config_Ini('../config.ini', 'general');
    $registry = Zend_Registry::getInstance();
    $registry->set('config', $config);
    // Mise en place du Factory
    Zend_Loader::loadClass("Zend_DB");
    $db = Zend_Db::factory($config->db);
                  $resulte = $db->query("SELECT * FROM etudiant WHERE cin='$cin'and passe='$passe'");
     
      $rowse=$resulte->rowCount();
     
                                if ($rowse==1)
                  {
                     $_SESSION['login']=$cin;
                     $_SESSION['type']="etudiant";
    	             $this->_redirect('index/espaceetudiant');
                  }
     
          } else {
                    $form->populate($formData);
                }
    }
    }
    function espaceetudiantAction()
    {
    $this->view->affichage = "Bonjour étudiant , ça marche ";
    }
    }
    ?>
    formlogin.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    <?php
    Zend_Loader::loadClass("Zend_Form");
     
     
    class Formlogin extends Zend_Form {
     
     
    public function __construct($options = null)
        {
            Zend_Loader::loadClass("Zend_Form_Element_Hidden");
            Zend_Loader::loadClass("Zend_Form_Element_Text");
            Zend_Loader::loadClass("Zend_Form_Element_Submit");
            Zend_Loader::loadClass("Zend_Form_Element_Password");
            parent::__construct($options);
            $this->setName('mon formulaire');
            //$this->setAction('index/check');
     
     
            $login = new Zend_Form_Element_Text('login');
            $login->setLabel('Login:')
    		->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty');
     
            $passe = new Zend_Form_Element_Password ('passe');
            $passe->setLabel('Password:')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty');
     
            $submit = new Zend_Form_Element_Submit('Valider');
     
            //$submit->setAttrib('numEtud', 'submitbutton');
            $this->addElements(array($login,$passe,$submit));
        }
    }
    ?>
    espaceetudiant.phtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <html>
    <head>
    </head>
    <body>
    <p> <?php echo $this->affichage;?> </p>
    </body>
    </html>
    merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 89
    Par défaut
    pas de proposition ?

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 178
    Par défaut
    Hello,

    Tu as un message de ton serveur web qui te dit qui ne trouve pas l'url que tu lui demandes.
    Sais-tu que tu as besoin que la réécriture d'url soit active sur ton serveur et qu'il faut lui donner des directives pour que l'url demandée déclenche l'exécution de ZF ?

    http://framework.zend.com/manual/fr/...roduction.html

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 89
    Par défaut
    bonjour !
    c a d ? j'ai pas compris

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 89
    Par défaut
    voici mon fichier .htaccess
    y 'a t'il quelque chose qui manque?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Options +FollowSymlinks
    #activation la réécriture d'URL
     
    	RewriteEngine On
     
    	##CONDITIONS##
     
    	#si fichier non vide
    	RewriteCond %{REQUEST_FILENAME} -s [OR]
    	#si lien symbolique
    	RewriteCond %{REQUEST_FILENAME} -l [OR]
    	#si répertoire
    	RewriteCond %{REQUEST_FILENAME} -d
     
         ##REECRITURE##
     
    	RewriteRule ^.*$ - [NC,L]
    	RewriteRule ^.*$ index.php [NC,L]
     
    	##CONFIGURATION PHP##
     
    	#PAS d'échappement des caractères spéciaux des chaînes
     
    	php_flag magic_quotes_gpc off
     
    	#variables EGPCS non globales
    	php_flag register_globals off
     
    	#balises courtes d'ouverture de PHP (<? <?= )
    	php_flag short_open_tag on

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 178
    Par défaut
    Ok, c'était juste pour savoir parce que pour l'instant c'est apache qui semble te dire qu'il ne fait pas le rapport entre l'url et ton index.php

    Qu'est-ce que ça dit quand tu demandes /monapplizend/public ?

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Citation Envoyé par élève_ingénieur Voir le message
    voici mon fichier .htaccess
    y 'a t'il quelque chose qui manque?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Options +FollowSymlinks
    #activation la réécriture d'URL
     
    	RewriteEngine On
     
    	##CONDITIONS##
     
    	#si fichier non vide
    	RewriteCond %{REQUEST_FILENAME} -s [OR]
    	#si lien symbolique
    	RewriteCond %{REQUEST_FILENAME} -l [OR]
    	#si répertoire
    	RewriteCond %{REQUEST_FILENAME} -d
     
         ##REECRITURE##
     
    	RewriteRule ^.*$ - [NC,L]
    	RewriteRule ^.*$ index.php [NC,L]
     
    	##CONFIGURATION PHP##
     
    	#PAS d'échappement des caractères spéciaux des chaînes
     
    	php_flag magic_quotes_gpc off
     
    	#variables EGPCS non globales
    	php_flag register_globals off
     
    	#balises courtes d'ouverture de PHP (<? <?= )
    	php_flag short_open_tag on

    Comme le dit @patbator as-tu dans Apache activer le mod_rewrite et relancer Apache ?

Discussions similaires

  1. identification lettre (pb accent)
    Par scorbo dans le forum C
    Réponses: 5
    Dernier message: 14/12/2002, 02h59
  2. Checrche Exemple d'application C++ Builder - MySQL
    Par pcatric dans le forum C++Builder
    Réponses: 12
    Dernier message: 11/11/2002, 23h51
  3. [VB6] Lancer un service, par exemple Sql Server
    Par fea dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/10/2002, 14h07
  4. recherche exemple simple pour corba en c++
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 06/05/2002, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo