[pmwiki-users] creating a page and setting password in php
Petko Yotov
5ko at free.fr
Mon Jul 16 06:59:32 CDT 2007
On Monday 16 July 2007, Ilja Livenson wrote:
> I would like to achieve the following: have a user fill the form, create a
> page populated with data from the form, set a edit/upload password and mail
> them to the user. But here's my problem - it seems pretty stupid, but I
> cannot' set password and populate page at the same time (in one
> transaction) - it's either one or another.
>
> Basically, my code is like this:
>
> $base = MakePageName($pagename, "Students.Invitation");
> $basegroup = PageVar($base, '$Group');
> $newpage = MakePageName($base, "$basegroup.$name");
>
> $new['text'] = "smth template";
>
> PostPage($newpage, $new, $new);
>
> // --- setting password ---
> Lock(2);
> $auth = RetrieveAuthPage($newpage, 'attr', false);
> $password = gen_password();
> $auth['passwdedit'] = crypt($password);
> $auth['passwdupload'] = crypt($password);
> mail($email, 'password', "$password");
> WritePage($page, $auth);
> Lock(0);
> // --- done setting password ----
You should be able to do it at the same time:
$new['text'] = "smth template";
$password = gen_password();
$new['passwdedit'] = crypt($password);
$new['passwdupload'] = crypt($password);
UpdatePage($newpage, $old, $new);
mail(whatever);
All data (text, passwords) is in the $new array. Use the UpdatePage()
function, not PostPage().
Note that the code you posted, if it is that simple, it may allow someone to
overwrite existing pages (and by the occasion, change their passwords). You
should check to see if it is really a new page.
See also:
http://pmwiki.org/wiki/PmWiki/Functions
http://pmwiki.org/wiki/Cookbook/DebuggingForCookbookAuthors
Thanks,
Petko
More information about the pmwiki-users
mailing list