Ses derniers messages sur les forums
Je n'utilise pas PEAR personnellement, donc je ne connais pas vraiment la classe Mail_mimeDecode :/
Mais si tu fais un print_r de $message, en théorie, tu verras toutes les propriétés de l'objet (ta proriété 'bla' me laisse perplexe).
Et le plus simple, c'est de donner un name du genre name="toto[]" à ton select.
Comme cela, tu récupéreras les values des options de ton select dans le tableau $_GET['toto'] ou $_POST['toto'].
Peut etre que tu n'as qu'une personne qui appartient à une team non ?
Si tu veux lister tous les membres, même ceux sans team, fais un LEFT JOIN.
Avec juste le code que tu nous montres, non, cela ne fonctionnera pas.
Rapellons le principe :
- au moment où la personne se logue, il te faut initialiser un cookie
- sinon, quand tu as une personne qui n'est pas loguée, si elle a ce cookie, tu la logues
Dans ton code, qu'as tu fais ?
=> tu as initialisé deux cookies quand le visiteur n'est pas logué (if(!isset($_SESSION['login']))) :
- un cookie de nom 'pseudo' contenant la chaine de caractères 'login'
- un cookie de nom 'pass' contenant la chaine de caractères 'pass'
2 erreurs :
- il faut créer un cookie quand la personne est loguée et non quand elle n'est pas logué
- en valeur de cookie, il faut mettre un truc qui te permette de reconnaitre l'identitié du visiteur. Prenons ton exemple : un visiteur va sur ton site, son cookie à la valeur 'login'. Ce n'est pas avec cette information que tu vas savoir qu'il s'agit du membre "duchmol".
Attention aussi à ne pas juste mettre le nom du membre en cookie. En effet, rien de plus simple que de construire un cookie et ainsi de se faire passer pour un autre membre.
Dans ce genre de cookie, il faut mettre un code qui a priori est indevinable pour un être humain (pas l'id du membre, pas son pseudo, etc.) mais qui te permettra d'identifier à coup sur un membre.
Personnellement, sur lephpfacile, dans ce cookie, il s'agit d'un md5 du pseudo du membre concaténé avec un "grain de sel" (il s'agit d'une petite chaine de caractères invariable que moi seul connait). Comme tous les pseudos du site sont différents, je suis sur de l'unicité de ce cookie et de ne pas confondre deux membres.
Je n'ai pas lu ton code.
En effet, 500 lignes de code (ca serait cool d'essayer d'isoler le problème :p) sans utiliser le BB-Code, personnellement, je ne lis plus. A ce propos, merci de lire les conditions d'utilisation des forums.
Mais pour un select multiple, il faut que les options soient "activées" pour pouvoir les récupérer. Et le plus simple, c'est de donner un name du genre name="toto[]" à ton select.
Comme cela, tu récupéreras les values des options de ton select dans le tableau $_GET['toto'] ou $_POST['toto'].
PS : en utilisant la fonction "recherche" de mon navigateur, je n'ai pas trouvé de select multiple dans ton code
Il te faut utiliser la fonction
stripslashes lors de l'affichage de tes données.
Marrante ta phrase
Mais alphanumérique, ca veut dire lettres ET chiffres.
Donc a priori le comportement est correct.
Et mysql_escape_string ne fait qu'échapper les données que tu injectes dans une requete SQL, cela ne peut pas fausser un test alphanumérique.
Ce que je veux dire c'est que tu as 2 phases distinctes lors du déroulement du code :
- une phase ou tu testes tes données (message d'erreur ou non)
- une phase où tu fais ton insert SQL, et la tu utilises mysql_escape_string pour te protéger des injections SQL
Je ne suis pas sur de comprendre ton soucis, et je ne vois pas trop le rapport avec mysql_escape_string.
Le control alpha numérique n'est plus valide. Ce qui veut dire que je peux ajouter des chiffres au login et au mot de passe.
Le controle alphanumérique se fait avant de faire ton mysql_escape_string, donc il n'y a pas de lien.
D'autre part, les chiffres sont considérés comme valides avec la fonction ctype_alnum. Pour t'en convaincre, fais un simple test du genre :
<?php
$pom = 'polom1';
if (ctype_alnum($pom)) echo 'alnum';
else echo 'pas alnum';
?>
Et lorsque j'envoie le mot de passe : ' or 1=1--, là j'ai une alerte qui me dit que le mot de passe doit être alphanumérique.
Ce qui est logique car l'espace ou les tirets ne sont pas considérés comme valides.
En effet, prenons l'exemple suivant :
<?php
$pom = ' or 1=1--';
if (ctype_alnum($pom)) echo 'alnum';
else echo 'pas alnum';
?>
Le résultat est 'pas alnum'.
Je ne connais pas bien les ETL, mais il n'y a pas de raison qu'un truc aussi évolué ne soit pas capable d'importer 2 fois par jour un "diff" remettant à jour un stock de données.