2009-12-24 3 views
0

Quelqu'un peut-il s'il vous plaît dire ce qui se passe dans ce programme? Mon seul doute principal concerne la première condition d'où obtiendrons-nous la méthode pour REQUEST_METHOD? Je veux dire que le programme est gng dans la 1ère boucle if donc REQUEST_METHOD == GET mais où l'avons-nous défini.PHP Programme d'aide

<html> 
<head><title>Temperature Conversion</title></head> 
<body> 
<?php 
if ($_SERVER['REQUEST_METHOD'] == 'GET') 
{ 
?> 
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST"> 
Fahrenheit temperature: 
<input type="text" name="fahrenheit" /> <br /> 
<input type="submit" name="Convert to Celsius!" /> 
</form> 
<?php 
} 
elseif ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    $fahr = $_POST['fahrenheit']; 
    $celsius = ($fahr - 32) * 5/9; 
    printf("%.2fF is %.2fC", $fahr, $celsius); 
} 
else 
{ 
    die("This script only works with GET and POST requests."); 
} 
?> 
</body> 
</html> 

Encore une fois, je dis juste Merci

Répondre

0

C'est une méthode étrange d'utiliser le même fichier php pour les requêtes POST affichage et de traitement.

  1. Le développeur prend la première passe de la page sera un « GET » demande pour la page
  2. Alors quelqu'un remplit le formulaire et messages à la même fichier php où la valeur est traitées et les températures sont imprimées à l'écran
  3. Il attrape aussi si quelqu'un fait un autre type d'appel à la page, comme une demande de « tête ».
+0

Ce n'est vraiment pas si étrange, juste vieux. C'était vraiment un style commun de le faire en php3 et très tôt. Mais ouais, maintenant c'est vraiment bizarre. –

+0

Lorsque je travaillais dans ces versions, j'ai utilisé un fichier php séparé pour gérer l'action, au lieu de surcharger une page comme celle-ci. – Myles

+0

Heh, peut-être que c'était juste moi. Je ne vais pas prétendre que j'étais un grand programmeur à l'époque :) –

1

GNG? (EDITED: de la citation de question: je veux dire le programme est gng dans le 1er ..)

REQUEST_METHOD sera GET si vous entrez dans la page par l'URL.

Lorsque vous soumettez le formulaire, form method method state = POST, donc en se soumettant à lui-même, REQUEST_METHOD sera POST.

+0

est-ce quelque chose que nous avons défini cette valeur par défaut? je veux dire REQUEST_METHOD == GET – Josh

+0

@joetsuihk: GNG ?! @Nishant: Non, c'est toujours * GET. –

+0

Non, c'est réglé par le serveur. – Brad

0

Son défini par la demande originale. Le serveur remplit cette information (par exemple $ _SERVER) pour que vous ayez accès aux données de requête et de serveur depuis PHP. Si la requête arrive par HTTP GET, la valeur est GET. Si son POST, la valeur est POST, etc.

0

La méthode de demande fait référence à la méthode utilisée pour "demander" la page par le navigateur.

Si une page est accédée simplement en naviguant vers une URL, la méthode GET est utilisée. Par conséquent, si la page que vous liste est simplement parcourue dans votre navigateur, REQUEST_METHOD == GET et la page affiche le formulaire.

La méthode de requête POST est couramment utilisée lorsqu'une page est accessible via une soumission de formulaire. Ainsi, une fois que l'utilisateur remplit le formulaire sur votre page et le soumet, il retourne à la même page mais via la méthode de demande POST. Ensuite, la page affiche un peu d'information en fonction de la soumission du formulaire. Voir Request Methods sur Wikipedia pour plus d'informations sur les méthodes de demande. Voir le PHP docs on $SERVER pour plus d'informations sur les variables du serveur.

0

Ce programme gère une requête HTTP. Le tableau $ _SERVER est automatiquement défini avec des valeurs.

$ _SERVER ['REQUEST_METHOD'] sera égal à 'GET' si quelqu'un vient juste de visiter la page dans un navigateur.

Il sera égal à "POST" s'ils accèdent à la page après avoir envoyé un formulaire.

0

GET et POST sont les verbes http utilisés pour accéder à la page. Habituellement, nous utilisons POST pour renvoyer les données utilisateur au serveur et utiliser GET pour obtenir des données du serveur. Donc, demander un index.html est une requête GET mais POSTing des données à quelque chose comme un formulaire de commentaire, renvoyant des données au serveur, utilise POST.

Ceci est l'une des façons d'utiliser un seul fichier pour faire le traitement des formulaires en php. Lorsque la personne accède pour la première fois au formulaire, elle utilise GET. Mais lorsque l'utilisateur soumet des données et clique sur le bouton Soumettre, il renvoie les données de l'utilisateur dans un POST. Ainsi la première condition if == 'GET'.

Essayez this link en savoir plus sur GET et POST

0

Ok. Donc, parce que je ne l'ai vu 1 personne sortir et de dire, je suppose que je vais devoir:

$_SERVER, $_POST, $_GET et la plupart des autres variables qui commencent par $_ sont appelés « variables prédéfinies » ou « superglobales » . Ce sont des variables qui sont définies par le serveur et peuvent être accessibles dans n'importe quel contexte. Ils stockent des informations basées sur le temps d'exécution du serveur, la demande, etc.

$_SERVER['REQUEST_METHOD'] définit la méthode que l'utilisateur a à votre page. Il y a un tas, comme HEAD, GET, POST, DELETE, et je crois que quelques autres. Chacun d'entre eux a un but spécifique tel que défini par les normes HTTP Internet. Il se trouve que GET est la méthode de requête la plus utilisée, car elle permet simplement d'obtenir une page. Si vous n'avez pas envoyé de formulaire, il est probable que c'est la méthode que vous utilisez.

Ce que fait votre page est de vérifier que l'utilisateur consulte régulièrement la page, et si c'est le cas, il lui donne un formulaire. Lorsque vous appuyez sur le bouton de soumission sur un formulaire, vous modifiez votre méthode de demande à POST pour la page suivante, ce qui signifie que vous donnez une sorte d'information au serveur, dans ce cas les données qui sont dans les champs de formulaire.

Si la page détecte que quelqu'un envoie un formulaire, il effectue ensuite des calculs en fonction de ce que l'utilisateur a envoyé via le formulaire.

En général, la plupart des gens vérifient s'il y a des données contenues dans $_POST pour savoir si un formulaire a été envoyé, mais cette méthode fonctionne également.

Questions connexes