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

PHP & Base de données Discussion :

Fonctionnalités appli non fonctionnelles php


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    alternant Dev Web&Mobile
    Inscrit en
    Novembre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : alternant Dev Web&Mobile
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2022
    Messages : 2
    Par défaut Fonctionnalités appli non fonctionnelles php
    Bonjour,

    Je suis alternant développeur en BTS SIO SLAM 2e année et suis en charge des applications utilisées sur l'intranet.
    Je rencontre un problème avec une application qui permet aux utilisateurs d'effectuer des demandes de couchages suivants des dates données ainsi que des demandes diverses concernant des changements d'horaires ou autre. L'application a été développé par un précédent alternant limitant la documentation technique.
    Les infos utilisateurs sont stockées dans une base de donnée et les applis sont hébergés un serveur Ubuntu 20.04, apache2 noyau linux 5.4.

    J'ai une page qui regroupe (liste) tous les utilisateurs.
    Il y a 3 niveaux dans l'appli :
    - ADC (user lambda)
    - GM (peut gérer les ADC faisant partie de son affectation, un ADMIN avec moins de portée)
    - ADMIN(gère tous les users tant dans leurs infos, leurs affectation, suppression etc ...)
    Sur cette même page se trouve un bouton menant à un formulaire permettant à l'ADMIN et GM d'ajouter des utilisateurs selon plusieurs critères (cp ,nom, prenom, affectation, cp_dpx et autre). //cp_dpx = cp_GM ou ADMIN en charge de cet agent.
    Lorsque le formulaire est validé un mdp est généré.
    Il m'est simplement impossible d'ajouter un utilisateur.

    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
     
    case 'ajouter':
    // Si est le formulaire d'ajout est envoyé
    if (isset($_POST['form_submit'])) {
    //Instanciation d'un objet de la classe Utilisateur
    $nouvel_utilisateur = new Utilisateur();
    // On génère le mot de passe
    $mot_de_passe = genererMDP(8);
    //Renseignement de certaines propriétés
    list($_POST['mot_de_passe'], $_POST['notification_dpx']) = array(sha1($mot_de_passe), 0);
    //On sérialise l'objet à partir du tableau _POST
    $nouvel_utilisateur->serialise($_POST);
    //On ajoute l'utilisateur
    $nouvel_utilisateur->ajouter();
    $_SESSION['SHOW_MESSAGE'] = array('type' => 'success', 'message' => 'L\'utilisateur à été ajouté avec
    succès. (mdp = '.$mot_de_passe.').');
    Donc lorsque je valide le formulaire, le mdp est bien généré dans une pop-up. De base c'est un mdp aléatoire que l'utilisateur doit changer lors de sa première connexion.

    Lorsque je regarde les logs du serveurs (via putty):
    sudo tail /var/log/apache2/error.log -n 40

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Invalid argument supplied for foreach() in /var/www/caddi/views/admin/v_ajouter_un_utilisateur.php on line 58, referer: http://******/caddi/index.php?tab=gestion%20des%20utilisateurs&action=ajouter
    Undefined variable: liste_affectations in /var/www/caddi/views/admin/v_ajouter_un_utilisateur.php on line 58, referer: http://*****/caddi/index.php?tab=gestion%20des%20utilisateurs&action=ajouter
    Invalid argument supplied for foreach() in /var/www/caddi/views/admin/v_modifier_un_utilisateur.php on line 63, referer: http://****/caddi/index.php?tab=gestion%20des%20utilisateurs&action=modifier&id=8704597U
    De ce fait je suis allé voir les lignes correspondante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    v_ajouter_un_utilisateur.php
    <?php foreach ($liste_affectations as $key => $value) : ?> // ligne 58
    <option value="<?php echo $value['id_affectation']; ?>"><?php echo $value['uo'].' - '.$value['residence']; ?></option>
    <?php endforeach; ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    v_modifier_utilisateur.php
    <?php foreach ($liste_affectations as $key => $value) : ?> //ligne 63
    <?php if ($utilisateur->getId_affectation() == $value['id_affectation']) : ?>
    <option value="<?php echo $value['id_affectation']; ?>" selected ><?php echo $value['uo'].' - '.$value['residence']; ?>
    </option>
    <?php else : ?>
    <option value="<?php echo $value['id_affectation']; ?>"><?php echo $value['uo'].' - '.$value['residence']; ?></option>
    <?php endif; ?>
    <?php endforeach; ?>
    L'admin et le GM ne peuvent également pas modifier le cp d'un utilisateur (donc son id qui lui est donnée à son embauche) mais toutes les autres infos (nom, prénom, cp_dpx) => 0 problème.

    Voici la fonction pour ajouter un Utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //Méthode pour ajouter une entrée à la table utilisateur
    public function ajouter() {
    $BDD = new Memory();
    return $BDD->insert('utilisateur', utf8_desarray($this->unserialise()));
    }
    Personnellement je ne vois rien de choquant qui me pousserait à effectuer des changements.
    Lorsque j'effectue des recherches sur les possibles causes de ce dysfonctionnement, je tombe sur des problèmes lié au proxy ... Je n'y crois pas.
    Images attachées Images attachées

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut
    Bonjour,

    D'après les messages d'erreurs, la variable $liste_affectations semble indéfinie, pour éviter cette erreur (pour l'instant) vous devriez d'abord vous assurez qu'elle existe avant de l'utiliser dans une boucle :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset($liste_affectations)){
      foreach ($liste_affectations as $key => $value):
      ......
      endforeach;
    }

    Â quel moment vous initialisez la variable ?

  3. #3
    Candidat au Club
    Homme Profil pro
    alternant Dev Web&Mobile
    Inscrit en
    Novembre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : alternant Dev Web&Mobile
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2022
    Messages : 2
    Par défaut
    Bonjour,

    la variable $liste_affectation existe.

    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
     
    switch ($_GET['action']) {
    			// Si la valeur de _GET['action'] est ajouter
    			case 'ajouter':
    				// Si est le formulaire d'ajout est envoyé
    				if (isset($_POST['form_submit'])) {
    					//Instanciation d'un objet de la classe Utilisateur
    					$nouvel_utilisateur = new Utilisateur();
    					// On génère le mot de passe
    					$mot_de_passe = '1234';
    					//Renseignement de certaines propriétés
    					list($_POST['mot_de_passe'], $_POST['notification_dpx']) = array(sha1($mot_de_passe), 0);
    					//On sérialise l'objet à partir du tableau _POST
    					$nouvel_utilisateur->serialise($_POST);
    					//On ajoute l'utilisateur
    					$nouvel_utilisateur->ajouter();
    					// Envoi du mot de passe généré par e-mail
    					$nouvel_utilisateur->emailCreationCompte($mot_de_passe);
     
    					//Session pour ouverture d'une pop-up de confirmation
    					$_SESSION['SHOW_MESSAGE'] = array('type' => 'success', 'message' => 'L\'utilisateur à été ajouté avec succès. (mdp = '.$mot_de_passe.').');
     
    					//Redirection vers la liste des utilisateurs
    				header('Location: index.php?tab=gestion%20des%20utilisateurs');
    				}
    				// Si on a pas valider le formulaire d'ajout
    				else {
    					//Récupération de la liste des affectations
    					$liste_affectations = $BDD->selectAll('affectation', '*', 1);    //La voici
    				}
    $liste_affectations = $BDD->selectAll('affectation', '*', 1);

    Ce qui m'intrigue c'est la requête bdd.

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut
    Bonjour,

    Elle existe seulement lorsque vous ne soumettez pas le formulaire, en plus vous l'avez indiqué dans le commentaire au dessus.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Si on a pas valider le formulaire d'ajout
    else {
            //Récupération de la liste des affectations
    	$liste_affectations = $BDD->selectAll('affectation', '*', 1);    //La voici
    }

Discussions similaires

  1. [PHP 5.3] récupération $_files non fonctionnel avec jquery php
    Par Sniperwolf38 dans le forum Langage
    Réponses: 3
    Dernier message: 18/06/2013, 12h01
  2. [PHP 5.2] Session non fonctionnelle entre 2 hébergements en php 5.2.17
    Par rombautsdidier dans le forum Langage
    Réponses: 3
    Dernier message: 26/09/2012, 20h29
  3. [Wamp] PHP non fonctionnel
    Par Zippo94 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 09/04/2009, 18h25
  4. Réponses: 5
    Dernier message: 10/05/2007, 11h54

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