JeuWeb - Crée ton jeu par navigateur

Version complète : [Résolu] Problème avec ereg()
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
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 "")
refuser = ne pas accepter Smile

Comment on écrit la négation en PHP ?
Au hasard, je dirais !


Sephi-Chan, mais le hasard, quand on fait des tirages rapprochés dans le temps…
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:
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à.
@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...
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
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.
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';
}
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
Pages : 1 2