kostenloser Webspace werbefrei: lima-city


prüfen ob Cookie da ist

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    unihook

    unihook hat kostenlosen Webspace.

    Hallo

    wenn ich prüfen will, ob ein bestimmtes Cookie existiert

    if (isset($_COOKIE['test']) { ... }

    oder

    if (!empty($_COOKIE['test']) { ... }

    was ist besser? oder macht das keinen Unterschied ?!

    weil wenn man $_SESSION mit !empty prüft,
    aber gar keine Session gestartet wurde
    dann gibts ja ne Fehlermeldung,
    und bei isset() gibt keinen Fehler .... oder ?

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. isset und empty sind zwei unterschiedliche Funktionen ;) Ich verwende zur Überprüfung meist beides

    1. überprüfen, ob Cookie/Session gesetzt wurde (isset)
    2. überprüfen, ob Cookie/Session leer ist (empty)

    Ergo:

    if (isset($_COOKIE['test']) && !empty($_COOKIE['test'])) { ... }


    Beitrag zuletzt geändert: 2.1.2012 19:14:18 von fabo
  4. anti-atomkraft

    Kostenloser Webspace von anti-atomkraft

    anti-atomkraft hat kostenlosen Webspace.

    @fabo: Das kannst du dir sparen.
    empty() gibt nämlich auch dann true zurück, wenn der Cookie nicht existiert.
    if (!empty($_COOKIE['test'])) { ... }
    reicht also völlig.

    Der wesentliche Unterschied ist einfach, dass empty() auch dann true widergibt, wenn die Variable ein leerer String ist.

    Beitrag zuletzt geändert: 2.1.2012 21:04:44 von anti-atomkraft
  5. anti-atomkraft schrieb:
    @fabo: Das kannst du dir sparen.
    empty() gibt nämlich auch dann true zurück, wenn der Cookie nicht existiert.
    if (!empty($_COOKIE['test'])) { ... }
    reicht also völlig.

    Der wesentliche Unterschied ist einfach, dass empty() auch dann true widergibt, wenn die Variable ein leerer String ist.


    Du verwechselt gerade empty mit isset.

    isset gibt true zurück, wenn die Variable exisiert, auch wenn sie leer ist.
    empty gibt true zurück, wenn die Variable exisiert und nicht leer('', 0, false, NULL zählen als leer) ist.

    Deswegen reicht empty wenn man eine Variable auf Existenz und Inhalt prüft.

    if (!empty ($_GET['test']))
    echo 'test enthält keinen Wert oder wurde nicht angegeben';

    Edit:Falsche BB-Tags

    Beitrag zuletzt geändert: 2.1.2012 21:53:01 von chatter
  6. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    chatter schrieb:
    anti-atomkraft schrieb:
    @fabo: Das kannst du dir sparen.
    empty() gibt nämlich auch dann true zurück, wenn der Cookie nicht existiert.
    if (!empty($_COOKIE['test'])) { ... }
    reicht also völlig.

    Der wesentliche Unterschied ist einfach, dass empty() auch dann true widergibt, wenn die Variable ein leerer String ist.


    Du verwechselt gerade empty mit isset.

    isset gibt true zurück, wenn die Variable exisiert, auch wenn sie leer ist.
    empty gibt true zurück, wenn die Variable exisiert und nicht leer('', 0, false, NULL zählen als leer) ist.

    Deswegen reicht empty wenn man eine Variable auf Existenz und Inhalt prüft.

    if (!empty ($_GET['test']))
    echo 'test enthält keinen Wert oder wurde nicht angegeben';

    Edit:Falsche BB-Tags
    Da verwechselt jemand noch etwas:
    empty gibt (wie der Name schon sagt) dann true zurück wenn die Variable NICHT existiert ODER leer ist ('', 0, 0.0, false, NULL, array()).
    Dabei ist noch wichtig dass ein String mit dem Inhalt "0" auch als leer gewertet wird!

    isset:
    Prüft, ob eine Variable existiert und nicht NULL ist.

    Wer das Internet nutzen kann ist klar im Vorteil.


    @chatter:
    Dein Code mal ausgebessert:
    if (!empty ($_GET['test']))
    echo 'test existiert und enthält einen Wert';


    @anti-atomkraft:
    du hast recht.
  7. t***k

    anti-atomkraft schrieb:

    Der wesentliche Unterschied ist einfach, dass empty() auch dann true widergibt, wenn die Variable ein leerer String ist.

    ...
    hackyourlife schrieb:

    Dabei ist noch wichtig dass ein String mit dem Inhalt "0" auch als leer gewertet wird!


    jetzt bin ich verwirrt ...

    laut der Aussagen gibt empty() TRUE zrrück wenn Leerstring, aber FALSE bei Wert: 0 ????
    entsprechend umgekehrt mit !empty()

    mal ein Test

    <?php
    
    $test1 = '';      // Leerstring 
    $test2 = '0';     // Wert 0 (Null)
    $test3 = null;     // NULL
    
    if (!empty($test1)) {  $out1 = "TEST1 ist nicht leer."; } else { $out1 = "TEST1 ist leer."; } 
    if (!empty($test2)) {  $out2 = "TEST2 ist nicht leer."; } else { $out2 = "TEST2 ist leer."; } 
    if (!empty($test3)) {  $out3 = "TEST3 ist nicht leer."; } else { $out3 = "TEST3 ist leer."; } 
    
    echo "<br />".$out1."\n"; 
    echo "<br />".$out2."\n";
    echo "<br />".$out3."\n";
    
    ?>


    kann ich auf lima-city grad nicht testen, bekomme kein FTP
    aber bei anderem Freehoster (mit PHP Version 5.2.17)

    Ergebnis:

    TEST1 ist leer.
    TEST2 ist leer.
    TEST3 ist leer.


    also doch alle als Leer erkannt, auch Leerstring ?
    ?
  8. Nicht definierte Variable in isset() : false
    Definierte aber leere / negative Variable in isset() : true
    Mit einem positiven Wert gefüllte Variable in isset() : true

    Nicht definierte Variable in empty() : true
    Definierte aber leere / negative Variable in empty() : true
    Mit einem positiven Wert gefüllte Variable in empty() : false


    Folgende Dinge zählen als nicht mit einem Wert belegt:

    • "" (eine leere Zeichenkette)
    • 0 (0 als Integer)
    • 0.0 (0 als Fließkommazahl)
    • "0" (0 als Zeichenkette)
    • NULL
    • FALSE
    • array() (ein leeres Array)
    • var $var; (in einer Klasse deklarierte, aber nicht belegt Variable)

    Quelle: http://de3.php.net/manual/de/function.empty.php


    Beitrag zuletzt geändert: 3.1.2012 15:20:08 von drafed-map
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!