PB PHP, Session et Requête SQL afficher lien

Fermé
lusitanio Messages postés 142 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 18 novembre 2012 - 7 févr. 2010 à 02:04
lusitanio Messages postés 142 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 18 novembre 2012 - 11 févr. 2010 à 12:36
Bonjour,

Je suis en train de créer une plateforme d'échange de fichier ou chaque membre aura son accès personnel.

Bref je touche au but, mon dernier problème tient au fait que je n'arrive pas à afficher une information contenue dans ma bdd.

Ma bdd contient quatre champs:

id ; pseudo ; mtpasse ; redirection_page

c'est ce quatrième champs que je veux afficher sous forme de lien, en invitant le visiteur à cliquer dessus pour aller vers son espace membre, pour cela je me dit que comme j'ai codé(grâce à plsrs tuto ;-)) des sessions je me dit que je peut m'en servir pour afficher les infos contenus dans le champs "redirection_page" et tenant compte de la la session en cours grace à $_SESSION['pseudo'].
j'utilise donc une requete sql que voici:

SELECT redirection_page FROM membres WHERE pseudo=$_SESSION['pseudo']

Sous phpmyadmin elle fonctionne en mettant la valeur du champs a la place de $_SESSION['pseudo'],
mais une fois sur le site en local avec wamp, même en mettant la vraie valeur du champs j'obtient le message d'erreur suivant:

Parse error: parse error in C:\wamp\www\Site dernier en date (officiel)\Identification\membre.php on line 11
la ligne 11 correspondant à celle en gras sur mon script ci-dessous (qui est donc la fameuse requete sql ci-dessus):

    <?php
 session_start();  
 if (!isset($_SESSION['pseudo'])) { 
    header ('Location: connexion.php'); 
    exit();

		mysql_connect ('localhost', 'root', '');  
		mysql_select_db ('plateformess') ; 
			$_SESSION['pseudo']=$pseudo

		$query = "SELECT redirection_page FROM membres WHERE pseudo=$_SESSION['pseudo']";
		$result = mysql_query($query);
}

		mysql_close();
?>
 <html>
  <head>
   <title>Espace membre</title>
  </head>
    <body>
		Bienvenue <?php echo htmlentities(trim($_SESSION['pseudo']));?>!<br />
<p>pour accéder à votre espace personnel veuillez cliquer
		<?php echo "<a href=\"$result\">ici</a>"; ?>.</p>
		<a href="deconnexion.php">Déconnexion</a>
    </body>
   </html> 


Merci par avance pour votre aide, s'il y a des erreurs c'est normal j'ai quelque notion de sql, mais je débute en php...
A voir également:

4 réponses

avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
7 févr. 2010 à 10:48
Une chaine doit toujours être entre simple ou double guillemets.
Avec ta requête, c'est ça qui est envoyé à MySQL :
SELECT redirection_page FROM membres WHERE pseudo=avion-f16;
Donc avion-f16 n'est pas une chaine pour MySQL. Il faudrai que PHP envoie cette requête :
SELECT redirection_page FROM membres WHERE pseudo="avion-f16";
Donc :
$query = 'SELECT redirection_page FROM membres WHERE pseudo="'.$_SESSION['pseudo'].'"';
Mais le problème ne sera toujours pas résolu puisque $result est une ressource retournée par mysql_query, pas une chaine de caractère. Il faut utiliser mysql_fetch_array (ou mysql_fetch_assoc, mysql_fetch_object, ...).

Par contre, ta solution n'est pas la meilleure. Perso, pour le compte de mes membres, je crées tout simplement un fichier "membre.php" commun à tous les membres. Pour le profil, je fais profil.php mais je passe l'id du membre par GET : profil.php?id=3 (par exemple).
1
lusitanio Messages postés 142 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 18 novembre 2012 6
7 févr. 2010 à 18:56
Salut merci pour ta réponse!

pourrait-tu m'en dire plus sur ta méthode pour créer des profil?

Parce que en fait moi j'utilise l'idée d'afficher une adresse inscrite dans une base de donnée, afin de rediriger mes membres vers un dossier qui leur est propre et qu'eux seuls peuvent consulter, tout est créé:

1-le formulaire de connexion en php avec redirection vers la page membre.php,
2-une page membre.php, ou s'affiche le pseudo du visiteur,
3-les pages d'upload et download, avec un explorateur de fichier en php, (une page par membre: je sais c'est lourds mais je ne compte pas avoir plus d'une dizaine de membres)

Mon pb réside dans la redirection entre l'étape 2 et 3!
Je suis conscient que ce n'est pas la meilleure méthode mais c'est la seule que je me sent capable de réaliser , je n'ai trouver aucun tuto permettant de m'expliquer ne serait-ce qu'une méthode valable ;-(...alors je bricole.
mais je suis ouvert à toute autre méthode, telle que la tienne.
0
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
7 févr. 2010 à 20:27
Si je te comprends bien, tu crées réellement les fichiers sur ton FTP ?
PHP ne sert pas justement à générer des pages ?

Pour que le membre puisse modifier son compte, je crées un fichier "compte.php" (je me suis trompé dans mon autre réponse) et je me serts de la variable de session pour savoir de quel membre il s'agit. Et si elle n'existe pas, alors je mets un message d'erreur disant qu'il faut se connecter.

Pour gérer tes fichiers, je te conseil de créer une table "fichiers" contenant :
- id : Identifiant unique du fichier en auto-incrementation
- nom : Nom du fichier
- auteur_id : ID de l'auteur (= champ 'id' dans ta table "membres")
- Autres infos que tu juges utiles (date, type, ...)

Donc une page "upload.php" suffit, tu enregistres les fichiers dans un dossier "uploads", et tu fais un simple
INSERT INTO `fichiers`(`nom`, `auteur_id`) VALUES($nom_fichier, $_SESSION['id']);
Pour lister, rien de plus compliqué :
SELECT * FROM `fichiers` WHERE `auteur_id`=$_SESSION['id'] ORDER BY `nom`
0
lusitanio Messages postés 142 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 18 novembre 2012 6
11 févr. 2010 à 12:36
Finalement j'ai réussi, avec ma méthode qui d'ailleurs se rapproche un peu de la tienne, mis à part le re-nomage des fichiers. Mais ton idée à l'air interressante est bien moins compliquer à gérer que le mienne je vais tester.

merci beaucoup!
0