Warning: Wrong parameter count for ereg() je ne comprend pas

Eléphant du PHP | 114 Messages

07 sept. 2006, 15:01

Bonjour a tous j ai une erreur de type
Warning: Wrong parameter count for ereg()
je ne comprend pas je suis débutant j ai trouvé un code source que je suis entrein de recodé mais il me semblerai qu' il yé des erreur donc je me suis mit a la tache de corrigé le code source je voudrai avoir votre avis sur ce code.
Page 1 (login.php)
<?php 
/*Programme		: login.php
 *Description	: Programme de login pour la section à accès réservé du site
 *				  Il propose deux options : 
 *				  1 - s'identifier par un couple nom de login/motde passe
 *				  2 - creer un nouveau compte
 */
@session_start();
include("connection.php");
switch (@$_GET['do'])
{ case "login": 
$connection = mysql_connect($host, $user, $password)
or die ("Connection impossible au serveur");
$db = mysql_select_db($database, $connection)
or die ("La base de donnée ne peut être sélectionnée");
$sql = "SELECT nomLogin FROM Membre
		WHERE nomLogin='$_POST[nomUtilisateur]'";
$result =mysql_query($sql)
or die ("Impossible d'exécuter la requete");
$num = mysql_num_rows($result);
if ($num ==1) //le nom du login à été trouvé
{$sql = "SELECT nomLogin FROM Membre
		WHERE nomLogin='$_POST[nomUtilisateur]'
		AND mPasse=password('$_POST[motDePasse]')";
$result2 =mysql_query($sql)
or die ("Impossible d'exécuter la requete");
$num2 = mysql_num_rows($result2);
if ($num2 >0) // mot de passe correcte
{$_SESSION['auth']="yes";
$logname = $_POST['nomUtilisateur'];
$_SESSION ['logname'] = $logname;
$aujourdhui = date("Y-m-d h:i:s");
$sql = "INSERT INTO Login (nomLogin, dateLogin)
		VALUES ('$logname','$aujourdhui'";
mysql_query($sql)
or die ("Impossible d'exécuter la requete");
/*Attention à l'usage de la function header()
if (!headers_sent()) {
	header ("Location: PageMembres.php");
	exit;*/

include("PageMembres.php");
exit();
}
else // mot de passe incorrect
{ unset ($do);
	$message="Le nom de login'$_POST[nomUtilisateur]'
	existe déja, mais votre mot de passe n est pas correct.<br>";
	include("login_form.inc");
	}
}
elseif ($num ==0) // nom de login absent
{ unset ($do);
$message="Le login n'existe pas.<br>";
	include("login_form.inc");
}
break;
	case"new" :
	foreach($_POST as $clé => $valeur)
	{
		if ($clé !="fax")
		{
			if ($valeur =="")
			{
			unset($_GET['do']);
$message_new = "Il manque des informations obligatoires. Corrigez, svp!";	
include("login_form.inc");
exit();
			}
		}
		if (! ereg("(nom)".$clé))
		{
			if (!ereg("^[A-Za-z' éèêàâîïôûùü-]{1,50}$",
			stripslashes($valeur)))
			{
			unset($_GET['do']);
	$message_new = "$clé n'est pas un nom valide";	
include("login_form.inc");
exit();
			}
		}
$$clé = strip_tags(trim($valeur));
	}

if (! ereg("[0-9]{5}".$_POST['codePostal'])
	or strlen($_POST['codePostal'])!=5)
	{
			unset($_GET['do']);
	$message_new = "Le code postal n'est pas correcte";	
		include("login_form.inc");
			exit();
			}
if (! ereg("^[0-9 - .]{10,14}".$_POST['phone']))
	{
			unset($_GET['do']);
	$message_new = "Le numéro de téléphone n'est pas valide";	
		include("login_form.inc");
			exit();
			}
		if ($_POST['fax'] !="")
		{
			if (! ereg("^[0-9 - .]{10,14}".$_POST['fax']))
	{
			unset($_GET['do']);
	$message_new = "Le numéro de fax n'est pas valide";	
		include("login_form.inc");
			exit();
		}
	}
		if (! ereg("^.+@.+\\..+$".$_POST['email']))
	{
			unset($_GET['do']);
	$message_new = "Votre email n'est pas valide";	
		include("login_form.inc");
			exit();
	}
// Le nom de login existe-t-il déja?
$connection = mysql_connect($host, $user, $password)
or die ("Connection impossible au serveur");
$db = mysql_select_db($database, $connection)
or die ("La base de donnée ne peut être sélectionnée");
$sql = "SELECT nomLogin FROM Membre
		WHERE nomLogin='$_POST[nomMembre]'";
$result =mysql_query($sql)
or die ("Impossible d'exécuter la requete");
$num = mysql_num_rows($result);
if($num >0)
{
	unset($_GET['do']);
	$message_new = "Ce nom est déja utilisé. Choisissez un autre identificateur";	
		include("login_form.inc");
			exit();
	}
	else 
	{ $aujourdhui = date("Y-m-d");
	$département = substr($_POST['codePostal'], 0, 2);//Pour la france
	$sql ="INSERT INTO Membre (nomLogin,création,mPasse,
	prénom,nom,rue,ville,département,codePostal,
	téléphone,fax,email)
	VALUES ('$_POST[nomMembre]','$aujourdhui',password('$_POST[newpass]'),
	'$_POST[prénom]','$_POST[nom]','$_POST[rue]','$_POST[ville]','$département',
	'$_POST[codePostal]','$_POST[phone]','$_POST[fax]','$_POST[email]')";
	if (! mysql_query($sql))
	{ echo mysql_errno().":".mysql_errno();
	exit;
	}
	$nomUtilisateur = $_POST['nomMembre'];
	$_SESSION['auth']="yes";
	$_SESSION['logname']= $nomUtilisateur;
	/*Envoyer un email au nouveau membre*/ 
	$message = "Un nouveau compte de membre vient d'ètre créé pour vous.".
	"Votre identificateur et votre mot de passe sont: ".
	"\n\n\t$nomUtilisateur\n\t$_POST[newpass]\n\n";

	//préparation de l envoye de mail avec un header
	$entete = "De : [email protected]\r\n";
	$sujet ="Votre nouveau compte";
	$adresse = $_POST['email'];
	$mailsend = mail("$adresse","$sujet","$message","$entete");
	
	/*Attention à l'usage de la function header()
if (!headers_sent()) {
	header ("Location: NouveauMembres.php");
	exit;*/

include("NouveauMembre.inc");
exit();}
break;
	default: include("login_form.inc");
	}
	?>
Page 2 (login_form.inc)
<body>
<form id="form1" name="form1" method="post" action="Login.php?do=login">
  <label> 
  <?php 
if (isset($message))
	echo "<tr><td colspan='2' >$message</td></tr>";?>
  Login
  <input name="nomUtilisateur" type="text" id="nomUtilisateur" />
  </label>
  <label>Pass
  <input name="motDePasse" type="password" id="motDePasse" />
  </label><input name="log" type="submit" id="log" value="identifiez vous" />
</form>
<br />
<form id="form2" name="form2" method="post" action="Login.php?do=new">
  <label></label>
<?php 
if (isset($message_new))
	echo "<tr><td colspan='2' ><b>$message_new</b></td></tr>";?><br>
  <label>Nom de membre
  <input name="nomMembre" type="text" id="nomMembre" value="<?php echo @$_POST['nomMembre']?>" maxlength="20" />
  </label><br />
  <label>Mot de passe
  <input name="newpass" type="password" id="newpass" value="<?php echo @$_POST['newpass']?>" maxlength="20" />
  </label><br />
  
  <label>Prenom
  <input name="pr&eacute;nom" type="text" id="pr&eacute;nom" value="<?php echo @$_POST['prénom']?>" />
  </label><br />
  
  <label>Nom
  <input name="nom" type="text" id="nom" value="<?php echo @$_POST['nom']?>" />
  </label><br />
  <label>Rue
  <input name="rue" type="text" id="rue" value="<?php echo @$_POST['rue']?>" />
  </label><br />
  <label>Ville
  <input name="ville" type="text" id="ville" value="<?php echo @$_POST['ville']?>" />
  </label><br />
  <label>Code postal
  <input name="codePostal" type="text" id="codePostal" value="<?php echo @$_POST['codePostal']?>" />
  </label><br />
  
  <label>Téléphone
  <input name="phone" type="text" id="phone" value="<?php echo @$_POST['phone']?>" />
  </label><br />
  
  
  <label>Fax
  <input name="fax" type="text" id="fax" value="<?php echo @$_POST['fax']?>" />
  </label><br />
  
  <label>email
  <input name="email" type="test" id="email" value="<?php echo @$_POST['email']?>" />
  </label><br />
  <label>
  <input type="submit" name="Submit" value="Enregistrez vous" />
  </label>
</form>
<p>&nbsp;</p>
</body>
Page 3 (NouveauMembre.inc)
<?php
@session_start();
if (@$_SESSION['auth'] !="yes")
{include ("login.php");
/*header("Location: login.php");*/
exit();
}
include("connection.php");
$connection = mysql_connect($host, $user, $password)
or die ("Connection impossible au serveur");
$db = mysql_select_db($database, $connection)
or die ("La base de donnée ne peut être sélectionnée");
$sql= "SELECT prénom,nom FROM Membre
	WHERE nomLogin='{$_SESSION['logname']}'";
$result =mysql_query($sql)
or die ("Impossible d'exécuter la requete");
$ligne = mysql_fetch_array($result.MYSQL_ASSOC);
extract($ligne);
echo "Bienvenue à $prénom $nom\n";
?>
Donc j ai modifier déja quelque erreur mais il y en reste je pensse 2 ou 3 qui faille regardé.Le problème c est que je manque d expèrience donc merci d avance pour votre aide.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

07 sept. 2006, 15:17

C'est écrit :
ereg("(nom)".$clé)
C'est faux il faut écrire :
ereg("(nom)", $clé)
Pas de point mais une virgule : ereg prend 2 paramètres
Corrige aussi les autres ereg où il y a un point à la place de virgule.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 114 Messages

07 sept. 2006, 15:33

Merci pour votre aide j' ai rectifié l'erreur mais il ya une autre erreur qui est apparue voici l'erreur
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\program files\easyphp1-8\www\partie membres\login.php on line 160

Warning: main(NouveauMembre.inc): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\partie membres\login.php on line 167

Warning: main(): Failed opening 'NouveauMembre.inc' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\program files\easyphp1-8\www\partie membres\login.php on line 167
pour cette erreur là je l ai comprise car je n ait pas de server smtp
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\program files\easyphp1-8\www\partie membres\login.php on line 160
mais les autres je ne sais pas.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

07 sept. 2006, 15:36

Failed opening 'NouveauMembre.inc' for inclusion parle d'un fichier appelé par ton programme par une fonction include() et qui n'est pas trouvé. (vu que t'as pompé le code d'ailleurs tu dois récupèrer ce fichier aussi)
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 114 Messages

07 sept. 2006, 15:53

Merci pour l information. Le code provient d'un livre je recode tout.Le code n'ai pas été récupéré du net comme le 3/4 des gens font. C est pour cela que je demande un peut d aide pour comprendre la source.
(vu que t'as pompé le code d'ailleurs tu dois récupèrer ce fichier aussi)
:wink:
Merci bc pour votre aide.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

07 sept. 2006, 16:09

Merci pour l information. Le code provient d'un livre je recode tout.Le code n'ai pas été récupéré du net comme le 3/4 des gens font. C est pour cela que je demande un peut d aide pour comprendre la source.
(vu que t'as pompé le code d'ailleurs tu dois récupèrer ce fichier aussi)
:wink:
Merci bc pour votre aide.
Ma remarqe n'était pas péjorative :wink:
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 114 Messages

07 sept. 2006, 16:13

ok no souci :P

Eléphant du PHP | 114 Messages

07 sept. 2006, 16:15

Encore mille merci pour ton aide je v'ai mettre résolut sur ce poste