nitro007
Invité
|
 |
« le: 04 Novembre 2008, 02:52:45 » |
|
Bonjour, sur mon site wii-dark, dans le forumulaire d'inscription, j'aimerais le sécurisé plus. Par exemple, le login, pourrais-je interdire des pseudos bizarres comme ...()"" ou des mots choisis ? Y-at-il une fonction aussi qui pourrrait changer du code en texte ? par exemple interdire <textera></textera>. Entouca voici le lien pour voir mon formulaire d'inscription de wii-dark ( http://wii-dark.site40.net/inscription.php)
|
|
|
Journalisée
|
|
|
|
Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
|
 |
« le: 04 Novembre 2008, 02:52:45 » |
|
|
|
|
Journalisée
|
|
|
|
Drambam
|
 |
« Répondre #1 le: 04 Novembre 2008, 10:19:25 » |
|
Si tu veux vraiment interdire certains caractères en particulier, je pense judicieux d'utiliser des Expression régulières. Je crois qu'il y a de bons exemples sur le Site du zero, mais attention, c'est assez compliqué! A voir si d'autres façons sont possibles ...
|
|
|
Journalisée
|
|
|
|
Arkhena
|
 |
« Répondre #2 le: 04 Novembre 2008, 12:14:11 » |
|
Effectivement, l'utilisation d'un contrôle javascript avec les expressions régulières est la solution la plus élégante. Ce n'est pas si compliqué que ça... Voici la doc de l'objet regexp en js : http://www.w3schools.com/js/js_obj_regexp.asp
|
|
|
Journalisée
|
|
|
|
nitro007
Invité
|
 |
« Répondre #3 le: 04 Novembre 2008, 14:16:22 » |
|
J'avoue c'est pas mon fort les expressions régulières, y-a-til quelqu'un qui connait ca et qui pourrait interdire des >/"$% dans les formualires ?
|
|
|
Journalisée
|
|
|
|
nitro007
Invité
|
 |
« Répondre #4 le: 04 Novembre 2008, 16:01:30 » |
|
J'ai réussi a trouvé quelque chose, c'est-à-dire le saisie login est vérifié pour qui a pas des peudo bizarrs comme ,.-_. Le code qui suit:<?php if (isset($_POST['login'])) { $_POST['login'] = htmlspecialchars($_POST['login']); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
if (preg_match('#^[a-zA-Z0-9]+$#', $_POST['login'])) { $erreur='le login '.$_POST['login'].' est valide'; else { $erreur='Le login ' . $_POST['login'] . ' n\'est pas valide, recommencez !'; } } ?> Pouvez-vous m'aider a l'intégrer au code suivant:<?php // on teste si le visiteur a soumis le formulaire if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { // on teste l'existence de nos variables. On teste également si elles ne sont pas vides if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])) && (isset($_POST['sexe']) && !empty($_POST['sexe'])) && (isset($_POST['captcha']) && !empty($_POST['captcha']))) { // on teste les deux mots de passe if ($_POST['pass'] != $_POST['pass_confirm']) { $erreur = 'Les 2 mots de passe sont différents.'; } else { $base = mysql_connect ('', '', ''); mysql_select_db ('', $base); // on recherche si ce login est déjà utilisé par un autre membre $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); $login = $_GET['login']; if ($data[0] == 0) { $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string($_POST['jeuxprefere']).'", "'.md5(mysql_escape_string($_POST['pass'])).'","'.mysql_escape_string($_POST['sexe']).'", "'.mysql_escape_string($_POST['url_avatar']).'", "' . time() . '", "'.mysql_escape_string($_POST['site_web']).'", "'.mysql_escape_string($_POST['nb_points']).'", "'.mysql_escape_string($_POST['rang']).'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); session_start(); $_SESSION['login'] = $_POST['login']; $_SESSION['pass'] = $_POST['pass']; setcookie('login', ''.$_SESSION['login'].'', time()+30 * 24 * 3600); setcookie('pass', ''.$_SESSION['pass'].'', time()+30 * 24 * 3600); header('Location: verifmembre.php'); exit(); }
else { $erreur = 'Un membre possède déjà ce login.'; } } } else { $erreur = 'Au moins un des champs est vide.'; } } ?>
|
|
« Dernière édition: 04 Novembre 2008, 21:25:17 par nitro007 »
|
Journalisée
|
|
|
|
Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
|
 |
« Répondre #4 le: 04 Novembre 2008, 16:01:30 » |
|
|
|
|
Journalisée
|
|
|
|
K@cem
|
 |
« Répondre #5 le: 04 Novembre 2008, 19:48:23 » |
|
Tu as essayé de le faire ? Tu coince ou ? Sinon évite stp d'écrire avec de gros caractères ...
|
|
|
Journalisée
|
Le support ne se fait pas par MP, merci de le respecter !
|
|
|
nitro007
Invité
|
 |
« Répondre #6 le: 04 Novembre 2008, 20:19:30 » |
|
oui mais ca marche pas, ya trop de if et de else. Svp aide-moi
|
|
|
Journalisée
|
|
|
|
Arkhena
|
 |
« Répondre #7 le: 05 Novembre 2008, 10:16:12 » |
|
Salut, Je pense qu'il n'est absolument pas judicieux de faire cette vérification en php. En effet, cela encombre le serveur pour rien. Une vérification de syntaxe sur une entrée se fait sur le client donc en js... Ton expression régulière est indiquée dans le code : ^[a-zA-Z0-9]+$, voici son explication : - ^ signifie qu'on est en début de chaîne - $ signifie qu'on est en fin de chaîne Donc ton expression régulière doit fonctionner sur toute la chaîne que tu testes - [a-zA-A0-9] signifie que seuls les lettres de a à z, de A à Z et les chiffres (de 0 à 9) sont autorisés - + signifie qu'il peut y avoir de 1 à plusieurs caractères <script type="text/javascript"> function verifLogin() { var patt1=new RegExp("^[a-zA-Z0-9]+$"); if (!patt1.exec(document.nomduform.nomduchamplogin)) alert('Le login est incorrect. Les caractères spéciaux ne sont pas autorisés.'); else document.nomduform.submit; } </script> Attention, ce script n'autorise pas les accents pour les logins... A toi de le modifier si tu souhaites qu'un login puisse contenir des accents. Cordialement, Arkhena
|
|
|
Journalisée
|
|
|
|
nitro007
Invité
|
 |
« Répondre #8 le: 05 Novembre 2008, 13:57:42 » |
|
Ou dois metrre ce script dans ma page
|
|
|
Journalisée
|
|
|
|
Arkhena
|
 |
« Répondre #9 le: 05 Novembre 2008, 18:17:31 » |
|
La fonction doit être appelée au clic du bouton de validation du formulaire. Je te laisse effectuer des recherches sur le net sur l'utilisation des évènements pour appeler des fonctions en js.
Si la question portait plus sur le "où est-ce qu'on met du javascript dans une page html", la réponse est la même : cherche sur le net!
|
|
|
Journalisée
|
|
|
|
nitro007
Invité
|
 |
« Répondre #10 le: 05 Novembre 2008, 18:26:55 » |
|
Ton explication ma servit a rien, j'ai trouvé ou mettre le regex en PHP dans ma page !!!! 
|
|
|
Journalisée
|
|
|
|
Drambam
|
 |
« Répondre #11 le: 05 Novembre 2008, 19:16:02 » |
|
Même pas un merci... J'aurais pas apprécié...
|
|
|
Journalisée
|
|
|
|
MIkE
|
 |
« Répondre #12 le: 05 Novembre 2008, 19:19:14 » |
|
Moi je dis merci Arkhena, parce que cette explication servira un jour à quelqu'un (qui utilise la recherche du forum  ).
|
|
|
Journalisée
|
Le support et les demandes se font sur le forum. Aucune réponse n'est apportée aux demandes par message privé. Soutenez Webou en souscrivant à une offre 
|
|
|
K@cem
|
 |
« Répondre #13 le: 05 Novembre 2008, 22:12:11 » |
|
Heureusement que je n'avais pas fais la regex au début, j'ai préféré d'abord savoir s'il est sérieux ou pas ce qui n'est pas le cas  Sinon par rapport à ta réponse Arkhena, je ne suis pas d'accord. On peut très facilement contourner la vérification du pseudo en JS, de plus en PHP ce n'est pas si lourd que ça quand même  k@cem Edit : J'ai rien dit par rapport au code d'Arkhena 
|
|
« Dernière édition: 07 Novembre 2008, 20:15:07 par k@cem »
|
Journalisée
|
Le support ne se fait pas par MP, merci de le respecter !
|
|
|
Arkhena
|
 |
« Répondre #14 le: 06 Novembre 2008, 10:29:30 » |
|
Ton explication ma servit a rien, j'ai trouvé ou mettre le regex en PHP dans ma page !!!!  ça m'apprendra à avoir voulu t'aider... Ne t'inquiète pas, on ne m'y reprendra plus!
|
|
|
Journalisée
|
|
|
|
|