Un objet de la classe Utilisateur n'a pas pu être converti en chaîne

Je travaille sur un logiciel de forum actuellement.

J'ai une classe Utilisateur appelé, à l'intérieur de cette classe, j'ai une méthode appelée GetUserGroup pour déterminer à quel groupe l'utilisateur est en.

Je suis en cours d'exécution de la requête et les assoc de la même manière que je fais avec tous mes autres questions, je ne suis pas sûr de ce que je fais mal, j'ai regardé sur la requête pour les erreurs de syntaxe, mais il suffit de ne pas en voir du tout.

Erreur fatale: un Objet de la classe Utilisateur n'a pas pu être converti en chaîne de C:\xampp\htdocs\forums\index.php sur la ligne 22

Voici l'intégralité de la page:

<?php 
include_once('connect.php');
session_start();
if (isset($_SESSION['username'])) {
$username = $_SESSION['username'];
}
class User {
public $usergroup;
public $user;
function __construct() {
if (isset($_SESSION['username'])) {
$this->user = $_SESSION['username'];
}
}
public function GetUserGroup() {
$find_group = "SELECT group FROM users WHERE username='$this->user'";
$run_find_group = mysql_query($find_group);
$find_group_assoc = mysql_fetch_assoc($run_find_group);
$this->usergroup = $find_group_assoc['group'];
}
}
class Forum {
function __construct() {
}
public function DisplayForums() {
$find = "SELECT id,name,description FROM forums";
$run_find = mysql_query($find);
while ($is = mysql_fetch_assoc($run_find)) {
$forum_id = $is['id'];
$forum_name = $is['name'];
$forum_description = $is['description'];
echo "<div  style='background:#FF6699;width:1000px;'>";
echo "Forum: <a href='topics.php?t='$forum_id'>".$forum_name."</a><br/>".$forum_description."<br/><hr>";
echo "</div>";
}
}
}
$forum = new Forum();
if (isset($_SESSION['username'])) {
$_SESSION['username'] = new User();
$_SESSION['username']->GetUserGroup();
}
?>
<html>
<head>
<title>Home</title>
</head>
<body>
<?php 
if (isset($_SESSION['username'])) {
echo "Welcome, " . $username . "!";
if ($_SESSION['username']->usergroup==admin) {
echo "<span align='right'><a href='/admin/index.php'>Admin CP</a></span>";
}
$forum->DisplayForums(); 
} else {
$forum->DisplayForums(); 
echo "
<form action='login.php' method='post'>
<table>
<tr>
<td>Username: </td>
<td><input type='text' name='username' /></td>
</tr>
<tr>
<td>Password: </td>
<td><input type='text' name='password' /></td>
</tr>
<tr>
<td><input type='submit' name='login_submit' value='Login' /></td>
</tr>
</table>
</form>";
}
?>
</body>
</html>
  • Ce qui semble être le problème ici, monsieur l'agent?
  • L'erreur n'est pas dans l'extrait de code que vous avez fournis. Je soupçonne que le plein de la sortie d'erreur vous indiquera le numéro de la ligne où le problème se produit. Merci de poster le message d'erreur complet et le code source.
  • Remarque - si vous n'avez pas fait aucune validation antérieure, la requête SQL est ouverte à des attaques par Injection SQL tizag.com/mysqlTutorial/mysql-php-sql-injection.php
  • J'obtiens le message d'erreur "Objet de la classe Utilisateur n'a pas pu être converti en chaîne". À la ligne $find_group = "SÉLECTIONNEZ groupe from users where username='$this->user'"; Aussi, je suis conscient qu'il est vulnérable, je viens de commencer et n'en ai pas eu l'occasion de l'ajout de protéger encore.
  • apparemment, $this->l'utilisateur est un objet. var_dump à vérifier. comme une alternative, utiliser un débogueur à l'étape par le biais de votre exécution de code pour savoir où ça se passe mal. si vous voulez $this->utilisateur à un objet, ajouter un __méthode toString dire comment se comporter dans un contexte de chaîne.
  • Logiciel de sécurité n'est pas une "phase" de développement.

InformationsquelleAutor Darren | 2011-12-30