Page 1 sur 1

Ajax + class PHP

Posté : 10 janv. 2007, 15:43
par Maitrepylos
Bonjour,

je suis en apprentissage d'Ajax, et donc j'essaye plusieurs chose dont ceci

j'ai le formulaire suivant
<form name="formulaire">
<input type="text" onkeyup="verifMail(); return false" name="email" id="valueEmail"><span id="idEmail"></span>
</form>
et le script Ajax

Code : Tout sélectionner

var http; // Notre objet XMLHttpRequest function createRequestObject() { var http; if(window.XMLHttpRequest) { // Mozilla, Safari, ... http = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer http = new ActiveXObject("Microsoft.XMLHTTP"); } return http; } function verifMail() { //var content = document.getElementById('valueEmail'); var content = document.formulaire.email.value; http = createRequestObject(); http.open('get', 'verifEmail.php?email='+content, true); http.onreadystatechange =traiteEmail; http.send(null); } function traiteEmail() { if(http.readyState == 4) { document.getElementById('idEmail').innerHTML = http.responseText; } }
quand je traite le verifMail avec une méthode procédurale :
<?php
$regex = "/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i";
$courriel = $_GET['email'];


if (preg_match($regex, $courriel)) {
    echo "<img src=\"ico_check_blu.gif\">";
} else {
    echo "L'adresse <b>$courriel</b> n'est pas valide";
}



?>
cela fonctionne nickel

par contre si j'utilise une classe faisant la même chose :
<?php

class verifMail {

	private $regex;
	private $couriel;

	function __construct($mail)
	{

		$this->regex = "/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i";
		$this->couriel = $mail;

		if (preg_match($this->regex, $this->courriel))
		{
			echo "<img src=\"ico_check_blu.gif\">";
		}
		else
		{
			echo "L'adresse <b>$courriel</b> n'est pas valide";
		}

	}
}

$objet = new verifMail($_GET['email']);



?>


Plus rien ne fonctionne, y a t-il une raison à cela?

Merci de votre aide.

MaitrePylos

Posté : 10 janv. 2007, 15:50
par Ryle
Es-tu en php5 ? je ne suis pas sur que la version 4 gère la méthode __construct() comme constructeur par défaut... Tu peux essayer de la renommer avec le nom de la classe des fois que cela changer quelque chose :)

Sinon, ouvre l'url 'verifEmail.php?email=' avec l'email qui va bien, directement dans ton navigateur, tu profiteras au moins des éventuels messages d'erreur :)

Posté : 10 janv. 2007, 16:09
par Maitrepylos
J'utilise php5.2, en fait ce que je ne comprend pas apparament c'est la fonction preg_match qui ne fonctionne pas.

Puisque si je passe [email protected], il me met que l'adresse n'est aps valide!

Posté : 10 janv. 2007, 16:11
par jojolapine
essaye de changer de masque pour voir:
$valid = "#^[^-_\.][a-z0-9-_\.]+[^-_\.]@[^-_\.][a-z0-9-_\.]+[^-_\.]\.[a-z]{2,4}$#";

Posté : 10 janv. 2007, 17:06
par Maitrepylos
Nickel :lol:

Merci