Perte des informations lors d'une erreur (Solutionné)

Avant toute chose, bonjour :slight_smile:

Donc voila mon problème, j’ai créé un petit formulaire php dans le but d’envoyer des sms au sein de mon entreprise via nagios, mais un petit problème surgit, lorsqu’un numéro de téléphone n’est pas valide, le message que l’on à precedement tapé disparaît, je voudrais pouvoir conserver le texte malgré l’erreur de saisie, pour pas que l’utilisateur est de nouveau a retapé son texte…

Voici mon code :

<?php
//Debut de la requete php
if (isset($_POST['telephone']) AND isset($_POST['texte'])) // Si le telephone et le texte sont remplis
{
    if ($_POST['texte']=='') {     // Si un des champs est manquant

?>
Veuillez renseigner correctement les champs, merci.

<?php } if (!is_numeric($_POST['telephone'])) { ?>

Veuillez indiquer un numéro de téléphone valide.

<?php } else // Si les champs sont corrects { exec ('/usr/local/nagios/libexec/sendsms.sh -m "'.$_POST['texte'].'" -n '.$_POST['telephone']); ?>
      Votre message &agrave; bien &eacute;t&eacute; trait&eacute;.
<?php } } ?>

Veuillez entrer le numéro de téléphone




Votre message

Edité le 24/07/2007 à 13:04

En fait, tu ne perds pas tes infos, tu les ignores.
Tu fais un submit, donc tu réaffiches une nouvelle page. C’est à toi de forcer les valeurs lors de l’affichage avec le contenu du $_POST
Le plus simple serait de faire la vérication en javascript et de n’envoyer vers le serveur que si tout est correct

Ok, mais il n’y a donc aucune verification coté serveur, ce qui peut poser problème, si certaines personnes desactives les controles java, ils passent à coté :s (à moins que je raconte une betise la :slight_smile: )

Et lorque tu dis qu’il faut forcer les valeurs lors de l’affichage, il faut procéder de quelle manière ?? Merci :wink:

Tu peux forcer une valeur avec value


[quote=""] Ok, mais il n'y a donc aucune verification coté serveur [/quote] Pas forcément ; le fait de vérifier au départ ne t'empêche pas de vérifier à l'arrivee. Et si certaines personnes ont désactivé leur javascript, elles auront (et elles seulement) à retaper le tout. A voir si c'est vraiment gênant et quel pourcentage de tes clients cela touche

Ok, je te remerci pour ta compréhension, j’ai donc réalisé l’opération en forçant, j’ai rajouté ceci :

<?php echo isset($_POST['texte'])?$_POST['texte']:' ' ?>

Mais le problème c’est que le texte reste même après que le message soit envoyé :s Il faut que le champs texte soit vierge, si le message a bien été envoyé.

Et c’est juste un projet pour l’entreprise, nous possédons l’outils de supervision nagios, donc autant profité du forfait sms illimité :wink:

Après ton exec :

exec (’/usr/local/nagios/libexec/sendsms.sh -m “’.$_POST[‘texte’].’” -n '.$_POST[‘telephone’]);

Essaye ça :

unset($_POST[‘texte’]);

ou

$_POST[‘texte’] = null;

<?php echo isset($_POST['texte'])?$_POST['texte']:' ' ?>

je suppose que tu l’as mis à la place des xxxx ?
fais plutôt

<?php echo $valeurTexte; ?>

tu initialises ton $valeurTexte en début de programme.
Et pour éviter la réinscription en cas de succès, il te suffit de le repasser à chaine vide juste après ta ligne exec

Voila mon problème est résolu, en bref j’ai procedé de cette manière :

  • j’ai rentré cela entre les balises “<?php echo isset($_POST['texte'])?$_POST['texte']:'' ?>”

-puis à la fin de mon exec "$_POST[‘texte’] = ‘’; "

Cela me donne le résultat que je désirais, merci de vos precieux conseil :wink:

Si cela n’est pas correct au niveau du langage, indiquez le moi :slight_smile:

ça l’est, ça l’est :slight_smile:

aidez moi le site java.com internet explorer me met serveur introuvable comment je fait:heink:

Et c’est quoi le rapport avec

  1. PHP
  2. la question du sujet

Et surtout, l’intérêt du message, là?

Voir même, le sens de la phrase ?