Il y a actuellement 307 visiteurs
Vendredi 26 Avril 2024
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

Problème php_self

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

Problème php_self

Message le 11 Nov 2010 10:44

Bonsoir !

jessaie de créer un petit fichier php permettant simplement de calculer A+B en entrant les valeurs de A et B,
j'ai reussi en le fesant avec 2 fichiers séparés (le html et le php) comme ceci :


Fichier HTML a executer :

Code: Tout sélectionner
<html>
<head>
</head>
<body>
<form action="addition simple.php" method="post">
<label type="text" >entrer A :</label>
<input type="text" name="A"><br>
<label type="text" >entrer B :</label>
<input type="text" name="B"><br>
<input type="submit" method="post" value="Calculer">
</form>
<?php
?>
</body>
</html>


Fichier PHP associé :

Code: Tout sélectionner
<html>
<head>
</head>
<body>
<form action="<?php $PHP_SELF ?>" method="post">
<label type="text" >entrer A :</label>
<input type="text" name="A"><br>
<label type="text" >entrer B :</label>
<input type="text" name="B"><br>
<input type="submit" name="x" value="Calculer">
<?php
$A = $_POST['A'] ;
echo "A=".$A; echo "<br>";
$B = $_POST['B'] ;
echo "B=".$B; echo "<br>";
$Total=$A+$B;
echo "<b>Resulat :</b><br>A+B=".$Total;
?>
</body>
</html>


Ilmarche bien, mais j'ai essayé de le condenser en un seul fichier PHP, et là ça coince...
voici le script :

Code: Tout sélectionner
<html>
<head>
</head>
<body>
<form action="<?php $PHP_SELF ?>" method="post">
<label type="text" >entrer A :</label>
<input type="text" name="A"><br>
<label type="text" >entrer B :</label>
<input type="text" name="B"><br>
<input type="submit" name="x" value="Calculer">
<?php
$A = $_POST['A'] ;
echo "A=".$A; echo "<br>";
$B = $_POST['B'] ;
echo "B=".$B; echo "<br>";
$Total=$A+$B;
echo "<b>Resulat :</b><br>A+B=".$Total;
?>
</body>
</html>



Je ne comprend pas pourquoi ça ne marche pas, j'ai l'impression que ça vient du PHP_self censé renvoyer au script php plus bas ...
il ne reconnait pas les variables A et B
messages d'erreur :

Notice: Undefined index: A in C:\Program Files (x86)\EasyPHP-5.3.3.1\www\tests\addition simple un seul fichier\addition simple.php on line 13
Notice: Undefined index: B in C:\Program Files (x86)\EasyPHP-5.3.3.1\www\tests\addition simple un seul fichier\addition simple.php on line 15


quelqu'un pourrais m'aider?
c'est ptetre une histoire de version de php?

merci.

EDIT Skynet : balises [code] & [quote] ajoutées.
FlamingUFO
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 13
Inscription: 30 Déc 2009 15:24
 


Re: Problème php_self

Message le 14 Nov 2010 13:08

Voilà un version de ton script qui fonctionne :

Code: Tout sélectionner
<?php
// Si $_POST['A'] existe on assigne cette valeur à $A, sinon on initialise $A à 0.
(isset($_POST['A'])) ? $A = $_POST['A'] : $A = 0;
// Si $_POST['B'] existe on assigne cette valeur à $B, sinon on initialise $B à 0.
(isset($_POST['B'])) ? $B = $_POST['B'] : $B = 0;
?>

<html>
<body>
<form action="<?=$PHP_SELF ?>" method="post">
    <label type="text" >entrer A :</label>
    <input type="text" name="A" value="<?=$A?>"><br>
    <label type="text" >entrer B :</label>
    <input type="text" name="B" value="<?=$B?>"><br>
    <input type="submit" name="x" value="Calculer">
</form>
<?php

echo "A=".$A; echo "<br>";
echo "B=".$B; echo "<br>";
$Total=$A+$B;

echo "<b>Resultat :</b><br>A+B=".$Total;
?>
</body>
</html>


j'ai corrigé 3 choses :
- il faut écrire <?=$PHP_SELF ?> et non pas <?php $PHP_SELF ?>, tu aurais pu aussi mettre <? echo $PHP_SELF; ?> mais c'est plus long :)
- Pour éviter les "Notice: Undefined index", il faut tester l'existence de tes variables POST avec isset.
- il manquait le </form> pour fermer le formulaire.
Après j'ai ajouté value="<?=$A?>" et value="<?=$B?>" dans tes input, c'est juste pour ré-afficher les valeurs saisies après le calcul, ça peut remplacer tes lignes "echo" qui suivent.
Autre amélioration que tu peux tester, ne pas afficher la partie "Résultat" si $A ou $B n'est pas renseigné, et afficher des messages d'erreur si c'est le cas. Par exemple : "Erreur : vous n'avez pas indiqué de valeur A." si $A est égal à 0. Il faudrait aussi tester si $A et $B sont des nombres et peuvent donc être additionnés...
Avatar de l'utilisateur
gael49
Expert(e)
Expert(e)
 
Messages: 1935
Inscription: 07 Sep 2004 20:11
Localisation: Les Mauges
 

Re: Problème php_self

Message le 15 Nov 2010 19:18

ok merci ça marche.
d'ailleurs ça marche aussi si on met pas action= du-tout j'ai l'impression.
FlamingUFO
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 13
Inscription: 30 Déc 2009 15:24
 

Re: Problème php_self

Message le 16 Nov 2010 08:04

oui c'est vrai, par défaut c'est la page en cours qui est relancée, mais c'est quand même plus correcte de mettre quand même quelque chose. Et il vaut mieux utiliser PHP_SELF au lieu du nom de la page, car ça fonctionne en cas de renommage du fichier.
Avatar de l'utilisateur
gael49
Expert(e)
Expert(e)
 
Messages: 1935
Inscription: 07 Sep 2004 20:11
Localisation: Les Mauges
 



Sujets similaires

Message probleme avec mon compte outlook
Salut tout le mondevoilà, je m'explique en espérant que je sois compréhensible : de façon aléatoire et pas systématique, mais c'est récurrent, il ne se passe pas 15 jours, je recoit arriver sur mon bureau après démarrage de mon pc ou parfois même pc allumer et fonctionnel pendant la journée un m ...
Réponses: 12

Message Problème de signatue avec gmail.
Bonsoir, voilà je voudrai mettre une bannière comme signature pour mes emails envoyés avec gmail. Je ne sais pas trop comment faire ? Quelqu'un pourrait il m aider? Merci.
Réponses: 7

Message [Réglé] probleme USB
Bonjour a tous,Je ne sais ou poster mon problème d'USB je le post donc ici . Mon souci vient du fait que lorsque je branche mon intercom SENA SRL 3 sur les USB mon PC sous W10 j'ai l'impression que celui-ci se connecte deux fois car j'entends bien le son de la connexion se faire deux fois et j'ent ...
Réponses: 5

Message Problème avec la KB5034441
Bonjour,Certains ont du rencontrer ce problème avec cette mise à jour qui a bien du mal à passer.Je viens de recevoir ce correctif proposé par Microsoft :ICI.Je vous le dit de suite personnellement si j'étais dans le même cas que vous j'attendrai une réelle mise à jour mise en place par Microsoft.Je ...
Réponses: 12

Message encore un probleme mise à jour windows KB5001716
Salut à vous cela commence, j'avoue, à devenir pénible, j'en suis désolé, mais ce soir au 5 mars 2024 est apparu un nouveau problème sur Windows update la mise à jour KB5001716 ne veut pas s'installer, j'ai eu beau redémarrer mon pc pour voir si cela pouvait fonctionner rien à faire cette mise à jou ...
Réponses: 28

Message [Réglé] problème de barre inexistante sur pc portable asus
Bonjour,Depuis hier, en allumant mon pc portable asus modèle F 402 S, il bloque sur le bureau, je n'ai plus la barre de tâches donc les icônes à côté de l'heure comme avant et la souris fait un rond et impossible de cliquer et d'ouvrir des fichiers ou d'aller sur internet c'est bizarre, est-ce une ...
Réponses: 9

Message probleme avec le nouvel Outlook !
Bonjour,à la maison, nous nous partageons 7 adresses : outlook.fr, orange.fr, live.fr, libello.com, hotmail.com et 2 gmail.com.Tout était parfait jusqu'au moment où le nouvel OUTLOOK s'est imposé.Là, un seul compte a survécu, @outlook.fr, impossible d'afficher les 6 autres !Quand on ouvre la message ...
Réponses: 5


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.