souci de if/else

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : souci de if/else

Re: URGENT SVP souci de if/else

par moogli » 07 sept. 2011, 11:00

tu n'exploite pas la requête SQL qui d'ailleurs n'a pas de "where" sans prédicat tu ne peux "filtrer" les infos

ça devrait être select groupe from table where user=id/nom/trucquetuveux

tu ne doit te retourner qu'un seul tuple celui correspondant a l'utilisateur.

a toi de voir comme tu fait pour faire une requête sur la base de données.

Php offre plusieurs possibilité la plus en vogue en ce moment est PDO

@+

Re: URGENT SVP souci de if/else

par nath67 » 07 sept. 2011, 09:37

Merci Moogli.
Est-ce que tu pourrais juste vérifier ma syntaxe? Parce que je crois que j'ai compris le principe, mais j'ai un peu de mal à le formuler.
Puis à chaque fois que je regarde ce que ça donne, j'ai une page blanche...:

Pour télécharger votre facture, cliquez
<?php SELECT 'matable' FROM 'group_id'
if ( group_id == 'partenaire') echo '<a href="http://localhost/monsite/partenaires/<?php echo $user->get('name'); ?>/<?php echo $user->get('name'); ?>.pdf" target="_blank">ici</a>';
else
( group_id == 'client') echo '<a href="http://localhost/monsite/client/<?php echo $user->get('name'); ?>/<?php echo $user->get('name'); ?>.pdf" target="_blank">ici</a>';

endif; ?>

Merci d'avance.

Re: URGENT SVP souci de if/else

par moogli » 06 sept. 2011, 19:04

si tu sais récupérer le groupe un simple if,

une requête sur plusieurs table c'est une jointure

a toi de la formuler en fonction de tes tables et des classes pour l'exploiter un simple if ( retourdelaerquete == 'le groupe qui va bien') echo 'truc';

@+

Re: URGENT SVP souci de if/else

par nath67 » 06 sept. 2011, 18:54

Merci pour ta réponse. :wink:

En fait, mon formulaire de connexion est fait et fonctionne.
Mais sur la page où il y a l'accès au pdf du client, j'aimerai différencier l'accès des clients et des partenaires (qui font partie de deux groupes différents). En fait, l'accès à la table de ma base de donnée est ok jusque là. Mais les groupes d'utilisateurs font partie d'une autre table (la table avec les infos utilisateurs et celle des groupes sont toutes les deux liées par l'ID de l'utilisateur), et je n'arrive pas à faire une requête pour les rassembler...et pour que les gens qui se connectent, suivant leur appartenance à tél ou tel groupe, soient redirigés vers un lien ou un dossier spécifique.

En fait, mon formulaire fonctionne comme ça :

<?php if ($type == 'logout') : ?>
<form action="<?php echo Route::_('index.php', true, $params->get('usesecure')); ?>" method="post" id="login-form">
<?php if ($params->get('greeting')) : ?>
<div class="login-greeting">
<?php if($params->get('name') == 0) : {
echo Text::sprintf('MOD_LOGIN_HINAME', $user->get('name'));
} else : {
echo Text::sprintf('MOD_LOGIN_HINAME', $user->get('username'));
} endif; ?>
<br /><br />Pour télécharger votre facture, cliquez
<a href="http://localhost/monsite/clients/<?php echo $user->get('name'); ?>/<?php echo $user->get('name'); ?>.pdf" target="_blank">ici</a></div><br /><br />
<?php endif; ?>
<div class="logout-button">
<input type="submit" name="Submit" class="button" value="<?php echo Text::_('LOGOUT'); ?>" />
<input type="hidden" name="option" value="com_users" />
<input type="hidden" name="task" value="user.logout" />
<input type="hidden" name="return" value="<?php echo $return; ?>" />
<?php echo Html::_('form.token'); ?>
</div>
</form>

En fait, ici, j'ai tout ce qu'il me faut pour un type de groupe, il faudrait juste que je mette une variable conditionnelle pour différencier les groupes...mais je n'arrive pas à la formuler...est-ce que c'est un peu plus clair? 8-)

Re: URGENT SVP souci de if/else

par moogli » 06 sept. 2011, 18:32

salut,

ce que tu décrit c'est un if

les redirections c'est avec la fonction header.

quand a ton code tu a des affichages de chose viennent "de nulle part" avec une classe inconnue donc on ne pas vraiment t'aider.

le principe :
- sélectionner dans la table l'information du groupe (oublie le select c'est le mal explication sur la guerre des étoiles ;) )
- La sélection peut aider a valider rapidement le code, par exemple tu met le groupe dans le prédicat du where et un count qui retournera 1 ou 0 dans le select ainsi ta requête est générique quelque soit le groupe ou la personne
- lorsque tu sais si la personne appartient a tel ou tel groupe tu peux employer le header qui va bien et même directement forcer le téléchargement du pdf qui va bien (exemple dans la doc de header).

exemple
j'ai
- une table utilisateurs avec les champs idutilisateur,nom,prenom, idgroupe
- une table groupes avec les champs idgroupe,nomgroupe
lors de la connexion de l'utilisateur (je suppose un accès type espace membre) tu met en session "l'id de l'utilisateur) qui va permettre de récupérer simplement les infos de l'utilisateur.
pour avoir le groupe de l'utilisateur :
select nomgroupe from utilisateurs join groupes using idgroupe where idutilisateur=$idEnSession;
tu a donc le nom du groupe et peux ainsi faire un if / elseif / else ou un switch pour réaliser l'envoie de fichier ou redirection suivant le groupe.

pourquoi deux tables ? cela te permet de gérer plein de groupe et d'utilisateurs. si tu modifie un groupe besoin de modifer 5000 tuples un seul suffit, c'est simple, performant et éviter les conneries :)
Pour faire bien il faudrait une table qui réalise la liaison (jointure) entre utilisateurs et groupes (par exemple id, idutilisateur,idgroupe).
Pourquoi ? parce qu'un utilisateur peux ainsi être dans plusieurs groupes (après ça dépend de ton application si c'est forcément un seul tu peux virer cette table et garder le champ groupe dans la tables utilisateurs, sinon faut l'enlever ;) ).
d'ailleurs si le document que tu veux envoyer est "immuable" sur les groupes (dans sens où il y a un document pour chaque groupe, même s'il sont amené a évoluer) tu peux très bien ajouter un champ document dans la table groupe (bon après tu peux prévoir le système avec plusieurs document et l'a faut deux tables de plus etc etc ;) )

c'est assez générique sans plus de détails sur la structure de ta ou tes tables et ce que tu veux faire au final je ne peux pas vraiment t'aider plus.

pour finir je dirais simplement que les urgences c'est le 18 ou le 17 sur ton tel, tes contraintes temporelles ne sont pas les notres ;)

@+

Re: URGENT SVP souci de if/else

par nath67 » 06 sept. 2011, 18:28

...ou est-ce que quelqu'un connaîtrait un tuto sympa qui résoudrait mon souci ou pourrait me mettre sur la voie??

Re: URGENT SVP souci de if/else

par nath67 » 06 sept. 2011, 17:57

j'ai essayé de mettre ça:

<?php $group = SELECT * FROM `matable`; ?>

<br /><br />Pour télécharger votre facture, cliquez <?php if($group == 9 )
{echo <a href="http://monsite/partenaires/<?php echo $user->get('name'); ?>" target="_blank">'ici'</a>;}
else
{echo <a href="http://monsite/clients/<?php echo $user->get('name'); ?>.pdf" target="_blank">'ici'</a>;}
endif; ?>

En fait, j'aimerai rediriger les gens qui font partie du groupe partenaire vers le dossier "partenaire" et ceux qui font partie du groupe "client" vers le pdf qui porte leur nom.
Mais ça ne marche pas, et je ne sais pas où est l'erreur...

souci de if/else

par nath67 » 06 sept. 2011, 17:34

Bonjour,

Je suis novice dans le php et j'aurais besoin d'un petit coup de pouce pour traduire cela en php:
"si telle et telle valeur est vraie dans la table, alors l'utilisateur est redirigé sur cette page après sa connexion, sinon, il est dirigé vers une autre page"

Merci d'avance de votre aide.