Alex: Notice: Undefined index... wie bekomme ich das weg?

Hallo,

ich habe das Problem, dass bei mir folgende Meldung angezeigt wird:

Notice: Undefined index: Nickname in .....

Wie bekomme ich diese Notice weg?

Ich möchte folgendes machen:
Wenn ein User eingeloggt ist - soll nur der Logout Link erscheinen, ist der Besucher nicht eingeloggt, so soll nur die login sowie Registration erscheinen. Das geht soweit, nur habe ich leider diesen Notice Fehler.

Code

  
<?PHP  
  
if($_SESSION['Nickname'] == '') {  
	echo "<a href=\"index.php?page=login.php\">Login</a>\n";  
	echo "<a href=\"index.php?page=registrierung.php\">Registrierung</a>\n";  
} else {  
	echo "<a href=\"index.php?page=logout.php\">Logout</a>\n";  
}  
?>  
  
<?php  

Wie der Notice anzeigt, ist das Problem bei if($_SESSION['Nickname'] == '')
Diese benutze ich auch in der Login.php

echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";

Gruß

  1. Hi!

    Notice: Undefined index: Nickname in .....
    Wie bekomme ich diese Notice weg?

    Indem du vorher mit isset() prüfst, ob das Element existiert und erst dann darauf zugreifst.

    Lo!

    1. [latex]Mae  govannen![/latex]

      Indem du vorher mit isset() prüfst, ob das Element existiert und erst dann darauf zugreifst.

      Bei seinem Code
      if($_SESSION['Nickname'] == '') {

      könnte empty() gegebenenfalls das Mittel der Wahl sein.

      Stur lächeln und winken, Männer!
      Kai

      --
      Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
      in Richtung "Mess up the Web".(suit)
      SelfHTML-Forum-Stylesheet
      1. könnte empty() gegebenenfalls das Mittel der Wahl

        Ja funktioniert - vielen Dank!!

  2. Hi,

    ich habe das Problem, dass bei mir folgende Meldung angezeigt wird:

    Notice: Undefined index: Nickname in .....

    Wie bekomme ich diese Notice weg?

    In dem du prüfst, ob ein Eintrag in einem Array (bzw. generell, eine „Variable“) existiert, bevor du auf ihn zugreifst - Stichwort isset/empty.

    echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";

    Dass der Nutzername keine HTML-eigenen Sonderzeichen enthält, hast du das an anderer Stelle bereits sichergestellt?
    Ansonsten: http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Dass der Nutzername keine HTML-eigenen Sonderzeichen enthält, hast du das an anderer Stelle bereits sichergestellt?
      Ansonsten: http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel

      Hi, habe ich noch nicht gemacht - werde es aber noch einbauen. Danke für den Tipp.

  3. @@Alex:

    nuqneH

    <?PHP

    if($_SESSION['Nickname'] == '') {
    echo "<a href="index.php?page=login.php">Login</a>\n";
    echo "<a href="index.php?page=registrierung.php">Registrierung</a>\n";
    } else {
    echo "<a href="index.php?page=logout.php">Logout</a>\n";
    }
    ?>

    Anstatt dieses Geraffels mit echo, Escapen von Anführungszeichen und '\n' bietet sich diese alternative Syntax an:

    <?php [code lang=php]if($_SESSION['Nickname'] == ''): ?>

            <a href="index.php?page=login.php">Login</a>  
            <a href="index.php?page=registrierung.php">Registrierung</a>
    

    <?php else: ?>
    <a href="index.php?page=logout.php">Logout</a>
    <?php endif; ?>[/code]

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)