2016-03-31 6 views
0

Ein PHP-Fehler wurde in der Zwischenzeit des Abmeldeprozesses aufgetreten. Login & Logout-Prozess funktioniert immer noch gut! Aber es zeigt einen Fehler, wenn ich das System auslogge! Schweregrad: Warnung Nachricht: Kern/Input.php Line Number: Cookie-Namen dürfen nicht leer Dateiname sein 286Codeigner Nachricht: Cookie-Namen dürfen nicht leer sein

Hier ist der Code meiner Input.php set_cookie Funktion:

function set_cookie($name = '', $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = FALSE) 
{ 
    if (is_array($name)) 
    { 
     // always leave 'name' in last place, as the loop will break otherwise, due to $$mill 
     foreach (array('value', 'expire', 'domain', 'path', 'prefix', 'secure', 'name') as $mill) 
     { 
      if (isset($name[$mill])) 
      { 
       $$mill = $name[$mill]; 
      } 
     } 
    } 

    if ($prefix == '' AND config_mill('cookie_prefix') != '') 
    { 
     $prefix = config_mill('cookie_prefix'); 
    } 
    if ($domain == '' AND config_mill('cookie_domain') != '') 
    { 
     $domain = config_mill('cookie_domain'); 
    } 
    if ($path == '/' AND config_mill('cookie_path') != '/') 
    { 
     $path = config_mill('cookie_path'); 
    } 
    if ($secure == FALSE AND config_mill('cookie_secure') != FALSE) 
    { 
     $secure = config_mill('cookie_secure'); 
    } 

    if (! is_numeric($expire)) 
    { 
     $expire = time() - 86500; 
    } 
    else 
    { 
     $expire = ($expire > 0) ? time() + $expire : 0; 
    } 

    setcookie($prefix.$name, $value, $expire, $path, $domain, $secure); 
} 

Linie Nummer: 286

setcookie($prefix.$name, $value, $expire, $path, $domain, $secure); 
+0

setcookie ($ prefix. $ Name, $ value, $ expire, $ pfad, $ domain, $ secure); heißt Innenfunktion? –

+0

Ja, der Setcookie wurde innerhalb der Funktion aufgerufen. –

Antwort

1

Hinweise:

  • Nur Name und Wert sind erforderlich. Um ein Cookie zu löschen, setzen Sie es mit dem Ablaufdatum leer.
  • Der Ablauf wird in Sekunden festgelegt, der zur aktuellen Uhrzeit hinzugefügt wird. Geben Sie nicht die Zeit an, sondern nur die Anzahl der Sekunden, ab denen das Cookie gültig sein soll. Wenn das Ablaufdatum auf Null gesetzt ist, dauert das Cookie nur solange der Browser geöffnet ist.
  • Für standortweite Cookies unabhängig davon, wie Sie Ihre Website angefordert, Ihre URL mit einer Periode beginnend mit der Domäne hinzufügen, wie folgt aus: .your-domain.com

    $cookie = array(
    'name' => 'demo', 
        'value' => 'Hello i m cookies which saved in this broswer', 
        'expire' => '86500', 
    'domain' => 'yourdomain', // in localhost this should be null 
    'path' => '/', 
    'prefix' => 'myprefix_', 
    'secure' => TRUE ); 
    $this->input->set_cookie($cookie); 
    

Diskrete Parameter

Wenn Sie es vorziehen, können Sie das Cookie von Daten unter Verwendung einzelner Parameter übergeben einstellen:

$this->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure); 
Verwandte Themen