JeuWeb - Crée ton jeu par navigateur
[Résolu] Problème avec ereg() - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Problème avec ereg() (/showthread.php?tid=2330)

Pages : 1 2


[Résolu] Problème avec ereg() - Rouge - 27-01-2008

Bonjour, j'ai un petit soucis avec ce script d'authentification:
Code PHP :
<?php
include 'connexion.php';
$login=addslashes($_POST['pseudo']);
if(
ereg('^[a-zA-Z]+',$_POST['pseudo']))$login=addslashes($_POST['pseudo']);
else
$login="";
etc....
En fait, il semble fonctionner correctement, sauf que je ne sais pas quoi mettre là dedans pour empécher la saisie de chiffres et de caractères spéciaux....
(j'ajoute que les seuls carcs spéciaux acceptés restent et doivent rester les ' et "")


RE: problème avec ereg? - naholyr - 27-01-2008

refuser = ne pas accepter Smile

Comment on écrit la négation en PHP ?


RE: problème avec ereg? - Sephi-Chan - 28-01-2008

Au hasard, je dirais !


Sephi-Chan, mais le hasard, quand on fait des tirages rapprochés dans le temps…


RE: problème avec ereg? - Rouge - 30-01-2008

Oui, mais quelle syntaxe exacte?
ceci,
Code PHP :
<?php
include 'connexion.php';
if(!
ereg('^[a-zA-Z.+\'.+\"$]', $_POST['pseudo']))$login=addslashes($_POST['pseudo'])
{
echo
'Le pseudo est incorrect car il y a des caractères spéciaux';
}
else {
$login="";
}
etc, etc, etc
me retourne un parse error ligne 5 :heuuu:


RE: problème avec ereg? - Ogham - 30-01-2008

salut,

Un exemple adaptable à ton cas:

Code PHP :
<?php 
$la_syntaxe_que_tu_acceptes
= ereg('^[a-zA-Z.+\'.+\"$]*$', $pseudo);
if(
$la_syntaxe_que_tu_acceptes==true)
{
//le pseudo est correcte
}
else
{
//le pseudo n'\est pas correcte
}

J'ai pas testé mais l'idée est là.


RE: problème avec ereg? - daroth - 30-01-2008

@Rouge : C'est normal, tu as oublié le point virgule en fin de ligne 3!
Toujours regarder les lignes au dessus en cas d'erreur, histoire de bien vérifier la syntaxe, les points virgules, les parenthèses...


RE: problème avec ereg? - jo_link_noir - 30-01-2008

En fait, c'est pas que le point virgule, c'est le if en général

Le 1er regex étais plus près de ce que tu demandais. Celui là devrais aller : ereg('^[a-zA-Z\'"]*$', $_POST['pseudo'])
Et pour faire un refus de caractère dans un regex on utilise ^ dans une classe
par exemple [^a-zA-Z] va refuser toutes les lettres

bonne nuit


RE: problème avec ereg? - loka - 30-01-2008

Soit dans ton if tu as une parenthèse fermante en trop, soit ton $login=add... est mal placè (à mettre dans le if).

Dans tous les cas, ta syntaxe est mauvaise.


RE: problème avec ereg? - Rouge - 30-01-2008

Merci déjà de vos réponses, tout le monde avait un peu raison, j'ai modifié le code ainsi qui semble un peu mieux mais qui affiche à chaque fois
le "echo"..... en testant avec des quotes ou sans, d'ailleurs.
Donc, sauf erreur, je pense que la syntaxe dans le ereg est presque bonne mais il manque encore un truc :pleure2:
(j'ai mis un antislashe entre ' et " mais resultat identique)

Code PHP :
<?php
include 'connexion.php';
$login= ereg('^[a-zA-Z\'"]*$', $_POST['pseudo']);
if(
$login==true)
{
//le pseudo est correct
$login="";
}
else
{
//le pseudo n'\est pas correct
echo 'Le pseudo est incorrect car il y a des caractères spéciaux';
}



RE: problème avec ereg? - appzer0 - 31-01-2008

Code PHP :
<?php

if(isset($_POST['pseudo']))
{
$login= ereg('^[a-zA-Z\'"]*$', $_POST['pseudo']);
if(
$login==true)
{
//le pseudo est correct
$login=$_POST['pseudo'];
echo
$login;
}

else
{
//le pseudo n'\est pas correct
echo 'Le pseudo est incorrect car il y a des caractères spéciaux';
}
}

else
{
?>
<form action="login_test.php" method="post">
<input type="text" name="pseudo">
<input type="submit">
</form>
<?php
}

?>

Testable sur http://www.chobodo.com/test/login_test.php