2011-10-07 8 views
0

Je suis débutant qui essaie de créer une application Facebook. Voici le code:Travailler avec le formulaire

<?php 
$app_id = "xxx"; 
$canvas_page = "https://apps.facebook.com/xxx/"; 

$auth_url = "https://www.facebook.com/dialog/oauth?client_id=" 
     . $app_id . "&redirect_uri=" . urlencode($canvas_page) . "&scope=user_birthday"; 

$signed_request = $_REQUEST["signed_request"]; 
list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 

if (empty($data["user_id"])) { 
     echo("<script> top.location.href='" . $auth_url . "'</script>"); 
} else { 
     echo ("<p>Welcome. Your Facebook ID is " . $data["user_id"] . "</p>"); 

     if (isset($_POST['salary'])) { 
      echo "<p>You wrote salary: " . $_POST['salary'] . "</p>"; 
     } 
     else { 
      echo "<p>You didn't wrote salary.</p>"; 
     }; 

     echo "<form method='post' action='$canvas_page'>"; 
     echo "<input type='text' name='salary'>"; 
     echo "<input type='submit'>"; 
     echo "</form>"; 
} 
?> 

Pourquoi le résultat affiche toujours "Vous n'avez pas écrit de salaire".

Répondre

0

Ce code fonctionne réellement sur ma toile, donc le problème doit être avec l'url auth. En bref: si cette condition:

if (empty($data["user_id"])) 

obtient pour être vrai, ce que vous aurez sera l'utilisateur redirigé vers l'URL auth et après retour à votre page de toile.

Vous pouvez vérifier si cela se produit à la recherche à l'adresse: s'il y a un code = quelque chose attaché à la fin de l'URL, cela signifie que l'utilisateur a été redirigé, ce faisant, vous perdez évidemment le tout contenu _POST.

Vous pourriez juste avoir un print_r ou un var_dump de $ data pour être sûr qu'il est réellement rempli de quelque chose.

Bye =)

EDIT 14.10.11: En fait, votre code est bon, il n'y a rien de mal à cela, de sorte que le code exemple est votre propre code

+0

Est-ce que vous s'il vous plaît me donner un exemple de code? –

Questions connexes