Initiale affichée à la place du mot

Fermé
CuivreS Messages postés 11 Date d'inscription mercredi 15 août 2018 Statut Membre Dernière intervention 15 août 2018 - Modifié le 15 août 2018 à 11:02
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 - 15 août 2018 à 22:29
Bonjour,

sur la conception de mon site, je créé un tableau qui se complète avec les données des utilisateurs.

Ca fonctionne. Le problème est que aléatoirement, sans que je change le code source, les identifiants sont abrégés. Ici, j'ai "moi" et "oim" comme id et mot de passe, et mon tableau affiche "m" et "o".
Il y a sûrement un moyen pour éviter ce genre d'incident...Comme une formule à ajouter.
Merci pour le coup de plus.
<?php

                $logNom = array ("Boutelier", "Rousse");
                $logPrenom = array ("Laurie", "Thierry");
                $logVille = array ('Toulouse', 'Mont');
                $logMail = array ('laubou@icloud.com', 'thierousse@hotmail.com');
                $logTel = array ("0254456336", "0236698774");
                $log = array ("oim", "trousse");
                $logmdp = array ("moi", "thr");

                for($i = 0; $i<2; $i++){
                    
                    $_SESSION['nom'][$i] = $logNom[$i];
                    $_SESSION['prenom'][$i] = $logPrenom[$i];
                    $_SESSION['ville'][$i] = $logVille[$i];
                    $_SESSION['email'][$i] = $logMail[$i];
                    $_SESSION['tel'][$i] = $logTel[$i];
                    $_SESSION['log'][$i] = $log[$i];
                    $_SESSION['mdp'][$i] = $logmdp[$i];
                }
                
                echo 'Nombre d\'inscrits: ' . count($_SESSION['nom']);
                echo '<br><br><br><br>';
                echo 'Affichage des inscrits: ';
                echo '<br><br>';

                ?>
            </div>

            <div id = "tableau">
            <table>
                <caption>Liste</caption>
                <tr>
                    <th>Nom</th>
                    <th>Prenom</th>
                    <th>Ville</th>
                    <th>Mail</th>
                    <th>Télephone</th>
                    <th>Identifiant</th>
                    <th>Mot de passe</th>
                </tr>
                <?php
                for($i = 0; $i < count($_SESSION['nom']); $i++){
                echo '<tr>';
                    echo '<td>' . $_SESSION['nom'][$i] . '</td>';
                    echo '<td>' . $_SESSION['prenom'][$i]. '</td>';
                    echo '<td>' . $_SESSION['ville'][$i]. '</td>';
                    echo '<td>' . $_SESSION['email'][$i]. '</td>';
                    echo '<td>' . $_SESSION['tel'][$i]. '</td>';
                    echo '<td>' . $_SESSION['log'][$i]. '</td>';
                    echo '<td>' . $_SESSION['mdp'][$i]. '</td>';
                echo '</tr>';
                }
                ?>
            </table>


EDIT : correction des balises de code.
Explication ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

3 réponses

jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
15 août 2018 à 11:14
Bonjour,

Je pense que ton code écrit de la sorte te posera moins de soucis
<?php
//demarrage des sessions
session_start();

//affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//création des users
$users=array();
$users[] = array("nom"=>"Boutelier" , "prenom"=>"Laurie", "ville"=>"Toulouse", "mail"=>"laubou@icloud.com","tel"=>"0254456336","log"=>"oim","mdp"=>"moi");
$users[] = array("nom"=>"Rousse" , "prenom"=>"Thierry", "ville"=>"Mont", "mail"=>"thierousse@hotmail.com","tel"=>"0236698774","log"=>"trousse","mdp"=>"thr");

//on stocke les users en session
$_SESSION['users'] = $users;

//récupération propre des variables AVANT de les utiliser
$utilisateurs = !empty($_SESSION['users']) ? $_SESSION['users'] : NULL;
echo 'Nombre d\'inscrits: ' . count($utilisateurs);
echo '<br><br><br><br>';
echo 'Affichage des inscrits: ';
echo '<br><br>';

?>
</div>

<div id = "tableau">
<table>
  <caption>Liste</caption>
  <thead>
    <tr>
      <th>Nom</th>
      <th>Prenom</th>
      <th>Ville</th>
      <th>Mail</th>
      <th>Télephone</th>
      <th>Identifiant</th>
      <th>Mot de passe</th>
    </tr>
  </thead>
  <tbody>
    <?php
    if(!empty($utilisateurs)){
      foreach($utilisateurs as $U){
        echo '<tr>';
          echo '<td>' . $U['nom'] . '</td>';
          echo '<td>' . $U['prenom']. '</td>';
          echo '<td>' . $U['ville']. '</td>';
          echo '<td>' . $U['email']. '</td>';
          echo '<td>' . $U['tel']. '</td>';
          echo '<td>' . $U['log']. '</td>';
          echo '<td>' . $U['mdp']. '</td>';
        echo '</tr>';
      }
    }
   ?>
  <tbody>
</table>



Au passage, je t'invite à lire (et à appliquer) ce qui est indiqué ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Et pour finir, lorsque tu postes ton code sur le forum, merci d'utiliser les balises de code
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

1
CuivreS Messages postés 11 Date d'inscription mercredi 15 août 2018 Statut Membre Dernière intervention 15 août 2018
15 août 2018 à 17:31
Tout d'abord merci pour ta réponse et ta rapidité.
L'affichage des erreurs que tu me proposes ne me sert pas, puisque php ne signale aucune erreur lorsque les mots sont tronqués, ils s'affichent quand même.
Je vais regarder pour la suite du code.
0
CuivreS Messages postés 11 Date d'inscription mercredi 15 août 2018 Statut Membre Dernière intervention 15 août 2018
15 août 2018 à 17:58
Le code passe très bien, ça signifierait que les tableaux associatifs sont plus fiables que les tableaux classiques.
Merci encore
0
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
15 août 2018 à 18:06
ça t'évite surtout de faire des erreurs...
je pense que lorsque tu as rencontré tes soucis... tu n'avais pas d'array au niveau de ton user
En gros tu devais avoir
 $logmdp = "moi";

de ce fait.. ta boucle
for($i = 0; $i<2; $i++){
  //...
   $_SESSION['log'][$i] = $log[$i];

retournait lettre par lettre .. donc m puis o

le code que je t'ai donné est plus propre et limite le nombre de boucles.
0
CuivreS Messages postés 11 Date d'inscription mercredi 15 août 2018 Statut Membre Dernière intervention 15 août 2018
15 août 2018 à 19:00
Je reviens à mon code, parce que celui que tu as proposé n'est pas adapté pour les autres fichiers,
il remet les initiales des identifiants et mots de passe. Pourtant j'ai bien un array pour log et logmdp.
Je met mon tableau:
                $logNom = array ("Boutelier", "Rousse");
                $logPrenom = array ("Laurie", "Thierry");
                $logVille = array ('Toulouse', 'Mont');
                $logMail = array ('laubou@icloud.com', 'thierousse@hotmail.com');
                $logTel = array ("0254456336", "0236698774");
                $log = array ("oim", "trousse");
                $logmdp = array ("moi", "thr");

0
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
15 août 2018 à 19:12

n'est pas adapté pour les autres fichiers,

Quels autres fichiers ?

Pourquoi revenir à ton code ... alors qu'il est préférable d'utiliser celui que je t'ai proposé ?
Le mieux est d"adapter tes autres fichiers justement......


Après, si tu tiens absolument à garder ce code comme ça... et bien.. pour comprendre d'où vient le souci.. il faut commencer par afficher le contenu des variables via des print_r ( comme indiqué dans le lien que je t'ai donné pour débuguer ton code ).
Donc.. vu que ton souci se situe au niveau de l'affichage.. cela semble indiquer que le problème proviendrait de ta variable de session.
Fais un print de ta variable de session au début de ton code
echo "<pre>";
print_r($_SESSION);
echo "</pre>";

et affiche nous sur le forum ce que ça te donne.
0
CuivreS Messages postés 11 Date d'inscription mercredi 15 août 2018 Statut Membre Dernière intervention 15 août 2018
15 août 2018 à 19:35
J'ai débugger avec print_r($_SESSION)
et donc je met en copie écran ce que j'ai obtenu,
je ne sais pas l'interpréter.

merci encore
0
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
Modifié le 15 août 2018 à 19:49
Tu ne vois pas que tes variables log et mdp ne sont pas des array ?
0
CuivreS Messages postés 11 Date d'inscription mercredi 15 août 2018 Statut Membre Dernière intervention 15 août 2018
15 août 2018 à 19:53
oui je le vois ici mais dans mon tableau je ne trouve pas l'erreur
0
CuivreS Messages postés 11 Date d'inscription mercredi 15 août 2018 Statut Membre Dernière intervention 15 août 2018
15 août 2018 à 19:56
je ne sais pas comment corriger, c'est par curiosité parce que je vais me pencher sur le tableau associatif
0
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
15 août 2018 à 21:10
Comment generes tu tes variables ?
Pas avec le code que tu nous as donné en tous cas....
0
CuivreS Messages postés 11 Date d'inscription mercredi 15 août 2018 Statut Membre Dernière intervention 15 août 2018
15 août 2018 à 21:18
Génère? c'est-à-dire comment les variables sont créées? J'ai un autre fichier ou une personne créé son identifiant avec ses données personnelles. Après tous les renseignements arrivent dans ce tableau.
Le but est que la personne une fois inscrite puisse se reconnecter avec ses identifiants.
Il y a le formulaire puis le code de recherche que je te met
<?php
                 if(!empty($_GET['id'])){
                    if($_GET['mdp'] != $_GET['MDP']){
                    ?>
                    <script language = "javascript">
                        erreur();
                    </script>
                <?php
                    }else 
                       
                        if(!empty($_GET['nom']) AND !empty($_GET['prenom']) AND !empty($_GET['ville']) AND !empty($_GET['email']) AND !empty($_GET['tel']) AND $_GET['mdp'] == $_GET['MDP'])
                        {
                        ?>
                            <script language = 'javascript'>
                                cacher(event);
                            </script>
                
                        <?php
                            $indic = count($_SESSION['nom']);
                            $_SESSION['nom'][$indic] = $_GET["nom"];
                            $_SESSION['prenom'][$indic] = $_GET['prenom'];
                            $_SESSION['ville'][$indic] = $_GET['ville'];
                            $_SESSION['email'][$indic] = $_GET['email'];
                            $_SESSION['tel'][$indic] = $_GET['tel'];
                            $_SESSION['description'][$indic] = $_GET['description'];
                            $_SESSION['log'][$indic] = $_GET['id'];
                            $_SESSION['mdp'][$indic] = $_GET['mdp'];

                        }
                        }
                    ?>
0