*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
24 Mai 2012 à 05:59:53

Connexion avec identifiant, mot de passe et durée de la session



 

Php - Affichage des variables -1


« sujet précédent | | sujet suivant »
Pages: [1] Imprimer
Auteur Fil de discussion: Php - Affichage des variables -1  (Lu 1547 fois)
oscardo
Nouveau membre
*

Points gagnés: 0
Messages: 8



Voir le profil
Php - Affichage des variables -1
« le: 05 Juin 2007 à 13:55:25 »

Je tente d'apprendre le php et en fait, j'ai plusieurs problèmes.
Heureusement, je viens de découvrir votre site et je le trouve formidable car c'est exactement ce que je cherche depuis 2 mois ( réaliser un formulaire, le mettre en ligne et récupérer par mail ou dans une base Mysql les infos du formulaire

Voici un 1 er problème
Théoriquement je ne me débrouille pas trop mal en local avec EasyPhp ( sauf lorsqu'il s'agit de récupérer un mail à partir d'une page php ).
Pour tester mes pages, je les héberge gratuitement chez IFRANCE et TISCALI ( Alice ).
J'ai réalisé un formulaire avec 2 fichiers dont voici un extrait:
Form1.php
<html>
<body>
<form method="post" action="Recup1.php">
Nom : <input type="text" name="nom" size="12"><br>
Prénom : <input type="text" name="prenom" size="12">
<input type="submit" value="OK"> </form>
</body>
</html>

Recup1.php
<?php
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
echo("<center>Bonjour $prenom $nom</center>"); ?>

En local avec EasyPhp, les résultats des variables s’affichent sans problème sur la page Recup1.php

En ligne sur Ifrance ( Langage php 5.0 ), les résultats des variables s’affichent bien sur la page Recup1.php
http://jyhamet.ifrance.com/Php/Form1.php
http://jyhamet.ifrance.com/Php/Recup1.php

En ligne sur Alice ( Langage php 4.0 ), les résultats des variables ne s’affichent pas sur la page Recup1.php
http://jyhamet.chez-alice.fr/Php/Form1.php
http://jyhamet.chez-alice.fr/Php/Recup1.php

Je ne comprends pas pourquoi, ça fonctionne chez l'un et non pas chez l'autre.
Cela vient-il de mon code ou y a-t-il un autre problème ?
Journalisée
Damien
Rédacteur Admin
Intarissable
*****

Points gagnés: 5
Messages: 2852



Voir le profil WWW
Re : Php - Affichage des variables -1
« Répondre #1 le: 07 Juin 2007 à 18:17:18 »

Bonsoir,

Votre code du formulaire est à priori correct, donc la seule raison probable pour que le serveur PHP4 n'affiche pas vos variables c'est parce que les variables $_POST sont vides pour lui.
Cela doit être dû à la configuration du serveur, la directive register_globals n'est certainement pas activée.

Pour vérifier que les variables sont belles et bien vides, vous pouvez écrire cette ligne dans le Recup1.php :
Code:
print_r($_POST);
L'instruction print_r est pratique pour débugguer car elle permet d'afficher le contenu d'une varaible quelle qu'elle soit (même si c'est un tableau contenant plusieurs valeurs comme c'est le cas ici, elle va afficher tout son contenu).
Si rien ne s'affiche comme valeurs, ça confirme ce que je disais plus haut.


Vous pouvez aussi essayer d'afficher le contenu de $HTTP_POST_VARS car la variable utilisée était celle-ci sur les premières versions de PHP4 maintenant obsolètes :
Code:
print_r($HTTP_POST_VARS);


Vous pouvez avoir plus d'infos sur la configuration du serveur en lançant un fichier php contenant la ligne :
Code:
<?php phpinfo(); ?>

Il y a parfois aussi la possibilité de réactiver register_globals s'il est désactivé (le phpinfo() vous le dira), en mettant la ligne suivante dans un fichier nommé ".htaccess" à la racine de votre serveur :
Citation
php_flag register_globals on



Bon courage  Razz
Journalisée

Cordialement,
Damien

Tutoriels informatique
oscardo
Nouveau membre
*

Points gagnés: 0
Messages: 8



Voir le profil
Re : Php - Affichage des variables -1 suite
« Répondre #2 le: 08 Juin 2007 à 15:26:16 »

Bonjour Damien,
je viens de prendre connaissance de votre réponse et je vous en remercie.
Je n'ai pas encore eu le temps d'appliquer vos conseils mais je vais m'y mettre dès que possible.
Par contre, j'ai un peu avancé dans le domaine du formulaire avec récupération des données dans un email.

Mes formulaires en ligne sur Alice se trouvent à l’adresse :
http://jyhamet.chez-alice.fr/Formulaire_accueil.htm
Avec le formulaire ( http://jyhamet.chez-alice.fr/Php/Form2_alice.php )& http://jyhamet.ifrance.com/Php/Recup2_alice.php, je réussis maintenant à afficher les variables et je récupère les données par mail à mon adresse. Il y a toutefois un message d'erreur que je n'arrive pas à corriger. Le voici : Warning: Invalid argument supplied for foreach() in Php/Recup2_alice.php on line 5
Mes formulaires en ligne sur Ifrance se trouvent à l’adresse : http://jyhamet.ifrance.com/Formulaire_accueil.htm et là, même si les variables s’affichent bien dns tous les formulaires, je ne récupère pas les données par email ( contrairement à ce qu’affirme le message )( http://jyhamet.ifrance.com/Php/Form2_ifrance.php & http://jyhamet.ifrance.com/Php/Recup2_ifrance.php

Voici le code de mon fichier  (recup2_ifrance.php ) :
Code:
<?php
//il vous suffit de mettre votre adresse email à la ligne 35 

//On récupère les valeurs du formulaire
foreach ($_POST as $key => $value) {
        $
$key $value;
}

//On affiche les résultats de la saisie
echo "<P align=center>";
echo 
"Je m'appelle $prenom $nom .<br>"// ceci affichera par exemple : Je m'appelle Jean-Yves Hamet. 
echo "J'habite au lieu-dit $lieu dans la commune de $ville .<br>"// ceci affichera par exemple : J'habite au lieu dite l'Epinette dans la commune de Le Gouray. 
echo "Mon numéro de sécurité sociale est le suivant : $noSS.<br>"// ceci affichera par exemple : Mon numéro de sécurité sociale est le suivant :149012227807304
echo "Voici également mon adresse email : $email.<br>"// ceci affichera par exemple : Voici également mon adresse email : jean.yves.hamet@wanadoo.fr
?>


<?php //On crée le message email

$msg "No SS= $noSS 
Nom= 
$nom 
Prénom= 
$prenom
Lieu-dit= 
$lieu
Code postal= 
$cp
Ville= 
$ville
Adresse email= 
$email";

$recipient "jean-yves.hamet@ac-rennes.fr"//On met l'adresse email ou on veut recevoir le mail
$subject "Formulaire"//On met le sujet du mail

$mailheaders "http://jyhamet.ifrance.com/"//depuis où il a été posté

mail($recipient$subject$msg$mailheaders); // message confirmation que le mail a bien été envoyé

echo "<HTML><HEAD>";
echo 
"<TITLE>Formulaire envoyé!</TITLE></HEAD><BODY>";
echo 
"<H1 align=center>Merci, $prenom $nom</H1>";
echo 
"<P align=center>";
echo 
"Votre formulaire a bien été envoyé !</P>";
echo 
"</BODY></HTML>";

?>

et voici le code du formulaire Form2_ifrance.php
Code:
<html>
<head>
<title>Formulaire prêt à l'emploi</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
//La fonction JavaScript qui vérifie si les champs obligatoires du formulaire ont été bien remplis
<!--
function envoie(formulaire) {
if ( (document.getElementById('nom').value.length>0)
&&(document.getElementById('prenom').value.length>0)
 ){
formulaire.submit();
} else
alert('Impossible d\' envoyer le formulaire, vous avez oublié de remplir des champs obligatoires');
}
-->
</script>
</head>

<body bgcolor="#FFFFFF">
<p align="left" class="Style11">Formulaire d'inscription </p>
<p align="left" class="Style10"><font color="#FF0000">Les cases marquées d'une * sont obligatoires </font> </p>

<form action="Recup2_ifrance.php" method="post" name="form_contacts" id="form_contacts">

<p align="left" class="Style4">No Sécurité Sociale : <input name="noSS" type="text" id="noSS"> (si vous le connaissez) </p>
<p align="left" class="Style4">*Nom : <input type="text" name="nom" id="nom"></p>
<p align="left" class="Style4">*Prénom : <input type="text" name="prenom"id="prenom"></p>
<p align="left" class="Style4">*Lieu dit ou rue et n° : <input name="lieu" type="text" id="lieu"></p>
<p align="left" class="Style4">*Code postal : <input name="cp" type="text" id="cp"></p>
<p align="left" class="Style4">*Localité: <input name="ville" type="text" id="ville"></p>
<p align="left" class="Style4">adresse email : <input name="email" type="text" id="email" size="50"></p>

<p align="left">
<input name="envoyer" type="button" id="envoyer" value="Envoyer" onClick="envoie(this.form)">
<input name="retablir" type="reset" id="retablir" value="Initialiser">
</p>
</form>
</body>
</html>

Merci encore de bien vouloir m'aider.

Journalisée
Pages: [1] Imprimer 
« sujet précédent | | sujet suivant »
Aller à:  

Powered by SMF 1.1.12 | SMF © 2006, Simple Machines LLC

Page générée en 0.2 secondes avec 20 requêtes.