gnuheter-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnuheter-dev] Massa fixar i user.php


From: Ulf Harnhammar
Subject: [Gnuheter-dev] Massa fixar i user.php
Date: Tue, 4 Jun 2002 18:42:28 +0200 (CEST)

Hej igen,

jag tittade vidare i koden och fann att kontrollen av ny användare i
user.php inte riktigt föll mig i smaken. Förutom massor med småändringar
och tillägg i reguljära uttryck och dylikt delade jag upp userChecks alla
tester i tre funktioner. Dessutom kan koden nu visa mer än ett fel på en
nyregistrering åt gången.

// Ulf Härnhammar (hmm, fint väder utanför, dags att lägga ner det här)


--- user.php.OLD        Tue Jun  4 17:49:25 2002
+++ user.php    Tue Jun  4 18:31:03 2002
@@ -43,22 +43,46 @@
        echo "<p>\n";
 }
 
+function userCheckMail($email) {
+        if (strrpos($email,' ') > 0) return "FEL: Epostadressen får inte 
innehålla mellanslag.";
+       if ((!$email) || ($email == "") || 
(!eregi("^[-_.0-9a-z]+@([0-9a-z][-0-9a-z]+\.)+[a-z]{2,6}$",$email)) ||
+            (eregi('@whitehouse\.gov$',$email)) || (eregi('^echo@',$email)))
+          return "FEL: Felaktig epostadress."; # localhost och 127.0.0.1 
blockas redan
+
+        return false;
+}
+
+function userCheckUsername($uname) {
+       if 
(eregi("^(root|adm|linux|webmaster|admin|god|administrator|staff|nobody|anonymous|anonym|superuser|operator|gnuheter|support|gnu)$",$uname))
+          return "FEL: Namnet är reserverat.";
+       if (strlen($uname) > 25) return "FEL: Användarnamnet är för långt. Det 
måste innehålla färre än 26 tecken.";
+       if (strrpos($uname,' ') > 0) return "FEL: Användarnamnet får inte 
innehålla mellanslag.";
+       if ((!$uname) || ($uname == "") || (ereg("[^a-zA-Z0-9_-]",$uname))) 
return "FEL: Otillåtet användarnamn.";
+
+        return false;
+}
+
 function userCheck($uname, $email) {
-       $stop = "";
-       if ((!$email) || ($email == "") || 
(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email))) $stop = 
"FEL: felaktig epostadress";
-       if (strrpos($uname,' ') > 0) $stop = "FEL: Epostadressen får inte 
innehålla mellanslag.";
-       if ((!$uname) || ($uname == "") || (ereg("[^a-zA-Z0-9_-]",$uname))) 
$stop = "FEL: Otillåtet användarnamn.";
-       if (strlen($uname) > 25) $stop = "FEL: Användarnamnet är för långt. Det 
måste innehålla färre än 25 tecken.";
-       if 
(eregi("^((root)|(adm)|(linux)|(webmaster)|(admin)|(god)|(administrator)|(staff)|(nobody)|(anonymous)|(anonym)|(superuser)|(operator)|(gnuheter))$",$uname))
 $stop = "FEL: Namnet är reserverat.";
-       if (strrpos($uname,' ') > 0) $stop = "FEL: Användarnamnet får inte 
innehålla mellanslag.";
+        $stop = array();
+
+        $stopvar = userCheckMail($email);
+        if ($stopvar) $stop[] = $stopvar;
+
+        $stopvar2 = userCheckUsername($uname);
+        if ($stopvar2) $stop[] = $stopvar2;
+
        dbconnect();
-       if (mysql_num_rows(mysql_query("SELECT uname FROM users WHERE 
uname='$uname'")) > 0) $stop = "FEL: Användarnamnet redan upptaget.";
-       if (mysql_num_rows(mysql_query("SELECT email FROM users WHERE 
email='$email'")) > 0) $stop = "FEL: Epostadressen är redan registrerad.";
+       if (mysql_num_rows(mysql_query("SELECT uname FROM users WHERE 
uname='$uname'")) > 0) $stop[] = "FEL: Användarnamnet är redan upptaget.";
+       if (mysql_num_rows(mysql_query("SELECT email FROM users WHERE 
email='$email'")) > 0) $stop[] = "FEL: Epostadressen är redan registrerad.";
 
-       if ($stop) {
-               $stop = "<div align=\"center\">$stop</div><br>\n";
-               return($stop);
+       if (count($stop) > 0) {
+                $stopret = "<div align=\"center\">\n";
+                foreach ($stop as $stopval)
+                  $stopret .= "$stopval<br>\n";
+                $stopret .= "</div>\n";
+               return($stopret);
        }
+
        return false;
 }
 
@@ -85,8 +109,8 @@
                echo "Username: $uname<br>\n";
                echo "Email: $email<br>\n";
                echo "<form action=\"user.php\" method=\"POST\">\n";
-               echo "  <input type=\"hidden\" name=\"uname\" value=\"<?= 
$uname; ?>\">\n";
-               echo "  <input type=\"hidden\" name=\"email\" value=\"<?= 
$email; ?>\">\n";
+               echo "  <input type=\"hidden\" name=\"uname\" 
value=\"$uname\">\n";
+               echo "  <input type=\"hidden\" name=\"email\" 
value=\"$email\">\n";
                echo "  <input type=\"hidden\" name=\"op\" 
value=\"finish\"><br><br>\n";
                echo "  <input type=\"submit\" value=\"Färdig\">\n";
                echo "</form>\n";

Attachment: gnuheter_patch2
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]