Hey Leute, ich habe eine Frage und ich halte mich immer noch ziemlich neu in der Codierung, also vergib mir, wenn ich dumm komme.Undefinierter Indexfehler beim Versuch, Werte zu echo, verwende ich Funktionen außerhalb der Klasse
Ich studiere ab sofort in der Schule und wir haben ein Projekt, um einen kompletten Stapel Craigslist zu erstellen. Jeder, der das Problem hat, beschäftigt sich mit PHP. Ich habe eine Kontoseite mit Textbereichen erstellt. Ich möchte die Informationen des Benutzers auf ihnen wiedergeben, damit der Benutzer sehen kann, was er anbringt und aktualisiert, wie er mag. Da meine navbar auf jeder Seite enthalten ist, habe ich den Code:
if(isset($_SESSION['logged_in_user'])){
var_dump($_SESSION['logged_in_user']);
$user = $_SESSION['logged_in_user'];
var_dump($user);
}
meinetwegen Seite dachte ich, ich es als <?= $attributes['first_name']?>
innerhalb der Platzhalter aus echo kann. Aber ich erhalte:
Undefined index: first_name
Auch wenn ich var_dump($user)
ich eine geschützte $ Attribute Array.
In My Auth
Klasse ist, wo ich zum ersten Mal $user
als solche definiert: in der Benutzerklasse
public static function attempt($attemptedUsername, $attemptedPassword) {
$user = User::findByUserName($attemptedUsername);
if ($user == null) {
return false;
}
$validPassword = password_verify($attemptedPassword,$user->password);
if ($validPassword == true) {
$_SESSION['logged_in_user'] = $user;
}
return false;
}
und meine findByUserName
Funktion ist. der Code ist:
public static function findByUserName($user_name){
// Get connection to the database
self::dbConnect();
$stmt = self::$dbc->prepare('SELECT * FROM users WHERE user_name = :user_name');
$stmt->bindValue(':user_name', $user_name , PDO::PARAM_STR);
//execute gets its own line, t or false
$stmt->execute();
$result=$stmt->fetch(PDO::FETCH_ASSOC);
// @TODO: Create select statement using prepared statements
// @TODO: Store the result in a variable named $result
// The following code will set the attributes on the calling object based on the result variable's contents
$instance = null;
if ($result) {
$instance = new static($result);
}
return $instance;
}
mehr Code bitte ?? –
Wenn das Array geschützt ist, bedeutet dies, dass es außerhalb der Klasse/Methode, auf die es ursprünglich deklariert wurde, nicht zugreifbar ist. Wird dieser Wert innerhalb der Klasse/Methode, für die er deklariert wurde, ausgegeben? Außerdem aktivieren Sie oben im Skript die Fehlermeldung mit 'error_reporting (-1);' –
@SantoshRamKunjir Ich habe meine Frage aktualisiert, damit Sie mehr von meinem Code sehen können. Ich wiederhole den Wert außerhalb der Klasse. – bezotic