[PHP] AJAX, script php et serveur web !
houtta
Messages postés
8
Statut
Membre
-
Archeus01 Messages postés 1566 Date d'inscription Statut Membre Dernière intervention -
Archeus01 Messages postés 1566 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai un probleme que je n'arrive pas à résoudre depuis plusieurs jours ! J'ai un formulaire sur mon site. J'utilise AJAX avec la classe xmlhttprequest. Lorsque j'envoie ma requête rien ne ce passe ; y'a quelque chose qui cloche avec ma fonction open ;
var url = "contact_fichiers/xmlHttpRequest.php";
request.open("POST", url, true);
request.onreadystatechange = showConfirmationContact;
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
request.send(Data);
j'ai affiché ce qui est normalement retourné par le serveur : responseText : j'ai ce message :
"..450 method Not Allowed..
..The requested method POST is not allowed for the URL/contact_fichiers/xmlHttpRequest.php."
j'ai l'impression que mon serveur n'apprécie pas trop mon script PHP. pourtant il a rien d'extraordinaire ;
<?php
$name = $_POST['author'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
// the mail message
function cleanPosUrl ($str) {
return stripslashes($str);
}
$to = "mon_adresse@xxx";
$subject = "[contact form] : " . $subject;
$message = cleanPosUrl($message);
$headers = "From: ".cleanPosUrl($name)." <".$email.">\r\n";
$headers .= "To: ".$to. "\r\n";
$mailit = mail($to,$subject,$message,$headers);
?>
la réponse est bien envoyée par le serveur, elle et disponible mais à priori elle est NOK ;
function showConfirmationContact(){ // fonction lié plus haut à onreadystatechange
if(request.readyState == 4){
alert("Ce message est bien affiché : " + request.responseText);
if(request.status == 200){
alert("Je ne passe pas ici !!!!!!!!!!! ");
} else {
alert("Je passe ici !!!!!!!!!!! ");
}
}
}
Question : J'ai l'impression que mon serveur web (neuf) n'accèpte pas les script PHP. qu'est ce que vous en pensez ?
Merci pour votre aide...
J'ai un probleme que je n'arrive pas à résoudre depuis plusieurs jours ! J'ai un formulaire sur mon site. J'utilise AJAX avec la classe xmlhttprequest. Lorsque j'envoie ma requête rien ne ce passe ; y'a quelque chose qui cloche avec ma fonction open ;
var url = "contact_fichiers/xmlHttpRequest.php";
request.open("POST", url, true);
request.onreadystatechange = showConfirmationContact;
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
request.send(Data);
j'ai affiché ce qui est normalement retourné par le serveur : responseText : j'ai ce message :
"..450 method Not Allowed..
..The requested method POST is not allowed for the URL/contact_fichiers/xmlHttpRequest.php."
j'ai l'impression que mon serveur n'apprécie pas trop mon script PHP. pourtant il a rien d'extraordinaire ;
<?php
$name = $_POST['author'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
// the mail message
function cleanPosUrl ($str) {
return stripslashes($str);
}
$to = "mon_adresse@xxx";
$subject = "[contact form] : " . $subject;
$message = cleanPosUrl($message);
$headers = "From: ".cleanPosUrl($name)." <".$email.">\r\n";
$headers .= "To: ".$to. "\r\n";
$mailit = mail($to,$subject,$message,$headers);
?>
la réponse est bien envoyée par le serveur, elle et disponible mais à priori elle est NOK ;
function showConfirmationContact(){ // fonction lié plus haut à onreadystatechange
if(request.readyState == 4){
alert("Ce message est bien affiché : " + request.responseText);
if(request.status == 200){
alert("Je ne passe pas ici !!!!!!!!!!! ");
} else {
alert("Je passe ici !!!!!!!!!!! ");
}
}
}
Question : J'ai l'impression que mon serveur web (neuf) n'accèpte pas les script PHP. qu'est ce que vous en pensez ?
Merci pour votre aide...
Configuration: Windows XP Firefox 2.0.0.14
1 réponse
-
Zarb cette ligne request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); quand plus loiin tu veux envoyer un mail avec des POST alors que le "standard XMLHttpRequest wrapper is designed for GET requests" ; non?
http://www.infocraft.com/articles/how_to_post_with_ajax/-
excuse moi, je n'ai pas très bien compris ta remarque ! j'ai essayé avec :
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
mais bon c'est kif kif.
normalement mon code devrait marché ! c'est pour ça j'ai pensé au serveur web, car j'ai lu quelque part que certain n'acceptaient pas les script PHP et notamment la fonction mail() mais je ne trouve pas de solution à ça ! -
-
ok j'ai testé avec une page contenant juste un envoi mail (un truc standard http://www.dustindiaz.com/ajax-contact-form/ ). Je n'ai rien reçu sur mon mail, mais j'ai l'impression que le script PHP est traité :
...
$mailit = mail($to,$subject,$message,$headers);
if ( @$mailit )
{ $posStatus = 'OK'; $posConfirmation = 'Success! Your Email has been sent. Hope you enjoyed your stay.'; }
...
le message est bien affiché sur la page à la fin, mais rien sur ma boite mail ! -
-
-