[PHP] AJAX, script php et serveur web !

Fermé
houtta Messages postés 8 Date d'inscription samedi 26 avril 2008 Statut Membre Dernière intervention 27 avril 2008 - 26 avril 2008 à 02:42
Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 - 27 avril 2008 à 01:23
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...
A voir également:

1 réponse

Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 449
26 avril 2008 à 02:53
Zarb cette ligne request.setRequestHeader("Content-Type","application/x-www-form-urlencoded&­quot;); 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/
0
houtta Messages postés 8 Date d'inscription samedi 26 avril 2008 Statut Membre Dernière intervention 27 avril 2008
26 avril 2008 à 03:11
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 !
0
Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 449 > houtta Messages postés 8 Date d'inscription samedi 26 avril 2008 Statut Membre Dernière intervention 27 avril 2008
26 avril 2008 à 03:25
Tu peux faire une page complètement à part avec juste une fonction d'envoi mail pour tester ça passe par rapport au serveur...
0
houtta Messages postés 8 Date d'inscription samedi 26 avril 2008 Statut Membre Dernière intervention 27 avril 2008 > Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022
26 avril 2008 à 03:58
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 !
0
houtta Messages postés 8 Date d'inscription samedi 26 avril 2008 Statut Membre Dernière intervention 27 avril 2008 > houtta Messages postés 8 Date d'inscription samedi 26 avril 2008 Statut Membre Dernière intervention 27 avril 2008
26 avril 2008 à 04:36
désolé je me suis trompé, le message "Success! Your Email has been sent." était envoyé ailleur dans le code html. donc à mon avis le script PHP n'est pas correctement traité !

je vais testé avec un autre exemple... mais bon je commence à avoir des doutes !
0
houtta Messages postés 8 Date d'inscription samedi 26 avril 2008 Statut Membre Dernière intervention 27 avril 2008 > houtta Messages postés 8 Date d'inscription samedi 26 avril 2008 Statut Membre Dernière intervention 27 avril 2008
26 avril 2008 à 05:14
oué bon, je croix que le serveur neuf n'aime pas trop le PHP !

comment puis je faire cela sans passer par le script PHP et la fonction mail() ?
0