login/edit: initial code cleanup to prepare for other columns
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 9 Jun 2018 01:06:14 +0000 (03:06 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Sat, 9 Jun 2018 03:53:09 +0000 (05:53 +0200)
login/edit.php

index 7ebe7b907ad2875a7653de76b6984347e99123ae..116abb302e7df0806346a55f91af3034c29d7fb9 100644 (file)
@@ -1,29 +1,36 @@
 <?php
 global $User;
+if (empty($User)) {
+       return;
+}
 
-if ($_POST and isset($_POST['email'])) {
-       if ($error = setmailform($_POST)) {
-               print "<p class=warn>$error</p>\n\n";
-       }
-       else {
-               print "<p>Het e-mailadres is ingesteld.</p>\n\n";
+$userdir = $User['dir'];
+$setfile = "$userdir/email.txt";
+
+$error = NULL;
+if ($_POST) {
+       foreach (@$_POST['email'] as $val) {
+               if (!isset($val)) {
+                       continue;
+               }
+               if (!is_writable(file_exists($setfile) ? $setfile : $userdir)) {
+                       $error = "Kan niet worden aangepast.";
+                       continue;
+               }
+               if (!file_put_contents($setfile, $val)) {
+                       $error = "Fout bij opslaan.";
+               }
        }
-}
 
-function setmailform($input = [])
-{
-       global $User;
-       $setfile = "{$User['dir']}/email.txt";
-       if (!is_writable(file_exists($setfile) ? $setfile : dirname($setfile))) {
-               return "Het e-mailadres kan niet worden aangepast voor deze gebruiker.";
+       if ($error) {
+               print "<p class=warn>Instellingen zijn niet (volledig) opgeslagen. Probeer het later nog eens.</p>\n\n";
        }
-       if (!file_put_contents($setfile, @$_POST['email'])) {
-               return "Het e-mailadres kon niet worden opgeslagen. Probeer het later nog eens.";
+       else {
+               print "<p>Het e-mailadres is ingesteld.</p>\n\n";
        }
-       return;
 }
 
-$usermail = @file_get_contents("{$User['dir']}/email.txt");
+$usermail = @file_get_contents($setfile);
 ?>
 <form method="post" class="inline">
        <p>
@@ -31,7 +38,20 @@ $usermail = @file_get_contents("{$User['dir']}/email.txt");
        Wij zullen dit adres nooit vrij- of doorgeven.
        </p>
        <p>
-       <input type="email" name="email" id="email" value="<?= htmlspecialchars($usermail) ?>" placeholder="Geen e-mailadres ingesteld" />
+<?php
+       print "\t<input";
+       printf(' type="%s" name="%s" id="%1$s" value="%s"',
+               'email',
+               'email',
+               htmlspecialchars($usermail)
+       );
+       print ' placeholder="Geen e-mailadres ingesteld"';
+       print " />\n";
+
+       if ($error) {
+               print "<span class=warn>$error</span>\n";
+       }
+?>
        <input type="submit" value="Opslaan" />
        </p>
 </form>