2011-03-16 6 views
3

J'essaie d'apprendre le PHP, et je me suis dit que je me ferais un simple exercice de création d'un site qui, si quelqu'un y va, recevrait "Bonjour mon ami!" mais si ma femme (qui s'appelle Dawn) y va, elle reçoit un message différent. Malheureusement, il apparaît toujours en blanc et je ne sais pas exactement pourquoi. Je sais que cela fonctionne pour index.html avec juste du texte, et je sais que cela fonctionne pour index.php tant que je n'ai pas de balise <?php dedans (juste le texte fonctionne). Mais quand j'essaye de le rendre php réel, il échoue juste.Afficher du texte dynamique basé sur les paramètres GET

  • Je voudrais site/index.php céder "Bonjour ami!" Je voudrais site/index.php?who=Bob à céder "Bonjour ami!"
  • Je voudrais site/index.php?who=Dawn à décrémenter "Bonjour Dawn! Je t'aime!"

Voici ce que j'ai:

<?php 
print 'Hello '; 
$who = $_GET("who"); 
if($who && $who == "Dawn") 
    print "Dawn! I love you!"; 
else 
    print "friend!"; 
/> 

Alors, qu'est-ce qui ne va pas?

+0

@Downvoter Je suis curieux de savoir pourquoi vous avez décliné ma question. – corsiKa

Répondre

7

L'accès aux réseaux ($_GET est un tableau), comme en Java, utilise entre crochets:

$who = $_GET['who']; 

également if($who) Évalue true si $who est non-faux, pour vérifier qu'il vous a mis besoin d'utiliser isset :

if(isset($who) && $who == "Dawn") 

dernier, comme l'a noté @Shivan, la balise de fin doit être ?>, pas />.

+1

$ _GET est un tableau? Je vois. Je vais donner un coup de feu. – corsiKa

+0

@glowcoder: oui: http://php.net/manual/fr/reserved.variables.get.php –

+0

C'est certainement utile. Cependant, il n'imprime même pas le "Hello" de la première ligne. – corsiKa

3

Plusieurs problèmes, devraient être:

<?php 
print 'Hello '; 
$who = $_GET["who"]; 
if(isset($who) && $who == "Dawn") { 
    print 'Dawn! I love you!'; 
} else { 
    print 'friend!'; 
} 
?> 

Plus d'informations:

  • si possible, utilisez des guillemets simples pour accélérer l'analyse syntaxique
  • il est une bonne habitude de fermer si le cas d'autre avec crochets
  • l'étiquette de fin doit être un ?>
1

essayer ceci sur la taille:

<?php 
echo 'Hello '; 
$who = isset($_GET["who"])?$_GET["who"]:false; 
if($who) 
    echo "Dawn! I love you!"; 
else 
    echo "friend!"; 
?> 

Ce contrôle pour vous assurer qu'il est une valeur _GET avec la clé who ou autre php jetteront erreurs.

Questions connexes