Récupération de la valeur d'une variable

Fermé
brunos Messages postés 3 Date d'inscription samedi 27 février 2010 Statut Membre Dernière intervention 23 avril 2013 - 22 avril 2013 à 18:46
gardiendelanuit Messages postés 1769 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 19 novembre 2016 - 23 avril 2013 à 12:06
Bonjour à tous.

J'utilise un script mélange de javascript et php sur plusieurs sites depuis des années sans problème pour l'envoi des données d'un formulaire par mail.

Sur le formulaire sur lequel je me penche aujourd'hui, rien à faire, il ne fonctionne pas. Il est hébergé chez OVH (comme les autres d'ailleurs).

Je cherche tout simplement à passer la valeur ok et à la récupérer ensuite pour envoyer effectivement le mail et pour afficher le message indiquant la bonne marche de l'envoi.

La valeur est bien passée avec l'URL, mais il affiche toujours le formulaire au lieu d'envoyer le mail et le message

J'ai épuré au maximum pour chercher l'erreur, je vous le livre tel quel :

######################################################
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

<head>

<script language="JavaScript">
<!--

function verif()
{

  ok=document.contact.ok.value;
     document.location='contact.php?ok='+ok+'';
}
   
//-->
</script>

</head>

<body leftmargin=0 rightmargin=0 topmargin=0>

<?php
if ($ok!="toto")
{
echo "<script>alert(\"ok != toto\")</script>";

print(" 
<div align=\"center\">
<form name=\"contact\" action=javascript:void>
	<table width=\"610\" border=\"0\" cellpadding=\"1\" cellspacing=\"0\" align=\"center\">
  <tr>
	  <td align=\"center\" height=\"20\" colspan=\"2\"><b>Formulaire de contact</font></b>
   </td>
 </tr>
 <tr>
  <td align=\"center\" >
   <input type=\"reset\" name=\"reset\" value=\"Effacer\">
  </td>
  <td align=\"center\" >
  <input type=\"hidden\" name=\"ok\" value=\"toto\"> 
   <input type=\"button\" name=\"submit\" value=\"Envoyer\" onclick=\"verif()\">
  </td>
 </tr>
</table>
</form>
<br/>
</div>
");
}
if ($ok=="toto")
{

echo "<script>alert(\"ok = toto\")</script>";

	
    $To="toto@toto.com";
    $titre="test";
    $message="Bonjour toto";

    mail($To, $titre, $message);
?>
<br/>
<table width="500" border="1" cellpadding="0" cellspacing="0" align="center">
	<tr>
	  <td align="center" class="normal"><b>
 		   Votre demande à bien été envoyée, merci.<br/>
 		   Nous allons vous répondre le plus rapidement possible.</b>
	  </td>
	 </tr>
</table>

<?php
}
?>

</body>
</html>

#######################################################

Si quelqu'un avait une idée .... je l'en remercie d'avance !

2 réponses

gardiendelanuit Messages postés 1769 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 19 novembre 2016 264
23 avril 2013 à 09:12
Bonjour

Ce serait pas plutôt $_GET['ok']; et non $ok; ?
0
brunos Messages postés 3 Date d'inscription samedi 27 février 2010 Statut Membre Dernière intervention 23 avril 2013
23 avril 2013 à 10:10
Et bien j'utilise la même méthode depuis des années sans soucis...

Le plus étrange, c'est que exactement la même page fonctionne parfaitement en mettant le site sur un hébergement PHPNET et ne fonctionne pas sur un hébergement ovh où il est prévu d'être en place !!!???

Étonnant non ?
0
gardiendelanuit Messages postés 1769 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 19 novembre 2016 264
23 avril 2013 à 10:37
Ca m'étonne énormément d'avoir accès à ce type de variable extérieur sans faire un extract php, ce serait un manque de sécurité considérable voir énorme..
0
brunos Messages postés 3 Date d'inscription samedi 27 février 2010 Statut Membre Dernière intervention 23 avril 2013
23 avril 2013 à 11:27
Bonjour gardiendelanuit et merci de te pencher sur mon problème.

Je passe simplement les valeurs par le post et je t'assure que ça marche très bien sur plein d'autre sites, (et que exactement cette même page fonctionne chez un autre hébergeur) même si ça peux poser un problème de sécu.

A noter que j'ai fais des test avec un $_POST['ok'] et que ça ne fonctionne pas non plus ...

Pour preuve, je viens de mettre le site en prod car ça devenait urgent, et pour la page de formulaire, j'ai fait un frameset dans lequel j'appelle la même page de formulaire mais placée sur un autre hébergeur pour qu'elle fonctionne.

C'est pas terrible, et et va tout de même falloir changer ça, mais de cette façon je récupère bien la variable et surtout je reçois bien le mail avec les valeurs.

Je ne comprends vraiment pas ....
0
gardiendelanuit Messages postés 1769 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 19 novembre 2016 264
23 avril 2013 à 12:06
Ha d'accord tu passes bien par $_POST, hé bien ça semble en effet bizarre, il faut que je test la chose.
C'est sur un serveur qui n'a jamais marché depuis que tu l'utilises? Ca pourrait venir du php.ini avec les conf sur les variables super globales.
Sinon pour ce que tu fais l'ajax serait pas la meilleur solution?
0