message d'erreur fscanf et STDIN !!!

message d'erreur fscanf et STDIN !!! - PHP - Programmation

Marsh Posté le 09-11-2013 à 17:40:10    

Bonjour a tous,  
 
je débute en programmation et en particulier en PHP.  
plutôt orienté cartographie SIG j'ai besoin de me former dans ce domaine.  
Les cours d'openclassrooms (le "site ses zéros) me sont d'un grand secours.  
Bref j'ai  installé wampServer et en avant la musique je tapiotte mes 1er lignes de code en les insérant dans des balises xml..... et BIIIM message d'erreur incompréhensible.  
 
je code sur notepad++ et je suis sur serveur local. internet: Firefox
 
voici le bloc qui pose pb: il s'agit d'un simple exo de conversion de devises (fictives)
voir en particulier (fscanf -> ligne 9)
 
        <p>
            Cette ligne a été écrite entièrement en HTML.<br />
            <?php  
   $francs = 0.2;
   $taux_de_change = 6.5;  
   $resultat = 0.5;
             echo "vous souhaitez convertir des francs en euros avec un taux de change de ".$taux_de_change." ";
             echo "rentrez la somme que vous souhaitez convertir";
             fscanf(STDIN, "%f", $francs);[/b][/#0000FF]
             $resultat=$francs / $taux_de_change;  
             echo "la somme rentree vaut ".$resultat." euros";      
   ?>
        </p>
 
et voici l'affichage sur firefox  :??: :  
 
 Cette ligne a été écrite entièrement en HTML.
vous souhaitez convertir des francs en euros avec un taux de change de 6.5 rentrez la somme que vous souhaitez convertir
 
( ! ) Notice: Use of undefined constant STDIN - assumed 'STDIN' in C:\wamp\www\tests\php.php on line 18
Call Stack
# Time Memory Function Location
1 0.0008 366224 {main}( ) ..\php.php:0
 
( ! ) Warning: fscanf() expects parameter 1 to be resource, string given in C:\wamp\www\tests\php.php on line 18
Call Stack
# Time Memory Function Location
1 0.0008 366224 {main}( ) ..\php.php:0
2 0.0011 366776 fscanf ( ) ..\php.php:18
 
la somme rentree vaut 0.030769230769231 euros

 
voilou si vous pouvez me donner quelques pistes je vous en serez reconnaissant.  
 
merci d'avance  :jap:  
 
bewolf
 
 
     
 

Reply

Marsh Posté le 09-11-2013 à 17:40:10   

Reply

Marsh Posté le 09-11-2013 à 21:47:04    

Le php est un langage serveur, tu ne peux pas interagir avec l'utilisateur comme ça.
 
1- requête au serveur
2- lecture du php
3- envoi au client des valeurs de sortie (print/echo, HTML/CSS/JS)
 
 
Là tu demandes au client de rentrer une valeur alors que le traitement du php est terminé !
 
Bref commence par ne plus écrire le HTML dans ton fichier php ça te permettra de ne plus faire cette erreur.
 
Pour communiquer avec le client il faut que tu regardes au niveau des requêtes HTTP (post, get, etc.) qui permettent de passer des variables dans la requête, ce qui veut dire :
 
1- requête au serveur
2- lecture du php
3- envoi au client des valeurs de sortie (print/echo, HTML/CSS/JS)
4- requête au serveur (contenant les variables)
5- lecture du php (traitement des variables reçues)
6- envoi au client des valeurs de sortie (print/echo, HTML/CSS/JS)
 
 
Regarde les formulaires HTML/PHP.

Reply

Marsh Posté le 09-11-2013 à 21:58:22    

Sinon pour expliquer un peu plus loin, un peu de lecture ;)
 
Notice: Use of undefined constant STDIN => Notification: utilisation d'une constante non définie "STDIN"
Warning: fscanf() expects parameter 1 to be resource, string given => Attention: fscanf doit recevoir un paramètre comme ressource, une chaîne de caractère a été donner. (voir la documentation PHP, en français sur fscanf => http://php.net/manual/fr/function.fscanf.php )
 
En dehors de ca, je rejoins  le commentaire de MaybeEijOrNot.
PHP est un language de programmation côté serveur. Il faut bien faire la différence entre la partie traitement et la partie affichage. ;)

Reply

Marsh Posté le 14-11-2013 à 20:54:03    

Merci a tous les 2 pour vos réponses !!!  
je travail désormais sur les formulaires et cela fonctionne.  
j'ai posé ma question un peut tôt je pense :) la réponse est venu d'elle même en creusant mes cours.  
 
a bientôt sur Hardware.fr

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed