Function recuperer_info_membre_choisi() en pdo

Résolu
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   -  
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai cette function que je voudrais convertir en pdo :
<?php
// la fonction qui va recuperer les informations de la personne choisi par l'utilisateur
function recuperer_info_membre_choisi()
{
$results = array();
$pseudo = mysql_real_escape_string(htmlentities($_GET['pseud
o']));

$query = mysql_query("SELECT * FROM utilisateurs WHERE pseudo='$pseudo'");
while ($row = mysql_fetch_assoc($query))
{
$results[] = $row;
}

return $results;

} 


comme j'ai fais maintes erreurs à ce sujet, je pourrais solliciter votre aide ? je vous remercie d'avance: )

10 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
<?php
//-----------------------------
 //Profile.php 
//-----------------------------

include_once('body/header.php');
include_once('body/menu.php');
?>
<div class='info'>
<?php
if(!function_exists('recuperer_info_membre_choisi')){
 echo "ERREUR : La fonction recuperer_info_membre_choisi n'existe pas ! ";
}
$pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
$infos_membres_choisis = recuperer_info_membre_choisi($pseudo);

foreach($infos_membres_choisis as $info_membre_choisi) {
 echo"<img src='avatar/". $info_membre_choisi['avatar']."' height='200' width='200' alt='avatar'>";
     echo "<p><strong>Email : </strong><em>".$info_membre_choisi['email']."</em></p>";
     echo "<p><strong>Sexe : </strong><em>".$info_membre_choisi['sexe']."</em></p>";
     echo "<p><strong>A propos de vous : </strong><em>".$info_membre_choisi['apropos']."</em></p>";
}
?>
</div>


1
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
Merci infiniement et bon repos ! :)
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Essaye ça :
<?php
// la fonction qui va recuperer les informations de la personne choisi par l'utilisateur
function recuperer_info_membre_choisi()
{
global $bdd; // déclaration globale de BDD
$pseudo = htmlspecialchars(strip_tags($_GET['pseud
o']));

$query = $bdd->prepare("SELECT * FROM utilisateurs WHERE pseudo=:pseudo");
$query->execute(array(':pseudo' =>$pseudo));
$results=$query->fetchall();

return $results;

} 
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
J'obtiens ça ; Parse error: syntax error, unexpected 'body' (T_STRING) in C:\wamp\www\rs\pages\profile.php on line 3

profile.php :

<?php
include('functions/membre.func.php);
include('body/header.php');
include('body/menu.php');
?>
<div class='info'>
<?php
$info_membres_choisi = recuperer_info_membre_choisi();

   foreach($infos_membres_choisis as $info_membre_choisi
   {
	   ?>
	               <img src="avatar/<?php echo $info_membre_choisi['avatar']; ?>"" height='200' width='200' alt='avatar'>
                   <p><strong>Email : </strong><em><?php echo $info_membre_choisi['email']; ?></em></p>
                   <p><strong>Sexe : </strong><em><?php echo $info_membre_choisi['sexe']; ?></em></p>
                   <p><strong>A propos de vous : </strong><em><?php echo $info_membre_choisi['apropos']; ?></em></p>
	   <?php
   }
?>
</div>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention  
 
Ligne 2... il te manque une quote
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
ah merci ! j'ai mtn : Parse error: syntax error, unexpected '?> ' in C:\wamp\www\rs\pages\profile.php on line 12
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
tu n'as pas fermé la parenthèse de ton foreach
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
J'obtiens mtn :

Notice: Undefined variable: infos_membres_choisis in C:\wamp\www\rs\pages\profile.php on line 10

Warning: Invalid argument supplied for foreach() in C:\wamp\www\rs\pages\profile.php on line 10
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Commence par nous remontrer le code CORRIGE qu'on sache où tu en es !
Penses également à nous mettre le code de ta fonction recuperer_info_membre_choisi()
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
Bah c'est le même sauf que j'ai rajouté ma parenthèse :
<?php
include('functions/membre.func.php');
include('body/header.php');
include('body/menu.php');
?>
<div class='info'>
<?php
$info_membres_choisi = recuperer_info_membre_choisi();

   foreach($infos_membres_choisis as $info_membre_choisi
   {
    ?>
                <img src="avatar/<?php echo $info_membre_choisi['avatar']; ?>"" height='200' width='200' alt='avatar'>
                   <p><strong>Email : </strong><em><?php echo $info_membre_choisi['email']; ?></em></p>
                   <p><strong>Sexe : </strong><em><?php echo $info_membre_choisi['sexe']; ?></em></p>
                   <p><strong>A propos de vous : </strong><em><?php echo $info_membre_choisi['apropos']; ?></em></p>
    <?php
   }
?>
</div>


profile.func.php :

<?php
// la fonction qui va recuperer les informations de la personne choisi par l'utilisateur
function recuperer_info_membre_choisi()
{
global $bdd; // déclaration globale de BDD
$pseudo = htmlspecialchars(strip_tags($_GET['pseudo']));

$query = $bdd->prepare("SELECT * FROM utilisateurs WHERE pseudo=:pseudo");
$query->execute(array(':pseudo' =>$pseudo));
$results=$query->fetchall();

return $results;

}
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
... c'est le même ...????
Et la correction de la ligne 2 ?????????
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Ne vois tu pas, quand tu postes ton message dans le forum... que les couleurs de tes différentes lignes peuvent sembler "bizarre" aux lignes 3 4 ... ????
Penses bien qu'une chaine de caractères .. commence ET SE TERMINE par des quotes ! (simples ou doubles..peu importe... du moment que c'est le mêmes qui ouvrent et qui ferment !)
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
ah mince j'ai juste fait un c/c de ce topic, je l'avais déjà faite la modif ligne 2 sur mon notepad++ pardon
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention  
 
Ah mince j'ai juste fait un c/c de ce topic, je l'avais déjà faite la modif ligne 2 sur mon notepad++ pardon

C'est bien pour ça .. qu'a chaque fois que je te demande le code ... je veux celui QUI EST SUR TON PC ... et pas celui du topic ! .. ce n'est pas la première fois que je te le dis.....
Merci de faire attention.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Que vient faire l'include
include('functions/membre.func.php'); 
 

dans ce code ?
Alors que tu utilises la page profile.func.php ...
l'erreur ne serait-elle pas là ?
Et pourquoi est-ce un INCLUDE au lieu d'un REQUIRE_ONCE (comme pour tes autres pages... voir mes remarques précédentes .... dans tes précédentes questions.....)
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
J'ai rien dit, ce sujet traite de liste_membre.php...
sinon j'ai commenté cette ligne de code et aussi testé le require once rien n'a fonctionné
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
tu as essayé d'inclure ta page profile.func.php à la place de membre.func.php ??
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Oui j'obtiens : Fatal error: Cannot redeclare recuperer_info_membre_choisi() (previously declared in C:\wamp\www\rs\functions\profile.func.php:3) in C:\wamp\www\rs\functions\profile.func.php on line 14

et avec le require_once j'ai les 2 memes erreurs
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
et avec le require_once j'ai les 2 memes erreurs

Normale ... car VU qu'il est déjà déclaré dans ton INDEX.PHP ... il ne le remet pas ... contrairement à l'include (ou au require) simple (c'est à dire ...sans le ONCE )....

Pour ce qui est des messages d'erreurs... et pour calmer mes doutes... pourrais tu (encore) ... nous mettre le code de tes deux pages ?



PS: Si tu pouvais utiliser le BOUTON : REPONDRE .. au lieu de mettre tes messages en commentaires... cela rendrait le suivi de la discussion plus simple. Merci.
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
Profile.php

<?php
require('functions/profile.func.php');
include('body/header.php');
include('body/menu.php');
?>
<div class='info'>
<?php
$info_membres_choisi = recuperer_info_membre_choisi();

   foreach($infos_membres_choisis as $info_membre_choisi)
   {
	   ?>
	               <img src="avatar/<?php echo $info_membre_choisi['avatar']; ?>"" height='200' width='200' alt='avatar'>
                   <p><strong>Email : </strong><em><?php echo $info_membre_choisi['email']; ?></em></p>
                   <p><strong>Sexe : </strong><em><?php echo $info_membre_choisi['sexe']; ?></em></p>
                   <p><strong>A propos de vous : </strong><em><?php echo $info_membre_choisi['apropos']; ?></em></p>
	   <?php
   }
?>
</div>


Profile.func.php :

<?php
// la fonction qui va recuperer les informations de la personne choisi par l'utilisateur
function recuperer_info_membre_choisi()
{
global $bdd; // déclaration globale de BDD
$pseudo = htmlspecialchars(strip_tags($_GET['pseudo']));

$query = $bdd->prepare("SELECT * FROM utilisateurs WHERE pseudo=:pseudo");
$query->execute(array(':pseudo' =>$pseudo));
$results=$query->fetchall();

return $results;

}
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
P.S.: bien que ce que tu fais ne soit pas incorrect, par convention on stocke les infos non transformées dans la BDD, et on les convertit (ici
htmlspecialchars(strip_tags
) uniquement dès la sortie. Autrement dit cette conversion n'a pas sa place dans les requêtes, mais uniquement lors de l'affichage du pseudo sur la page.
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10 > ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention  
 
du coup ça donne ? :
?php
// la fonction qui va recuperer les informations de la personne choisi par l'utilisateur
function recuperer_info_membre_choisi()
{
global $bdd; // déclaration globale de BDD
$pseudo = ($_GET['pseudo']));

$query = $bdd->prepare("SELECT * FROM utilisateurs WHERE pseudo=:pseudo");
$query->execute(array(':pseudo' =>$pseudo));
$results=$query->fetchall();

return $results;

}
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bon... je recommence ...
La ligne 2 est INUTILE .....
Si tu essaies de comprendre un minimum ce que tu codes ... tu vas comprendre que tu fais DEJA un include de tes fonctions dans ton INDEX.PHP.
( Lorsque tu affiches une page toto .... tu fais EN MEME TEMPS un include de toto.func.php ) !


Bon.. ensuite :
Evite de récupérer les variables GET DANS tes fonctions... traite les AVANT .. et passe les en PARAMETRES DE TA FONCTION.

de plus (comme déjà dit...) ... Pour toutes tes variables de type POST / GET / SESSION / COOKIE ...... vérifie AVANT de les utiliser... qu'elles existent. Cela se fait via la fonction ISSET.

Essayes ça :
Profile.php
<?php
//-----------------------------
 //Profile.php 
//-----------------------------

include_once('body/header.php');
include_once('body/menu.php');
?>
<div class='info'>
<?php
$pseudo = isset($GET|'pseudo'])?$GET|'pseudo']:NULL;
$info_membres_choisi = recuperer_info_membre_choisi(pseudo);

foreach($infos_membres_choisis as $info_membre_choisi) {
 echo"<img src='avatar/". $info_membre_choisi['avatar']."' height='200' width='200' alt='avatar'>";
     echo "<p><strong>Email : </strong><em>".$info_membre_choisi['email']."</em></p>";
     echo "<p><strong>Sexe : </strong><em>".$info_membre_choisi['sexe']."</em></p>;"
     echo "<p><strong>A propos de vous : </strong><em>".$info_membre_choisi['apropos']."</em></p>";
}
?>
</div>


(tu noteras qu'encore une fois.. je t'ai tout remis en PHP (pour éviter d'ouvrir/fermer des balises PHP partout dans ton code ! )

//Profile.func.php
<?php
//-----------------------------
//Profile.func.php 
//-----------------------------
// la fonction qui va recuperer les informations de la personne choisi par l'utilisateur
function recuperer_info_membre_choisi($pseudo = NULL) {
global $bdd; // déclaration globale de BDD

$result = array();
if($pseudo){
  $sql = "SELECT * FROM utilisateurs WHERE pseudo=:pseudo" ;
  $query = $bdd->prepare($sql);
  $query->execute(array(':pseudo' =>$pseudo));
  $result=$query->fetchall();
}
return $result;

}



edit : ajout d'un IF dans le fichier profil.func.php

Cordialement,
Jordane
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
Merci pour ces explications ! j'ai donc ceci : Parse error: syntax error, unexpected ']' in C:\wamp\www\rs\pages\profile.php on line 11
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention  
 
Oui.. erreur de touche de clavier...
A ton avis .. qu'est-ce qui n'est pas bon dans cette ligne de code :
$pseudo = isset($GET|'pseudo'])?$GET|'pseudo']:NULL;


Essaye de trouver AVANT de lire ce qui est en dessous...

..... Je me suis trompé et aie mis un PIPE | ... au lieu d'un crochet [
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Ce qui donne :

$pseudo = isset($GET['pseudo'])?$GET['pseudo']:NULL;

0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
Merci ! mtn j'ai Parse error: syntax error, unexpected ']' in C:\wamp\www\rs\pages\profile.php on line 11
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
2 barres en fait c pour ça !
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
J'ai mtn cette erreur : Parse error: syntax error, unexpected 'echo' (T_ECHO), expecting ',' or ';' in C:\wamp\www\rs\pages\profile.php on line 18
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Regarde ligne 17.. j'ai fait une erreur en fin de ligne
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
C corrigé ! j'ai mtn 3 erreurs :'(

Notice: Use of undefined constant pseudo - assumed 'pseudo' in C:\wamp\www\rs\pages\profile.php on line 12

Notice: Undefined variable: infos_membres_choisis in C:\wamp\www\rs\pages\profile.php on line 14
Call Stack

Warning: Invalid argument supplied for foreach() in C:\wamp\www\rs\pages\profile.php on line 14
Call Stack
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Je fais beaucoup d'erreur ce soir .... faut que j'aille dormir... ^^

Si tu regardes bien à la ligne 12 .. tu vas voir que j'ai oublié un $ ....

$pseudo = isset($GET|'pseudo'])?$GET|'pseudo']:NULL;
$info_membres_choisi = recuperer_info_membre_choisi($pseudo);


0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Ensuite .... Ligne 14 ... ... le nom de la variable ne correspond pas à celle de la ligne 12 ... (infos ..et info sans S )
change la ligne 12 comme ceci :
$pseudo = isset($GET|'pseudo'])?$GET|'pseudo']:NULL;
$infos_membres_choisis = recuperer_info_membre_choisi($pseudo);
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
Oh je ne voudrais surtout pas vous en priver ^^
j'ai mtn : Notice: Undefined variable: infos_membres_choisis in C:\wamp\www\rs\pages\profile.php on line 14

Warning: Invalid argument supplied for foreach() in C:\wamp\www\rs\pages\profile.php on line 14
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu peux me reposter le code corrigé de ta page //Profile.php ?
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
<?php
//-----------------------------
 //Profile.php 
//-----------------------------

include_once('body/header.php');
include_once('body/menu.php');
?>
<div class='info'>
<?php
$pseudo = isset($GET['pseudo'])?$GET['pseudo']:NULL;
$info_membres_choisis = recuperer_info_membre_choisi($pseudo);

foreach($infos_membres_choisis as $info_membre_choisi) {
 echo"<img src='avatar/". $info_membre_choisi['avatar']."' height='200' width='200' alt='avatar'>";
     echo "<p><strong>Email : </strong><em>".$info_membre_choisi['email']."</em></p>";
     echo "<p><strong>Sexe : </strong><em>".$info_membre_choisi['sexe']."</em></p>";
     echo "<p><strong>A propos de vous : </strong><em>".$info_membre_choisi['apropos']."</em></p>";
}
?>
</div>
0