From e89e2574c02f8bc893721aeaf705cb57de9489ee Mon Sep 17 00:00:00 2001 From: arf20 Date: Mon, 15 Apr 2024 17:45:26 +0200 Subject: Initial commit --- README.md | 3 ++ arfnet_logo.png | Bin 0 -> 78409 bytes example.html | 33 +++++++++++++++ index.php | 36 +++++++++++++++++ mlmmj.php | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ style.css | 82 +++++++++++++++++++++++++++++++++++++ subscribe.php | 55 +++++++++++++++++++++++++ tile1.jpg | Bin 0 -> 1500 bytes 8 files changed, 331 insertions(+) create mode 100644 README.md create mode 100755 arfnet_logo.png create mode 100644 example.html create mode 100644 index.php create mode 100644 mlmmj.php create mode 100644 style.css create mode 100644 subscribe.php create mode 100755 tile1.jpg diff --git a/README.md b/README.md new file mode 100644 index 0000000..eac5110 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# arfnet2-lists +ARFNET mailing lists index + diff --git a/arfnet_logo.png b/arfnet_logo.png new file mode 100755 index 0000000..82adbef Binary files /dev/null and b/arfnet_logo.png differ diff --git a/example.html b/example.html new file mode 100644 index 0000000..f969d57 --- /dev/null +++ b/example.html @@ -0,0 +1,33 @@ + + + +mlmmj-webinterface + + + +

+

subscribe

+
+ + + + +
+ +
+

+ +

+

unsubscribe

+
+ + + + +
+ +
+

+ + + diff --git a/index.php b/index.php new file mode 100644 index 0000000..cc0b1bd --- /dev/null +++ b/index.php @@ -0,0 +1,36 @@ + + + + + + + + ARFNET Lists + + +
+ ARFNET +
+
+
+
+
+

ARFNET Mailing Lists

+ +
+
+
+ + diff --git a/mlmmj.php b/mlmmj.php new file mode 100644 index 0000000..c976372 --- /dev/null +++ b/mlmmj.php @@ -0,0 +1,122 @@ + + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + + +// error_reporting(E_ALL); + +class mlmmj +{ + var $email; + var $mailinglist; + var $job; + var $redirect_success; + var $redirect_failure; + + var $delimiter; + var $errors; + + function is_email($string="") { + return eregi("^[a-z0-9\._-]+".chr(64)."+[a-z0-9\._-]+\.+[a-z]{2,4}$", $string); + } + + function error($string="") { + $this->errors = TRUE; + die($string); + } + + function mlmmj() { + // set mandatory vars... + $this->errors = FALSE; + $this->delimiter = "+"; + + if (!isset($_POST["email"]) && + !isset($_POST["mailinglist"]) && + !isset($_POST["job"]) && + !isset($_POST["redirect_success"]) && + !isset($_POST["redirect_failure"])) + { + $this->errors = TRUE; + if(isset($_POST["redirect_failure"])) { + header("Location: ".$_POST["redirect_failure"]); + exit; + } + else + die("An error occurred. Please check contrib/web/php-user/README for details."); + } + else { + if ($this->is_email($_POST["email"])) + $this->email = $_POST["email"]; + else + $this->error("ERROR: email is not a valid email address."); + + if ($this->is_email($_POST["mailinglist"])) + $this->mailinglist = $_POST["mailinglist"]; + else + $this->error("ERROR: mailinglist is not a valid email address."); + + $this->job = $_POST["job"]; + + if (!(($this->job == "subscribe") OR ($this->job == "unsubscribe"))) { + $this->error("ERROR: job unknown."); + } + + $this->redirect_failure = $_POST["redirect_failure"]; + $this->redirect_success = $_POST["redirect_success"]; + + } + + // now we should try to go ahead and {sub,unsub}scribe... ;) + + if(!$this->errors) { + // @ ^= char(64) + + $to = str_replace(chr(64),$this->delimiter.$this->job.chr(64),$this->mailinglist); + $subject = $this->job." to ".$this->mailinglist; + $body = $this->job; + $addheader = ""; + $addheader .= "Received: from ". $_SERVER["REMOTE_ADDR"] + ." by ". $_SERVER["SERVER_NAME"]. " with HTTP;\r\n\t".date("r")."\n"; + $addheader .= "X-Originating-IP: ".$_SERVER["REMOTE_ADDR"]."\n"; + $addheader .= "X-Mailer: mlmmj-webinterface powered by PHP/". phpversion() ."\n"; + $addheader .= "From: ".$this->email."\n"; + $addheader .= "Cc: ".$this->email."\n"; + + if(!mail($to, $subject, $body, $addheader)) + $this->error($this->job." failed."); + } + + if($this->errors) { + //header("Location: ".$this->redirect_failure); + //exit; + die($this->errors); + } else { + header("Location: ".$this->redirect_success); + exit; + } + } +} + + +$mailinglist = new mlmmj; + +?> diff --git a/style.css b/style.css new file mode 100644 index 0000000..6bd7bd7 --- /dev/null +++ b/style.css @@ -0,0 +1,82 @@ +header *{ + display: inline-block; + vertical-align: middle; +} + +.title { + font-size: 36px; + vertical-align: middle; +} + +body { + background-image: url("tile1.jpg"); + background-repeat: repeat; +} + +.fst { + font-size: 150%; +} + +.sec { + margin-left: 20px; + font-size: 150%; +} + +.col { + float: left; +} + +.col5 { + float: left; + width: 50%; +} + +.col8 { + float: left; + width: 80%; +} + +.col2 { + float: left; + width: 20%; +} + +.col3 { + float: left; + width: 30%; +} + +.row:after { + content: ""; + display: table; + clear: both; +} + +.img { + width: 60%; +} + +.wrapper{ + width: 350px; + padding: 20px; + border-style: double; + margin: auto; + margin-top: 200px; +} + +.form { + width: fit-content; + padding: 20px; + border-style: double; +} + +.border { + width: fit-content; + padding: 20px; + border: 1px solid black; +} + +table, th, td { + border: 1px solid black; +} + diff --git a/subscribe.php b/subscribe.php new file mode 100644 index 0000000..d944530 --- /dev/null +++ b/subscribe.php @@ -0,0 +1,55 @@ + + + + + + + ARFNET Lists + + + +
+ ARFNET +
+
+
+

Back

+
+

+ +

Subscription

+
+
+ +
+ "> + + + +
+
+ +

Unsubscription

+
+
+ +
+ "> + + + +
+
+
+
+ + diff --git a/tile1.jpg b/tile1.jpg new file mode 100755 index 0000000..2e993e3 Binary files /dev/null and b/tile1.jpg differ -- cgit v1.2.3