2010-08-28 5 views
0

Aujourd'hui, en essayant d'écrire cette classe User, j'ai rencontré l'erreur ci-dessus sur la ligne en surbrillance ci-dessous, et je me demandais ce que vous en pensiez.inattendu T_CATCH, attendez T_FUNCTION

class User { 
    public $username; 
    public $password; 
    public $user_info; 
    public $connection; 

    function __construct($username) { 
    $connection = new Database(); 
    try { 
    $user_info = $connection->query("SELECT * FROM `users` WHERE `username` = '$username'"); 
    if ($user_info == null) { 
    throw new Exception("Could not find user details, please try again later!"); 
    } 
    ***} catch (Exception $login) {*** 
    die($login->getMessage()); 
    } 
    session_start(); 
    $_SESSION["dgs_tech"] = $user_info; 
    } 

    function update_info() { 
    $user_info = $connection->query("SELECT * FROM `users` WHERE `username` = '$username'"); 
    if ($user_info == null) { 
    throw new Exception("Could not find user details, please try again later!"); 
    } 
    } catch (Exception $login) { 
    die($login->getMessage()); 
    } 
    $_SESSION{"dgs_tech"] = $user_info; 
    } 

    function return_info() { 
    $text = "<p>" 
    foreach($user_info as $name => $item) { 
    $text += "<h1>$name:</h1>$item<br/>"; 
    } 
    $text += "</p>"; 
    return $text; 
    } 
} 

Répondre

1

Je pense que cette erreur est sur le point update_info function() Vous n'avez pas "essayer {" il

+0

Malheureusement, à peu près dès que j'ai posté cela, j'ai remarqué l'absence de "try {". Il y avait plusieurs autres erreurs que j'ai corrigées, mais merci beaucoup quand même :) – Jono

1

code corrigé: Essayez maintenant:

class User 
{ 
    public $username; 
    public $password; 
    public $user_info; 
    public $connection; 

    function __construct($username) 
    { 
     $connection = new Database(); 
     try 
     { 
      $user_info = $connection->query("SELECT * FROM `users` WHERE `username` = '$username'"); 
      if ($user_info == null) 
      { 
       throw new Exception("Could not find user details, please try again later!"); 
      } 
     } 
     catch (Exception $login) 
     { 
      die($login->getMessage()); 
     } 
     session_start(); 
     $_SESSION["dgs_tech"] = $user_info; 
    } 

    function update_info() 
    { 
     try 
     { 
      $user_info = $connection->query("SELECT * FROM `users` WHERE `username` = '$username'"); 
      if ($user_info == null) 
      { 
       throw new Exception("Could not find user details, please try again later!"); 
      } 
     } 
     catch (Exception $login) 
     { 
      die($login->getMessage()); 
     } 
     $_SESSION["dgs_tech"] = $user_info; 
    } 

    function return_info() 
    { 
     $text = "<p>" 
     foreach($user_info as $name => $item) 
     { 
      $text += "<h1>$name:</h1>$item<br/>"; 
     } 
     $text += "</p>"; 
     return $text; 
    } 
} 

Il avait le problème où Essayer a commencé à partir d'une fonction et se termine sur une autre.

Et vous devriez indenter correctement votre code. Les bogues deviendront clairs automagiquement.

+0

Pourquoi tu fais ça pour lui? : P Nous devrions poster des réponses aux questions qui permettront de trouver et réparer, pas prêt à partir "Je l'ai fait pour vous";) – canni

+1

@Dariusz, Il ne peut pas le corriger lui-même, c'est pourquoi il l'a demandé ici. Je pense que nous pouvons aider nos codeurs en étant clairs et complexes. – shamittomar

+0

Oui, mais de cette façon seulement enseigner la méthode: "Je ne peux pas le faire, laisser les autres le faire pour moi", et pointer où trouver, force l'utilisateur, à enseigner où il a fait erreur ... Voulez-vous tout le monde demande seulement à heare "arrête ça pour moi s'il te plaît?" ;) – canni

0

Votre construction construct accolades {} ne se ferme pas correctement et vous avez du code en dehors d'une fonction.