ich $ _SESSION [ ‚Showroom‘] auf ‚aktiv‘, wenn eine bestimmte Seite in Wordpress Einstellung angezeigt wird:PHP-Sitzung Änderungen unerwartet in if-Anweisung und
if(get_the_ID()==6470||get_the_ID()==252){
$_SESSION['showroom']='active';
}
Ich habe dann zwei Arrays der Seiten, gegen die geprüft werden soll. Wenn die nächste angezeigte Seite NICHT in einem dieser Arrays ist, wird $ _SESSION ['showroom'] in 'inactive' geändert.
$allowed_templates = array('template-A.php',
'template-B.php',
'template-C.php',
'template-E.php',
'template-G.php');
$allowed_ids = array(6470,252);
$template_name = get_page_template_slug();
$page_id = get_the_ID();
if(in_array($template_name,$allowed_templates)==false && in_array($page_id,$allowed_ids)==false){
$_SESSION['showroom']='inactive';
}
Die if-Anweisung funktioniert die meiste Zeit, aber manchmal sogar meine $ _SESSION [ ‚Showroom‘] Änderungen auf inaktiv, obwohl eines der Arrays ist wahr Rückkehr! Nach mehreren Teststunden kann ich nicht feststellen, wo das Problem liegt. Hallte aus den beiden Teilen der if-Anweisung gibt mir immer 2 trues oder 1 + 1 wahr falsch, aber nie 2 Falschen:
if(in_array($template_name,$allowed_templates)==false){echo 'TFALSE';}
if(in_array($template_name,$allowed_templates)){echo 'TTRUE';}
if(in_array($page_id,$allowed_ids)==false){echo 'IFALSE';}
if(in_array($page_id,$allowed_ids)){echo 'ITRUE';}
Was ich hier fehlt?
Vielen Dank im Voraus für jede Hilfe!
EDIT: Haben Tests fortgesetzt und fanden die folgende Anomalie:
if(in_array($template_name,$allowed_templates)==false && in_array($page_id,$allowed_ids)==false){
$_SESSION['showroom']='inactive';
echo 'SET TO INACTIVE';
}
Die if-Anweisung $ _SESSION ändert [ ‚Showroom‘] zu ‚inaktiv‘, sondern ‚auf inaktiv gesetzt‘ NICHT Echo aus!
Hier passiert etwas Seltsames!
'if (in_array ($ template_name, $ allowed_templates) && in_array ($ page_id, $ erlaubte_ids)) { $ _SESSION ['showroom'] = 'inaktiv'; } 'oder' if (in_array ($ template_name, $ allowed_templates) === false && in_array ($ page_id, $ erlaubte_ids) === false) { $ _SESSION ['showroom'] = 'inaktiv'; } ' –
Was sehen Sie, wenn Sie all diese' if..echo' Anweisungen innerhalb des 'if' setzen, die die Sitzungsvariable setzen? – Barmar