Hallo liebe Gemeinde,
ich habe ein Problem mit einer PHP-Funktion, die ich in einem Seitentemplate von Wordpress benutze. Ich weiß, ich sollte die Frage in einem PHP-Forum stellen, aber vielleicht findet sich jemand, der mir auf Anhieb einen Tipp geben kann.
Ich habe ein Seitentemplate, an dessen Beginn ich einen REQUEST abfange. Hauptsächlich erfasse ich dort verschiedene IDs, die ich mit der GET-Methode an die gleiche Seite sende.
switch ($_SERVER['REQUEST_METHOD']) {
case 'GET':
$the_request = $_GET;
switch ($the_request) {
case isset($the_request['deleteuser_ID']):
$deleteuser_ID = strip_tags(trim($the_request['deleteuser_ID']));
if (ctype_digit(strval($deleteuser_ID)) == TRUE) {
if (user_exists_by_id($deleteuser_ID) == TRUE) {
$deleteuser_ID;
} else {
$deleteuser_ID = FALSE;
}
} else {
$deleteuser_ID = FALSE;
}
case isset($the_request['canceluser_ID']):
$canceluser_ID = strip_tags(trim($the_request['canceluser_ID']));
if (ctype_digit(strval($canceluser_ID)) == TRUE) {
if (user_exists_by_id($canceluser_ID) == TRUE) {
$canceluser_ID;
} else {
$canceluser_ID = FALSE;
}
} else {
$canceluser_ID = FALSE;
}
case isset($the_request['message_ID']):
$message_ID = (string) strip_tags(trim($the_request['message_ID']));
if (ctype_digit(strval($message_ID)) == TRUE) { // Überprüft, ob der String eine Ziffer enthält.
if (user_exists_by_id($message_ID) == TRUE) { // Überprüft, ob die ID tatsächlich einem User gehört
if ($message_ID <= $message_count -1 AND $message_ID >= 0) { // $message_count zählt ein Array mit verschiedenen Nachrichten. Zur Reproduktion kann man es gegen "4" tauschen.
$message_ID;
} else {
$message_ID = FALSE;
}
} else {
$message_ID = FALSE;
}
} else {
$message_ID = FALSE;
}
}
case 'POST':
break;
}
Alles anzeigen
Das Problem befindet sich hier:
Nach mehreren Tests, mit var_dump und manuellem Debugging, gibt mir diese Überprüfung - trotz das in der URL eine Zahl für diese Variable steht - ein FALSE aus. Bei allen anderen Überprüfung klappt es.
Die URL kommt von wp_redirect(), etwas später aus dem Skript. Zum Beispiel hier:
if (current_user_can('manage_options') && $deleteuser_ID != FALSE && $assignuser_ID != FALSE) {
$user_deleted = FALSE;
$userdata = get_user_meta($deleteuser_ID);
// Documentation: http://codex.wordpress.org/Function_Reference/wp_delete_user
require_once(ABSPATH.'wp-admin/includes/user.php' );
$user_deleted = wp_delete_user($deleteuser_ID , $assignuser_ID);
// Documentation: http://codex.wordpress.org/Function_Reference/get_page_link
$page_url = get_page_link(get_the_ID());
// Documentation: http://codex.wordpress.org/Function_Reference/wp_redirect
if ($user_deleted == TRUE) {
wp_redirect($page_url.'?message_ID=1&firstname='.$userdata['first_name'][0].'&lastname='.$userdata['last_name'][0]);
exit;
} else {
wp_redirect($page_url.'?message_ID=0');
exit;
}
Alles anzeigen
Ich bin relativ unerfahren damit, bin also für fachliche Hinweise hoffen, die mir das Problem erklären... Ich hoffe, das Problem kannst du reproduzieren. Falls du mehr Infos brauchst, lass es mich bitte wissen.
Ich sitze schon seit 4 Stunden dran und komme nicht weiter...
Danke für deine Hilfe im Voraus.
Gruß
Sergeij