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 :

Passage de paramètres dans l'URL [MySQL]


Sujet :

PHP & Base de données

  1. #101
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par papajoker Voir le message
    je suppose qu'il y a bien un
    http://php.net/manual/fr/function.session-start.php
    au debut de chaque page
    Oui.

    Citation Envoyé par papajoker Voir le message
    au moment du

    $_SESSION['id_utilisateur']=$query_recuperation_identifiant;
    un minimum est de faire un echo $query_recuperation_identifiant : debug minimum...

    nous t'avons dit de faire un $_SESSION['id_utilisateur']= depuis tres longtemps, il ne faut pas avoir ce code en dehors de la connexion et de la deconnexion (sinon écrase la bonne valeur).


    Grr , si tu sauvegarde dans une session "id_utilisateur" que vient faire cette requete ??
    compliqué de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query_recuperation_identifiant_connecte= $_SESSION['id_utilisateur'];
    ou alors tu as strictement rien compris ?


    quels tests ? je ne vois pas de if ...
    Pour les tests, je ne l'ai ai pas mis, ce sont juste ceux qui permettent de déterminer l'accès de l'utilisateur (sur le script de connexion).

    Je te mets le code de la page qui liste les cours (qui ne marche plus), avec ce code ça m'affiche : Erreur lors de la requête SQL qui permet de récupérer l'identifiant connecté. :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        // On ouvre la session pour la transmission des variables
        session_start(); // Démarre une nouvelle session ou reprend une session existante
     
    //$pseudo_utilisateur=mysql_real_escape_string(htmlspecialchars(stripcslashes($_SESSION['pseudo_utilisateur']))); // MIS EN COMMENTAIRE
    Code sql : 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
     
       	// Récupération de l'identifiant connecté dans la base de données
    	$query_recuperation_identifiant_connecte = mysql_query("
    SELECT id_utilisateur 
    FROM test_site_utilisateur 
    WHERE id_utilisateur=".$_SESSION['id_utilisateur'])
     or die ('Erreur lors de la requête SQL qui permet de récupérer l\'identifiant connecté.'); // Envoie une requête à un serveur MySQL
    echo $query_recuperation_identifiant;
    echo $_SESSION['id_utilisateur'];
     
       	// Sélectionnement du bon Cours/TP (avec son identifiant) de l'élève dans la base de données
    	$query_selection_cours_tp_eleve = mysql_query("SELECT 
    	DISTINCT(t3.id_cours_tp), t3.titre_cours_tp, t3.matiere_cours_tp, t3.classe_cours_tp, t3.date_depot_cours_tp, 
    	t3.contenu_cours_tp, t3.nom_auteur_cours_tp, t3.type_devoir_cours_tp, t3.date_cloture_validation_cours_tp 
    	FROM test_site_relation_cours_tp_utilisateur t2  
    	LEFT JOIN test_site_cours_tp t3 
    		ON t2.id_cours_tp = t3.id_cours_tp 
    	WHERE t2.id_utilisateur=".$_SESSION['id_utilisateur']."
    	AND t3.type_devoir_cours_tp='1' 
    	ORDER BY date_cloture_validation_cours_tp") or die ('Erreur lors de la requête SQL qui permet de récupérer les Cours/TP d\'un élève.'); // Envoie une requête à un serveur MySQL

    Test :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(mysql_num_rows($query_selection_cours_tp_eleve)>0) {
       echo 'début du tableau';
    while ($donnees_cours_tp_eleve = mysql_fetch_assoc($query_selection_cours_tp_eleve)) {
    	echo '<form action="cours_tp.php" method="post" />';
        echo '<tr><td align="right"><input type="hidden" name="id_cours_tp" value="'.$donnees_cours_tp_eleve['id_cours_tp'].'" /><input type="submit" name="cours_tpok" value="'.$donnees_cours_tp_eleve['titre_cours_tp'].'" /></td></form>';
        echo '<td align="right">'.dateLongueSansHeure($donnees_cours_tp_eleve['date_cloture_validation_cours_tp']).'</td></tr>';
    }
    	echo 'fin du tableau';

  2. #102
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    je t'ai demandé un debug minimum (avec des echo) mais tu ne me donne pas les résultats

    tu as bien mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_SESSION['id_utilisateur'];
    mais après le plantage de php !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    dans ce cas la on remonte son debug (de 2-3 lignes , de 1 page .. jusqu’à l'origine ! )

    si tu as toujours $_SESSION['id_utilisateur'] égal a 0, il faut trouver le probleme, et il est évident que plus rien ne fonctionne après
    Donc , ca ne sert a rien de reposter le code source qui est après le probleme.

    pour ta requete : $query_selection_cours_tp_eleve, c'est un autre probleme, la liaison entre tes 3 tables (et id_utilisateur=0), c'est du SQL pur, il faut lire un minimum de tuto, et te former. Cela doit-etre un autre sujet dans ce forum. je peux juste te poser cette question(reponse) :
    Combien de liaisons faut-il pour relier 3 objets ?
    XXX <-> XX <-> XXX
    ne me répond pas ! c'est un autre sujet


    ps : si cette requete (query_selection_cours_tp_eleve) affiche parfois un résultat, ce n'ai pas pour cela quelle fonctionne, tu tapes du code sql au hasard, et juste parfois tu n'as pas d'erreur sql.
    $moi= ( !== ) ? : ;

  3. #103
    Invité
    Invité(e)
    Par défaut
    @papajoker
    Ca va, Patrick ?

    Pas encore ni ou ?

    (on sent que ça vient...)

  4. #104
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Quand je fais un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    	echo "La variable de session = ".$_SESSION['id_utilisateur'];
    dans le script de connexion, ça m'affiche La variable de session = Resource id #8, c'est pour ça.

  5. #105
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    Citation Envoyé par vinceom92 Voir le message
    Quand je fais un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    	echo "La variable de session = ".$_SESSION['id_utilisateur'];
    dans le script de connexion, ça m'affiche La variable de session = Resource id #8, c'est pour ça.
    tu as bien trouvé l'erreur bravo et ca ne te saute pas aux yeux ?
    mais 20 minutes + tard tu n'as pas corrigé ?

    mysql_query() puis mysql_fetch_XXX()
    $moi= ( !== ) ? : ;

  6. #106
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Si je viens de réparer. J'ai mis cette boucle :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Boucle pour récupérer l'identifiant de l'utilisateur connecté - DEBUT
    	while($recuperation_identifiant_utilisateur_connecte = mysql_fetch_array($query_recuperation_identifiant)){ 
    		$recuperation_identifiant_utilisateur_connecte['id_utilisateur'];
    		$_SESSION['id_utilisateur']=$recuperation_identifiant_utilisateur_connecte['id_utilisateur'];;
    	}
    	// Boucle pour récupérer l'identifiant de l'utilisateur connecté - FIN
    dans chaque test du script de connexion. [/CODE]

    Maintenant sur la page qui liste les cours, il n'y a plus de bug.

    Sur la page qui affiche le cours, le message suivant s'affiche : Erreur lors de la requête SQL qui permet de sélectionner l'élève connecté.. Voici la requête SQL :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	// Sélectionnement de l'identifiant de l'élève connecté
    	$selection_identifiant_id_eleve_connecte = mysql_query("SELECT id_utilisateur FROM test_site_utilisateur WHERE id_utilisateur=".$_SESSION['id_utilisateur']."AND (acces_utilisateur='1' OR acces_utilisateur='5')") or die ('Erreur lors de la requête SQL qui permet de sélectionner l\'élève connecté.'); // Envoie une requête à un serveur MySQL

  7. #107
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    on avance a grand pas

    tu n'as toujours pas le bon réflexe debug moi meme

    tu fais un die("message d'erreur") donc le message d'erreur de mysql est masqué-remplacé par le ton propre message d'erreur.

    1) mettre en commentaire le ja t'avancer

    2) tu peux ecrire tes requetes sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "select * from matable";
    $result =  mysql_query ( $sql)
                     or die("ton message");
    si probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql = "select * from matable";
    echo $sql;
    $result =  mysql_query ( $sql)
                    /* or die("ton message".$sql) */ ;
    // si erreur sql alors, je copie ma requete $sql et je la teste dans phpmyadmin
    // voire, je la recopie dans le forum bien formatée sur plusieurs lignes
    ce n'est pas ton code ca ?
    car ici, (tu) testes uniquement si l'utilisateur connecté a bien les droits pour continuer et ...
    si il n'a pas les droits (5 ou 1) il faut donc afficher un message d'erreur ("de droits") et surtout ne pas continuer. Mais en aucun cas on ne selectionne l'id de l'utilisateur, juste un test des droits par securité.
    $moi= ( !== ) ? : ;

  8. #108
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    J'ai mis ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	// Sélectionnement de l'identifiant de l'élève connecté
    	$query = "SELECT id_utilisateur 
    	FROM test_site_utilisateur WHERE id_utilisateur=".$_SESSION['id_utilisateur']."
    	AND (acces_utilisateur='1' 
    	OR acces_utilisateur='5')";
    	$selection_identifiant_id_eleve_connecte =  mysql_query ($query) or die("Erreur lors de la requête SQL qui permet de sélectionner l\'élève connecté.");

    et ça marche !!!

    Je vais revenir vers vous pour vous montrer les requêtes SQL pour que vous me dites si toutes les requêtes SQL sont bonnes.

    A toute !

  9. #109
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    Citation Envoyé par papajoker Voir le message
    car ici, (tu) testes uniquement si l'utilisateur connecté a bien les droits pour continuer et ...
    si il n'a pas les droits (5 ou 1) il faut donc afficher un message d'erreur ("de droits") et surtout ne pas continuer. Mais en aucun cas on ne selectionne l'id de l'utilisateur, juste un test des droits par securité.
    La tu n'as rien changé a la requete !
    c'est donc que tu avais un mauvais utilisateur ?
    si requete retourne "rien" c'est un probleme de droit !

    Il ne faut pas zappé ce code,
    soit il passe toujours soit il passe parfois
    si il ne passe pas toujours c'est que tu a un bug que tu décides de zapper, il va revenir
    $moi= ( !== ) ? : ;

  10. #110
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Voici les requêtes SQL :

    De la page qui liste les cours :
    Code sql : 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
     
    // Récupération de l'identifiant connecté dans la base de données
    $query_recuperation_identifiant_connecte = mysql_query("SELECT id_utilisateur
    FROM test_site_utilisateur
    WHERE id_utilisateur=".$_SESSION['id_utilisateur'])
    or die ('Erreur lors de la requête SQL qui permet de récupérer l\'identifiant connecté.'); // Envoie une requête à un serveur MySQL
     
    // Sélectionnement du bon Cours/TP (avec son identifiant) de l'élève dans la base de données
    $query_selection_cours_tp_eleve = mysql_query("SELECT  DISTINCT(t3.id_cours_tp), t3.titre_cours_tp, t3.matiere_cours_tp, t3.classe_cours_tp, t3.date_depot_cours_tp, 
    t3.contenu_cours_tp, t3.nom_auteur_cours_tp, t3.type_devoir_cours_tp, t3.date_cloture_validation_cours_tp 
    FROM test_site_relation_cours_tp_utilisateur t2  
    LEFT JOIN test_site_cours_tp t3 
    	ON t2.id_cours_tp = t3.id_cours_tp 
    WHERE t2.id_utilisateur=".$_SESSION['id_utilisateur']."
    AND t3.type_devoir_cours_tp='1' 
    ORDER BY date_cloture_validation_cours_tp")
    or die ('Erreur lors de la requête SQL qui permet de récupérer les Cours/TP d\'un élève.'); // Envoie une requête à un serveur MySQL

    De la page qui affiche un cours :
    Code sql : 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
     
    // Sélectionnement de l'identifiant de l'élève connecté
    $selection_identifiant_id_eleve_connecte = mysql_query("SELECT id_utilisateur 
    FROM test_site_utilisateur WHERE id_utilisateur=".$_SESSION['id_utilisateur']."
    AND (acces_utilisateur='1' 
    OR acces_utilisateur='5')")
    or die ('Erreur lors de la requête SQL qui permet de sélectionner l\'élève connecté.'); // Envoie une requête à un serveur MySQL
     
    // Sélectionnement du bon Cours/TP
    $selection_cours_tp = mysql_query("SELECT DISTINCT(date_depot_cours_tp),titre_cours_tp,contenu_cours_tp,matiere_cours_tp,nom_auteur_cours_tp,classe_cours_tp
    FROM test_site_cours_tp,test_site_utilisateur
    WHERE  id_utilisateur=".$_SESSION['id_utilisateur']."
    AND type_devoir_cours_tp='1' AND (acces_utilisateur='1'
    OR acces_utilisateur='5')
    AND id_cours_tp='$id_cours_tp'")
    or die("Erreur sur la requête SQL qui sélectionne toutes les informations du Cours/TP (sauf les questions).");

    Est-ce que ça va mieux ?

  11. #111
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    pour la premiere requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    or die ("Vous n'avez pas les droits suffisants pour continuer.");
    puisque l'on test uniquement les droits

    pour la seconde ai déja ecrit :
    ... la liaison entre tes 3 tables, c'est du SQL pur, il faut lire un minimum de tuto, et te former. Cela doit-etre un autre sujet dans ce forum. je peux juste te poser cette question(reponse) :
    Combien de liaisons faut-il pour relier 3 objets ?
    XXX <-> XX <-> XXX
    ne me répond pas ! c'est un autre sujet
    le sujet ouvert est "Passage de paramètres dans l'URL"

    passe ce sujet en résolut
    c'est fini, ce probleme n'a rien a voir avec l'URL

    et ouvre en un autre, dans la rubrique sql, il te faut juste comprendre comment lier 3 tables


    edit : il me semble que ta table relation (pivot) est vide .
    Si c'est le cas, Le bon résultat sql retourné par tes requetes est : "aucun résultat" !
    $moi= ( !== ) ? : ;

  12. #112
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par papajoker Voir le message
    il me semble que ta table relation (pivot) est vide .
    Si c'est le cas, Le bon résultat sql retourné par tes requetes est : "aucun résultat" !
    La table relationnelle test_site_relation_cours_tp_utilisateur n'est pas vide car j'ai fait des essais.

  13. #113
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    ok

    mais ferme ce sujet
    si passage de parametre dans URL est résolut

    et ouvre un autre

    car qui va te répondre ici ?
    il y a plus de 110 messages; pour un nouveau, il doit se taper les 110 messages pour enfin pouvoir te répondre personne ne va avoir le courage !

    La tu as un probleme sql rien a voir avec ce sujet
    bien que la réponse est sans doute dans un des 110 messages , mais meme toi tu n'as pas le courage de tout relire mais bien sur je te le conseille de tout relire (au bout de 2..5 messages on te dit de mettre id_utilisateur en session ... et tu le fais 70 messages après !!!!)
    $moi= ( !== ) ? : ;

  14. #114
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par papajoker Voir le message
    passe ce sujet en résolut
    c'est fini, ce probleme n'a rien a voir avec l'URL

    et ouvre en un autre, dans la rubrique sql, il te faut juste comprendre comment lier 3 tables
    J'ai mis ce sujet en "RESOLU" tandis que j'ai ouvert une discussion pour vérifier les tables SQL et les requêtes des deux pages notamment celle que tu m'as dit (http://www.developpez.net/forums/d13...-requetes-sql/).

+ Répondre à la discussion
Cette discussion est résolue.
Page 6 sur 6 PremièrePremière ... 23456

Discussions similaires

  1. passages de paramètres dans l'url
    Par anchain dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2008, 13h58
  2. [1.5][Zend_Controller] Passage de paramétres dans l'url
    Par Jonathan.b dans le forum Zend Framework
    Réponses: 4
    Dernier message: 16/04/2008, 19h37
  3. Passage de paramètre dans l'url
    Par ..::snake::.. dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/01/2008, 09h52
  4. passage de paramètre dans une url
    Par samira84 dans le forum Struts 1
    Réponses: 5
    Dernier message: 12/06/2007, 15h52
  5. erreur de passage de paramètre dans une urL
    Par lodan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/02/2007, 12h29

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