[pmwiki-users] Redirect issues
Marcus
prima at wordit.com
Sun Jul 20 20:30:30 CDT 2008
I'm having trouble with redirects in recipes. I get the "Redirect
Loop" browser error in certain contexts when I use the Redirect(page)
function. In other cases no redirect is executed.
Can anybody look at the 3 examples below and tell me why one works and
the other two do not? I'm running beta67.
The pages have a form to enter a page name and then create a new page etc.
This code causes the redirect loop error. I am running lighttpd and
Firefox 3, in case that is of significance:
---------------------------------------
<?php if (!defined('PmWiki')) exit();
$mypage = $_POST["mypage"];
if (!$mypage) {
$msg .= " No input";
}
$FmtPV['$Msg'] = ' " '.$msg.' " ';
$newpage = MakePageName("Users.Home", $mypage);
if (PageExists($newpage)) {
$msg .= "That page already exists: $mypage";
$FmtPV['$Msg'] = '"'.$msg.'"';
}
else {
$mypage = $_POST["mypage"];
$mypage = ucfirst($mypage);
$new['text'] = "Enter new text here.\n\n";
$thispage = 'Users' . '.'. $mypage;
$urlfmt = '$PageUrl?action=edit';
PostPage("$thispage", $new, $new);
Redirect("$thispage", $urlfmt);
}
----------------------------------------
It is a browser error, not a pmwiki error text. A fixed page name like
Main.HomePage does not work either.
2) No error, but the redirect does not occur:
-------------------------------------------------------
<?php if (!defined('PmWiki')) exit();
$mypage = $_POST["mypage"];
if (!$mypage) {
$msg .= " No input";
}
if (PageExists($newpage)) {
$msg .= "That page already exists: $mypage";
$FmtPV['$Msg'] = '"'.$msg.'"';
}
else {
$mypage = ucfirst($mypage); # First letter needs to be upper-case
$new['text'] = "Enter new text here.\n\n";
$thispage = 'Users' . '.'. $mypage;
PostPage($thispage, $new, $new);
#Go to new page
Redirect($thispage);
}
------------------------------
3) This redirect works:
-------------------------------------------------------
<?php if (!defined('PmWiki')) exit();
$redirpage = $_POST['redirpage'];
if ( $redirpage ){
$FmtPV['$RedirMsg'] = "'Got page: $redirpage'";
$urlfmt = '$PageUrl?action=edit';
Redirect("Users.Home", $urlfmt);
}
else {
$FmtPV['$RedirMsg'] = '"No page"';
}
----------------
Many Thanks,
Marcus
More information about the pmwiki-users
mailing list