logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
24 visiteur(s) et 1 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 109 437 517

  • Nb. de membres 8 696
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Le coin des codeurs »» [Résolu] - Blems pour utilisation de la table extend_user...

[Résolu] - Blems pour utilisation de la table extend_user...#15363

3Contributeur(s)
westremshexagonezyegfryed
3 Modérateur(s)
developpeurjpbJireck
westrems westremsicon_post
Bonjour,

Voila je fais remplir dans le formulaire d'inscription, les champs $C1(age) $C2 (sexe) $C3 (couleur des cheveux) à $C8, $M1(voulez vous voir apparaitre ces infos lors de votre connection? tapez oui), $M2, $T1 et $T2, informations relative à l'état de la personne qui s'inscrit.

Dans le header, j'aimerais faire ressortir l'information sous cette forme : salut "uname", tu es une fille"$C2", tu as 27 ans"$C1" et les cheveux blonds"$C3"...

Cependant le terme une fille (féminin) ne peux s'afficher que si le champs $C2 (sexe) est renseigné en f, sinon en cas de h (homme) les phrases seront en masculin...

Ces infos sortirons seulement si le champs $M1 a été renseigné en "oui"... sinon il y aura une image à la place... if $M1="oui" echo phrase ci-dessus else print photo ?

Je serais très très reconnaissant pour votre aide

Franchement je suis très mauvais en php / sql, cela fais 3 jours que j'essaye de rapatrier ces informations mais sans succès...

Quelqu'un peux t il m'aider?

Merci d'avance

hexagone hexagoneicon_post
salut,


ca devrait ptetre marcher...
essaie ca:



<?php




//fonction a mettre dans header.php, afficher le resultat par:
//echo info_extend_user(); // a l'endroit ou on veut afficher la phrase

//la fonction peut etre largement ameliorée...
//1)en evitant de passer par une fonction :-D
//2)gestion multilangue

function info_extend_user()
{
    
//recupere la variable globale user
    
global $user;

    
$message "";

    //si user est definie, autrmeent dit, si l'utilisateur est connecté
    if (isset($user))
    
{

        //recupere les info utilisateur par le cookie
       cookiedecode($user);
       $userid = $cookie
[0];
       $username = $cookie
[1];
       
       //on n'est pas obligé de passer par le cookie, on peut aussi
       //recuperer les info de base de l'utilisateur directement par la variable $user (cryptée)
       /*
        $userdata = explode(
":", base_64_decode($user));
        $userid = $userdata
[0];
        $username = $userdata
[1];
        */


       //on n'est pas obligé d'indiquer exactement les noms des champs,
       //on aurait pu utiliser un * pour tout recuperer,
       //mais on ne sait jamais quelle taille va faire le champ B1 (blob) inutilisé ici,
       //alors inutile de le recuperer

       //@ devant mysql_query evite d'afficher une erreur au cas ou la requete merdouille
       //j'en ai mis, mais en cas de programation propre, @ est inutile, puisque qu'on a prevu tous les cas :-D
       if ($result=@mysql_query(
"SELECT C1,C2,C3,C4,C5,C6,C7,C8,M1,M2,T1,T2 FROM users_extend WHERE uid = '$userid'"))
       
{


            //verifie qu'il y a au moins une reponse
            if ($temp = @mysql_fetch_array($result))
            //je prefere utiliser un fetch_array, ce nest pas plus lent,
            //et cest bien plus pratique en cas de modification de la table
            
{

                //afficher les info
                if ($temp
[M1]=="1") // on peut ommettre =="1" pour tester une valeur differente de vide
                
{
                
                    $message = 
"Salut $username,";

                    //on teste le sexe
                    //fille
                    if ($temp
[C2]=="f")    $message .= "tu est une fille";      // $message .= "truc" est equivalent a $message = $message."truc"
                    //garcon
                    else $message .= 
"tu est un garçon";

                    $message .= 
", tu as ".$temp[C1]." ans et les cheveux ".$temp[C3]." ... ";

                
}
                else
                //afficher une image
                
{

                    $message = 
"<img src.................>";

                
}     
            
}
            
            //libere la memoire occupée par la requete
            @mysql_free_result($result);
       
}

    
}
    
    //la fonction renvoie le resultat
    return($message);

}



?>


westrems westremsicon_post
Bonjour Hexagone,

J'ai pris le temps d'intégrer ton code dans le header.php de \themes\themes-dynamic. c'est bien celui ci ou le header.php de \themes\Permanent-Double-Side-Dynamic.

Les messages d'erreurs m'indiquaient pour ces differentes lignes (Que j'ai isolé par // ) :

//si user est definie, autrmeent& nbsp;dit, si l'utilisateur est connecté
if (isset($user))
{

//recupere les info utilisateur par le cookie
cookiedecode($user);
$userid = $cookie< font color="#007700">[0];
$username = $cookie[1];

//on n'est pas oblig é de passer par le cookie, on peut auss i
//recuperer les info ;de base de l'utilisateur directement par la ;variable $user (cryptée)

$userdata = explode (":", base_64_decode($user));
$userid = $userdata [0];
$username = $userda ta[1];

A présent il n'y a plus d'erreur (mais je comprend pas pourkoi les cookies et l'utilisateur ne sera plus reconnu ?)

De plus je sais pas du tout ou integrer : echo info_extend_user(); dans une page php ? le header peux etre ?

Merci d'avance car la je nage... :-D
hexagone hexagoneicon_post
peux tu m'envoyer ton fichier header.php?

on gagnera du temps je pense..:-)

=> ici: hexagone_mj_at_yahoo.fr (remplacer _at_ par @ )
westrems westremsicon_post
Je viens de t'envoyer le fichier en question :=!
hexagone hexagoneicon_post
ok, jy jete un coup d'oeil des que je peux..:)
westrems westremsicon_post
Je retente à nouveau :
Parse error: parse error, unexpected T_ELSE in /home/antinico/www/themes/Permanent-Double-Side-Dynamic/header.php on line 91

ligne 91 --> ; else $message .= "tu es un garçon";

pas de chance sur le truc
zyegfryed zyegfryedicon_post
Le point virgule en début de ligne est de trop. A mon avis, tu devrais soit le supprimer, soit le changer par une accolade fermante. Si on avait une dizaine de lignes de script je pourrais t'en dire plus, mais là...
hexagone hexagoneicon_post
salut,

dsl pour le temps de reponse, mais je voulais tester (cette fois) avant d'envoyer. :-)

on va arreter de perdre notre temps pour rien, on va passer par les metatags.
donc webstrems, efface les modifs précedentes (dsl :-D )
et fait ca:

copie ca dans le fichier modules/meta-lang/extend-meta-lang.php (juste avant le ?> de la fin)




     #autodoc !extend_westrems! : metamot pour westrems
     $meta_mot='!extend_westrems!';
      global $cookie, $anonymous;
      $userid = $cookie[0];
      $username = $cookie[1];
      $chaine_rep = '';
      if ($username!=$anonymous && $username!='')
      {
         if ($result=mysql_query('SELECT C1,C2,C3,C4,C5,C6,C7,C8,M1,M2,T1,T2 FROM  users_extend WHERE uid = ''.$userid.'''))
         {
              if ($temp = mysql_fetch_assoc($result))
              {
  
               if ($temp[M1]=='1')
               {
                   $chaine_rep = 'Salut '.$username.',';

                   //on teste le sexe
                   //fille
                   if ($temp[C2]=='f') $chaine_rep .= 'tu est une fille';
                   //garcon
                   else $chaine_rep .= 'tu est un garçon';

                   $chaine_rep .= ', tu as '.$temp[C1].' ans et les cheveux '.$temp[C3].' ... ';
               }
               else
               //afficher une image
               {
                   $chaine_rep = '<img src=\"img.jpg\">';
               }
              }
              //libere la memoire occupée par la requete
              mysql_free_result($result);
         }
      }
   $Xcontent=extend_meta_mot($Xcontent,$meta_mot,$chaine_rep);



puis ouvre ton fichier themes/Permanent-Double-Side-Dynamic/html/header.html

et ajoute derriere
!whoim!

ca:
<br />!extend_westrems!



la ca devrait marcher..
je t'envoie une verison par mail ce soir, vu qu'il y a des caracteres qui s'ajoutent ici...

+

Message édité par : hexagone