2012-09-06 7 views
1

J'ai un forum web où seulement certains utilisateurs sélectionnés sont autorisés à y accéder, ils doivent avoir $_SEESION['username'] dessus.MySQL La requête ne va pas chercher les bons résultats

maintenant sur la page de profil - qui ressemble à ceci

http://127.0.0.1/mysite/profile.php?username=john 

Je veux afficher soit un bouton de téléchargement ou un bouton Modifier le profil, selon qu'ils ont une image téléchargée.

Je vérifie pour voir si $ _GET est fixé, d'abord, puis sinon redirige vers la page d'accueil:

if(isset($_GET['username'])) { 
$username = mysql_real_escape_string($_GET['username']); 

$profile = mysql_query(SELECT * 
         FROM forum 
         WHERE username = '$username') or DIE(mysql_error()); 

         $row = mysql_fetch_array($profile); 

        echo" 
        Name : $row[name]; 
        Country : $row[country]; 

    if($_GET['username'] == $_SESSION['username'] && $row['imagepath'] == '') { 
    echo "Upload Button"; 
} 
else { 
     echo"Edit Button"; 
} 
} 

bouton Télécharger est affiché à l'écran, alors qu'en réalité, il y a un chemin d'image spécifiée .

S'il vous plaît, où je me trompe.

+2

Ne pas utiliser le '' mysql_ * fonctions dans votre code. Ces fonctions ne sont plus maintenues et sont [obsolètes] (http://news.php.net/php.internals/53799). Au lieu de cela, vous devez utiliser [MySQLi] (http://php.net/mysqli) ou [PDO] (http://php.net/pdo). Vous ne savez pas lequel utiliser? [Cet article] (http://php.net/manual/fr/mysqlinfo.api.choosing.php) devrait aider. –

+1

J'aime comment vous laissez le script MOURIR en majuscule. En dehors de cela, il n'y a vraiment pas beaucoup d'informations sur la façon dont cette question peut être résolue. Retour arrière atcha: * "Où vas-tu?" * –

+1

Pour utiliser $ _SESSION, vous devez définir session_start(); – jtheman

Répondre

1

Vous devez placer des guillemets autour de votre paramètre mysql_query. J'ai copié votre code et c'était ma solution.

Vous faites trop d'échos. Il devrait être comme le code suivant.

echo "Name: ".$row['name']; 
echo "Country: ".$row['country']; 

if($_GET['username'] == $_SESSION['username'] && $row['imagepath'] == '') { 
    echo "Upload Button"; 
} 
else { 
    echo"Edit Button"; 
} 
0
  • mysql_query("QUERY HERE"), sinon il ne fonctionnera pas du tout.
  • $row['name'], $row['country']: vous devez mettre les noms entre guillemets.
  • echo 'Text'. Vous n'avez pas fermé les guillemets.
  • empty($row['imagepath']). Il y a une fonction pour cela, alors utilisez-le.

Si les corrections ci-dessus ne fonctionnent toujours pas, essayez d'écho-ment toutes les variables dont vous avez besoin: $_GET['username'], $_POST['username'], $row['imagepath']. Peut-être que PHP ne peut pas les lire.

-1

fixe toutes les erreurs de syntaxe d'ici, vous pouvez commencer le débogage:

if (isset($_GET['username'])) { 
    $username = mysql_real_escape_string($_GET['username']); 

    $profile = mysql_query("SELECT * 
    FROM forum 
    WHERE username = '$username'") or DIE(mysql_error()); 

    $row = mysql_fetch_array($profile); 

    echo "Name : " . $row['name']; 
    echo "Country : ". $row['country']; 

    if ($_GET['username'] == $_SESSION['username'] && $row['imagepath'] == '') { 
    echo "Upload Button"; 
    } 
    else { 
    echo"Edit Button"; 
    } 
} 
+0

Pourquoi avoir voté? Nous avons fait l'effort de nettoyer le code .. Très gentils! – JvdBerg

+1

Ce n'est pas vraiment une réponse. – desimusxvii

Questions connexes