2020-11-29 01:55:31 +01:00
|
|
|
<?php
|
2023-08-20 00:33:05 +02:00
|
|
|
/*
|
|
|
|
* rslight NNTP<->HTTP Gateway
|
|
|
|
* Download: https://news.novabbs.com/getrslight
|
2020-11-29 01:55:31 +01:00
|
|
|
*
|
2023-08-20 00:33:05 +02:00
|
|
|
* Based on Newsportal by Florian Amrhein
|
2020-11-29 01:55:31 +01:00
|
|
|
*
|
2023-08-20 00:33:05 +02:00
|
|
|
* E-Mail: retroguy@novabbs.com
|
|
|
|
* Web: https://news.novabbs.com
|
2020-11-29 01:55:31 +01:00
|
|
|
*
|
2023-08-20 00:33:05 +02:00
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
* (at your option) any later version.
|
2020-11-29 01:55:31 +01:00
|
|
|
*
|
2023-08-20 00:33:05 +02:00
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
2020-11-29 01:55:31 +01:00
|
|
|
*
|
2023-08-20 00:33:05 +02:00
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
2020-11-29 01:55:31 +01:00
|
|
|
*/
|
|
|
|
session_start();
|
2023-12-23 21:07:03 +01:00
|
|
|
if (! isset($_SESSION['last_access']) || (time() - $_SESSION['last_access']) > 60) {
|
|
|
|
$_SESSION['last_access'] = time();
|
|
|
|
}
|
2020-11-29 01:55:31 +01:00
|
|
|
include "config.inc.php";
|
2023-08-20 00:33:05 +02:00
|
|
|
$CONFIG = include ($config_file);
|
2023-10-04 15:26:37 +02:00
|
|
|
$logfile = $logdir . '/post.log';
|
|
|
|
|
2023-12-23 16:57:12 +01:00
|
|
|
$ip_pass = false;
|
|
|
|
if (! isset($_SESSION['remote_address'])) {
|
|
|
|
$_SESSION['remote_address'] = $_SERVER['REMOTE_ADDR'];
|
|
|
|
$_SESSION['start_address'] = $_SESSION['remote_address'];
|
|
|
|
$ip_pass = true;
|
|
|
|
} else {
|
|
|
|
if ($_SERVER['REMOTE_ADDR'] != $_SESSION['start_address']) {
|
|
|
|
$ip_pass = false;
|
|
|
|
} else {
|
|
|
|
$ip_pass = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ($ip_pass && $_SESSION['pass']) {
|
|
|
|
$logged_in = true;
|
|
|
|
} else {
|
|
|
|
$logged_in = false;
|
|
|
|
}
|
2023-12-23 21:07:03 +01:00
|
|
|
if ($CONFIG['anonuser'] == '1') {
|
2023-12-23 16:57:12 +01:00
|
|
|
$logged_in = false;
|
|
|
|
}
|
2023-10-04 15:26:37 +02:00
|
|
|
// This will log user post info (group and username)
|
|
|
|
$enable_post_log = false;
|
|
|
|
if ($OVERRIDES['enable_post_log'] > 0) {
|
|
|
|
$enable_post_log = $OVERRIDES['enable_post_log'];
|
|
|
|
}
|
2023-08-20 00:33:05 +02:00
|
|
|
|
|
|
|
@$fieldnamedecrypt = $_REQUEST['fielddecrypt'];
|
|
|
|
// @$newsgroups=$_REQUEST["newsgroups"];
|
|
|
|
// @$group=$_REQUEST["group"];
|
|
|
|
@$type = $_REQUEST["type"];
|
|
|
|
@$subject = stripslashes($_POST[md5($fieldnamedecrypt . "subject")]);
|
|
|
|
@$name = $_POST[md5($fieldnamedecrypt . "name")];
|
|
|
|
@$email = $_POST[md5($fieldnamedecrypt . "email")];
|
2024-01-05 14:58:51 +01:00
|
|
|
@$body = $_POST[md5($fieldnamedecrypt . "body")];
|
2023-08-20 00:33:05 +02:00
|
|
|
@$abspeichern = $_REQUEST["abspeichern"];
|
|
|
|
@$references = $_REQUEST["references"];
|
|
|
|
@$id = $_REQUEST["id"];
|
2023-09-09 14:52:18 +02:00
|
|
|
if (! isset($group) && isset($newsgroups)) {
|
2023-08-20 00:33:05 +02:00
|
|
|
$group = $newsgroups;
|
2023-09-09 14:52:18 +02:00
|
|
|
}
|
2020-11-29 01:55:31 +01:00
|
|
|
// Save name in cookies
|
2023-12-23 16:57:12 +01:00
|
|
|
if (strcmp(stripslashes($name), $CONFIG['anonusername']) !== 0) {
|
|
|
|
if (($setcookies == true) && (isset($abspeichern)) && ($abspeichern == "ja")) {
|
|
|
|
setcookie("mail_name", stripslashes($name), time() + (3600 * 24 * 90), "/");
|
|
|
|
}
|
2023-08-20 00:33:05 +02:00
|
|
|
}
|
|
|
|
if ((isset($post_server)) && ($post_server != ""))
|
|
|
|
$server = $post_server;
|
|
|
|
if ((isset($post_port)) && ($post_port != ""))
|
|
|
|
$port = $post_port;
|
2020-11-29 01:55:31 +01:00
|
|
|
|
|
|
|
include $file_newsportal;
|
2021-04-02 08:47:24 +02:00
|
|
|
include "head.inc";
|
2023-09-04 15:06:43 +02:00
|
|
|
|
|
|
|
if (disable_page_by_user_agent($client_device, "bot", "Post")) {
|
|
|
|
echo "<center>Page Disabled</center>";
|
|
|
|
include "tail.inc";
|
|
|
|
exit();
|
|
|
|
}
|
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
global $synchro_user, $synchro_pass;
|
2020-11-29 01:55:31 +01:00
|
|
|
// check to which groups the user is allowed to post to
|
2023-08-20 00:33:05 +02:00
|
|
|
$thisgroup = _rawurldecode($_REQUEST['group']);
|
2024-02-29 19:37:59 +01:00
|
|
|
|
|
|
|
// Is this a reply to an article containing Followup-To?
|
2024-04-15 12:47:44 +02:00
|
|
|
if (isset($_REQUEST['fgroups'])) {
|
2024-02-29 19:37:59 +01:00
|
|
|
$thisgroup = $_REQUEST['fgroups'];
|
|
|
|
}
|
|
|
|
|
2024-02-25 04:33:14 +01:00
|
|
|
$newsgroups = $thisgroup;
|
|
|
|
if ($_REQUEST['returngroup']) {
|
2024-02-25 02:57:10 +01:00
|
|
|
$returngroup = $_REQUEST['returngroup'];
|
|
|
|
} else {
|
|
|
|
$returngroup = $thisgroup;
|
|
|
|
}
|
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
echo '<h1 class="np_thread_headline">';
|
|
|
|
echo '<a href="' . $file_index . '" target=' . $frame['menu'] . '>' . basename(getcwd()) . '</a> / ';
|
2024-03-01 00:34:24 +01:00
|
|
|
echo '<a href="' . $file_thread . '?group=' . rawurlencode($returngroup) . '" target=' . $frame["content"] . '>' . htmlspecialchars(group_display_name($returngroup)) . '</a>';
|
2023-08-20 00:33:05 +02:00
|
|
|
if (isset($type) && $type == 'post') {
|
|
|
|
echo ' / ' . $subject . '</h1>';
|
|
|
|
} else {
|
2021-02-24 09:52:20 +01:00
|
|
|
echo '</h1>';
|
2023-08-20 00:33:05 +02:00
|
|
|
}
|
2023-04-22 20:29:58 +02:00
|
|
|
|
2020-11-29 01:55:31 +01:00
|
|
|
// has the user write-rights on the newsgroups?
|
2023-08-20 00:33:05 +02:00
|
|
|
if ((function_exists("npreg_group_has_read_access") && ! npreg_group_has_read_access($newsgroups)) || (function_exists("npreg_group_has_write_access") && ! npreg_group_has_write_access($newsgroups))) {
|
|
|
|
die("access denied");
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// Load name from cookies
|
|
|
|
if ($setcookies) {
|
2023-12-23 16:57:12 +01:00
|
|
|
if ((isset($_COOKIE["mail_name"])) && (! isset($name)))
|
|
|
|
$name = $_COOKIE["mail_name"];
|
2023-08-20 00:33:05 +02:00
|
|
|
// if ((isset($_COOKIE["cookie_email"])) && (!isset($email)))
|
|
|
|
// $email=$_COOKIE["cookie_email"];
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// Load name and email from the registration system, if available
|
2023-08-20 00:33:05 +02:00
|
|
|
if (function_exists("npreg_get_name")) {
|
|
|
|
$name = npreg_get_name();
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
if (function_exists("npreg_get_email")) {
|
|
|
|
$email = npreg_get_email();
|
|
|
|
$form_noemail = true;
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
if (! strcmp($name, $CONFIG['anonusername']) && (isset($CONFIG['anonuser']))) {
|
|
|
|
$userpass = $CONFIG['anonuserpass'];
|
|
|
|
$email = $name . $CONFIG['email_tail'];
|
2023-12-23 16:57:12 +01:00
|
|
|
$_SESSION['pass'] = '0';
|
2020-11-29 01:55:31 +01:00
|
|
|
} else {
|
2023-08-20 00:33:05 +02:00
|
|
|
$userpass = $email;
|
|
|
|
$request = "email";
|
|
|
|
$get_email = get_user_config($name, $request);
|
|
|
|
if ($get_email === FALSE) {
|
|
|
|
$email = $name . $CONFIG['email_tail'];
|
|
|
|
} else {
|
|
|
|
$email = trim($get_email);
|
|
|
|
}
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($CONFIG['synchronet']) && ($CONFIG['synchronet'] == true)) {
|
2023-08-20 00:33:05 +02:00
|
|
|
$synchro_user = $name;
|
|
|
|
$synchro_pass = $userpass;
|
|
|
|
}
|
2020-11-29 01:55:31 +01:00
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
if ($name == "")
|
|
|
|
$name = $_SERVER['REMOTE_USER'];
|
2020-11-29 01:55:31 +01:00
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
if ((! isset($references)) || ($references == "")) {
|
|
|
|
$references = false;
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
if (! isset($type)) {
|
|
|
|
$type = "new";
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
if ($type == "new") {
|
|
|
|
$subject = "";
|
|
|
|
$bodyzeile = "";
|
|
|
|
$show = 1;
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// Is there a new article to post to the newsserver?
|
2023-08-20 00:33:05 +02:00
|
|
|
if ($type == "post") {
|
|
|
|
$show = 0;
|
|
|
|
if (! $CONFIG['synchronet']) {
|
2023-12-23 16:57:12 +01:00
|
|
|
if (! $logged_in) {
|
|
|
|
if (check_bbs_auth(trim($name), $userpass) == FALSE) {
|
|
|
|
$type = "retry";
|
|
|
|
$error = $text_error["auth_error"];
|
|
|
|
$_SESSION['pass'] = false;
|
|
|
|
$logged_in = false;
|
|
|
|
} else {
|
|
|
|
$_SESSION['pass'] = true;
|
|
|
|
$logged_in = true;
|
|
|
|
}
|
2020-12-04 07:12:04 +01:00
|
|
|
}
|
2023-04-14 03:52:30 +02:00
|
|
|
}
|
2024-01-14 14:53:33 +01:00
|
|
|
// Check that user has not been recently banned
|
2024-02-19 19:39:22 +01:00
|
|
|
if (! is_file($config_dir . '/users/' . strtolower(trim($name)))) {
|
2024-01-14 14:53:33 +01:00
|
|
|
$type = "retry";
|
|
|
|
$error = $text_error["auth_error"];
|
|
|
|
$_SESSION['pass'] = false;
|
|
|
|
$logged_in = false;
|
|
|
|
}
|
2023-08-20 00:33:05 +02:00
|
|
|
// error handling
|
|
|
|
if (trim($body) == "") {
|
|
|
|
$type = "retry";
|
|
|
|
$error = $text_post["missing_message"];
|
|
|
|
}
|
|
|
|
if ((trim($email) == "") && (! isset($anonym_address))) {
|
|
|
|
$type = "retry";
|
|
|
|
$error = $text_post["missing_email"];
|
|
|
|
}
|
|
|
|
if (($email) && (! validate_email(trim($email)))) {
|
|
|
|
$type = "retry";
|
|
|
|
$error = $text_post["error_wrong_email"];
|
|
|
|
}
|
|
|
|
if (trim($name) == "") {
|
|
|
|
$type = "retry";
|
|
|
|
$error = $text_post["missing_name"];
|
|
|
|
}
|
|
|
|
if (trim($subject) == "") {
|
|
|
|
$type = "retry";
|
|
|
|
$error = $text_post["missing_subject"];
|
|
|
|
}
|
|
|
|
|
|
|
|
// captcha-check
|
|
|
|
if (($post_captcha) && (captcha::check() == false)) {
|
|
|
|
$type = "retry";
|
|
|
|
$error = $text_post["captchafail"];
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($type == "post") {
|
|
|
|
$name = trim($name);
|
|
|
|
if (! $CONFIG['readonly']) {
|
|
|
|
// post article to the newsserver
|
|
|
|
if ($references)
|
|
|
|
$references_array = explode(" ", $references);
|
|
|
|
else
|
|
|
|
$references_array = false;
|
|
|
|
if (($email == "") && (isset($anonym_address)))
|
|
|
|
$nemail = $anonym_address;
|
|
|
|
else
|
|
|
|
$nemail = $email;
|
|
|
|
$rate_limit = get_user_config($name, 'rate_limit');
|
|
|
|
if (($rate_limit !== FALSE) && ($rate_limit > 0)) {
|
|
|
|
$CONFIG['rate_limit'] = $rate_limit;
|
|
|
|
}
|
|
|
|
if ($CONFIG['rate_limit'] == true) {
|
|
|
|
$postsremaining = check_rate_limit($name);
|
|
|
|
if ($postsremaining < 1) {
|
|
|
|
$wait = check_rate_limit($name, 0, 1);
|
|
|
|
echo 'You have reached the limit of ' . $CONFIG['rate_limit'] . ' posts per hour.<br />Please wait ' . round($wait) . ' minutes before posting again.';
|
2024-01-11 15:48:20 +01:00
|
|
|
echo '<p><a href="' . $file_thread . '?group=' . urlencode($returngroup) . '">' . $text_post["button_back"] . '</a> ' . $text_post["button_back2"] . ' ' . group_display_name($returngroup) . '</p>';
|
2023-08-20 00:33:05 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (isset($_FILES["photo"]) && $_FILES["photo"]["error"] == 0) {
|
|
|
|
$_FILES['photo']['name'] = preg_replace('/[^a-zA-Z0-9\.]/', '_', $_FILES['photo']['name']);
|
|
|
|
// There is an attachment to handle
|
2024-02-09 18:39:09 +01:00
|
|
|
$message = message_post(quoted_printable_encode($subject), $nemail . " (" . quoted_printable_encode($name) . ")", $newsgroups, $references_array, addslashes($body), $_POST['encryptthis'], $_POST['encryptto'], strtolower($name), $_POST['fromname'], null, true);
|
2023-08-20 00:33:05 +02:00
|
|
|
} else {
|
2024-02-09 18:39:09 +01:00
|
|
|
$message = message_post(quoted_printable_encode($subject), $nemail . " (" . quoted_printable_encode($name) . ")", $newsgroups, $references_array, addslashes($body), $_POST['encryptthis'], $_POST['encryptto'], strtolower($name), $_POST['fromname']);
|
2023-08-20 00:33:05 +02:00
|
|
|
}
|
|
|
|
// Article sent without errors, or duplicate?
|
|
|
|
if ((substr($message, 0, 3) == "240") || (substr($message, 0, 7) == "441 435")) {
|
2024-04-16 16:19:03 +02:00
|
|
|
// Is there a moderated group in Newsgroups: ?
|
|
|
|
if(is_moderated($newsgroups)) {
|
|
|
|
echo '<p>** <i>Moderated Newsgroup **</p>';
|
|
|
|
echo '<p>** <i>Message Queued for Moderation **</p>';
|
|
|
|
} else {
|
|
|
|
echo '<p>' . $text_post["message_posted2"] . '</p>';
|
|
|
|
}
|
2023-08-20 00:33:05 +02:00
|
|
|
if (isset($CONFIG['auto_return']) && ($CONFIG['auto_return'] == true)) {
|
2024-01-11 15:48:20 +01:00
|
|
|
echo '<meta http-equiv="refresh" content="0;url=' . $file_thread . '?group=' . urlencode($returngroup) . '"';
|
2023-08-20 00:33:05 +02:00
|
|
|
}
|
|
|
|
if ($CONFIG['rate_limit'] == true) {
|
|
|
|
$postsremaining = check_rate_limit($name, 1);
|
|
|
|
echo 'You have ' . $postsremaining . ' posts remaining of ' . $CONFIG['rate_limit'] . ' posts per hour.<br />';
|
|
|
|
if ($postsremaining < 1) {
|
|
|
|
$wait = check_rate_limit($name, 0, 1);
|
|
|
|
echo 'Please wait ' . round($wait) . ' minutes before posting again.<br />';
|
|
|
|
}
|
|
|
|
}
|
2023-10-04 15:26:37 +02:00
|
|
|
// Post logging
|
|
|
|
if ($enable_post_log) {
|
2024-01-11 15:48:20 +01:00
|
|
|
file_put_contents($logfile, "\n" . format_log_date() . " Post in: " . $returngroup . " by " . $name, FILE_APPEND);
|
2023-10-04 15:26:37 +02:00
|
|
|
}
|
2024-01-11 15:48:20 +01:00
|
|
|
echo '<p><a href="' . $file_thread . '?group=' . $returngroup . '">Back</a></p>';
|
2023-08-20 00:33:05 +02:00
|
|
|
} else {
|
|
|
|
// article not accepted by the newsserver
|
|
|
|
$type = "retry";
|
|
|
|
$error = $text_post["error_newsserver"] . "<br><pre>$message</pre>";
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
echo $text_post["error_readonly"];
|
|
|
|
}
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// A reply of an other article.
|
2023-08-20 00:33:05 +02:00
|
|
|
if ($type == "reply") {
|
|
|
|
$message = message_read($id, 0, $newsgroups);
|
|
|
|
$head = $message->header;
|
|
|
|
|
|
|
|
$body = explode("\n", $message->body[0]);
|
|
|
|
nntp_close($ns);
|
|
|
|
if ($head->name != "") {
|
|
|
|
$bodyzeile = $head->name;
|
2020-11-29 01:55:31 +01:00
|
|
|
} else {
|
2023-08-20 00:33:05 +02:00
|
|
|
$bodyzeile = $head->from;
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
2023-08-20 00:33:05 +02:00
|
|
|
|
|
|
|
// For Synchronet use
|
|
|
|
$fromname = $bodyzeile;
|
|
|
|
|
|
|
|
$bodyzeile = $text_post["wrote_prefix"] . $bodyzeile . $text_post["wrote_suffix"] . "\n\n";
|
|
|
|
for ($i = 0; $i <= count($body) - 1; $i ++) {
|
|
|
|
if ((isset($cutsignature)) && ($cutsignature == true) && ($body[$i] == '-- '))
|
|
|
|
break;
|
|
|
|
if (trim($body[$i]) != "") {
|
|
|
|
if ($body[$i][0] == '>')
|
|
|
|
$bodyzeile .= ">" . $body[$i] . "\n";
|
|
|
|
else
|
|
|
|
$bodyzeile .= "> " . $body[$i] . "\n";
|
|
|
|
} else {
|
|
|
|
$bodyzeile .= "\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$subject = $head->subject;
|
2024-02-29 19:37:59 +01:00
|
|
|
// Offer choice of whether to use Followup-To
|
|
|
|
$has_followup = false;
|
2023-08-20 00:33:05 +02:00
|
|
|
if (isset($head->followup) && ($head->followup != "")) {
|
|
|
|
$newsgroups = $head->followup;
|
2024-02-29 19:37:59 +01:00
|
|
|
$has_followup = $head->newsgroups;
|
2020-11-29 01:55:31 +01:00
|
|
|
} else {
|
2024-02-25 04:33:14 +01:00
|
|
|
$newsgroups = $head->newsgroups;
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
2023-08-20 00:33:05 +02:00
|
|
|
splitSubject($subject);
|
|
|
|
$subject = "Re: " . $subject;
|
|
|
|
// Cut off old parts of a subject
|
|
|
|
// for example: 'foo (was: bar)' becomes 'foo'.
|
|
|
|
$subject = preg_replace('/(\(wa[sr]: .*\))$/i', '', $subject);
|
|
|
|
$show = 1;
|
|
|
|
$references = false;
|
|
|
|
if (isset($head->references[0])) {
|
|
|
|
for ($i = 0; $i <= count($head->references) - 1; $i ++) {
|
|
|
|
$references .= $head->references[$i] . " ";
|
|
|
|
}
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
2023-08-20 00:33:05 +02:00
|
|
|
$references .= $head->id;
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
if ($type == "retry") {
|
|
|
|
$show = 1;
|
|
|
|
$bodyzeile = $body;
|
2020-11-29 01:55:31 +01:00
|
|
|
}
|
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
if ($show == 1) {
|
2020-11-29 01:55:31 +01:00
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
if ($newsgroups == "") {
|
|
|
|
echo $text_post["followup_not_allowed"];
|
|
|
|
echo " " . $newsgroups;
|
|
|
|
} else {
|
|
|
|
// show post form
|
|
|
|
$fieldencrypt = md5(rand(1, 10000000));
|
|
|
|
echo '<h1 class="np_post_headline">' . $text_post["group_head"] . group_display_name($newsgroups) . $text_post["group_tail"] . '</h1>';
|
|
|
|
|
|
|
|
if (isset($error))
|
|
|
|
echo "<p>$error</p>";
|
|
|
|
|
2024-01-07 23:52:50 +01:00
|
|
|
echo '<form action="' . $file_post . '" method="post" name="postform"';
|
|
|
|
echo 'enctype="multipart/form-data">';
|
|
|
|
|
|
|
|
echo '<div class="np_post_header">';
|
|
|
|
echo '<table><tr>';
|
|
|
|
echo '<td align="right"><b>' . $text_header["subject"] . '</b></td>';
|
|
|
|
echo '<td><input class="post" type="text" ';
|
|
|
|
echo 'name="' . md5($fieldencrypt . "subject") . '" ';
|
|
|
|
echo 'value="' . htmlspecialchars($subject) . '" ';
|
|
|
|
echo 'size="40" maxlength="' . $thread_maxSubject . '"></td>';
|
|
|
|
echo '</tr><tr>';
|
2024-04-15 12:47:44 +02:00
|
|
|
|
|
|
|
if ($has_followup) {
|
2024-02-29 19:37:59 +01:00
|
|
|
echo '<td align="right">';
|
|
|
|
echo '<input type="radio" id="hasfollowup" name="fgroups" value="' . $head->followup . '" checked>';
|
|
|
|
echo '</td><td>';
|
|
|
|
echo '<label for="followup">' . $head->followup . ' (followup-to is set)</label></td>';
|
|
|
|
echo '</tr><tr>';
|
|
|
|
echo '<tr><td align="right">';
|
|
|
|
echo '<input type="radio" id="nofollowup" name="fgroups" value="' . $head->newsgroups . '">';
|
|
|
|
echo '</td><td>';
|
|
|
|
echo '<label for="newsgroups">' . $head->newsgroups . '</label>';
|
|
|
|
echo '</tr><tr>';
|
|
|
|
}
|
2024-04-15 12:47:44 +02:00
|
|
|
|
2024-01-07 23:52:50 +01:00
|
|
|
echo '<td align="right"><b>' . $text_post["name"] . '</b></td>';
|
|
|
|
echo '<td align="left">';
|
2023-08-20 00:33:05 +02:00
|
|
|
if (! isset($name) && $CONFIG['anonuser'])
|
|
|
|
$name = $CONFIG['anonusername'];
|
2023-09-09 14:52:18 +02:00
|
|
|
if (isset($form_noname) && $form_noname === true) {
|
2023-08-20 00:33:05 +02:00
|
|
|
echo htmlspecialchars($name);
|
|
|
|
} else {
|
|
|
|
echo '<input class="post" type="text" name="' . md5($fieldencrypt . "name") . '"';
|
|
|
|
if (isset($name))
|
2024-01-05 14:58:51 +01:00
|
|
|
echo 'value="' . htmlspecialchars($name) . '"';
|
2023-12-23 16:57:12 +01:00
|
|
|
if ($logged_in) {
|
|
|
|
echo 'size="40" maxlength="40" readonly>';
|
|
|
|
} else {
|
|
|
|
echo 'size="40" maxlength="40">';
|
|
|
|
}
|
2023-08-20 00:33:05 +02:00
|
|
|
if ($CONFIG['anonuser'])
|
|
|
|
echo ' or "' . $CONFIG['anonusername'] . '" with no password';
|
|
|
|
}
|
2024-01-07 23:52:50 +01:00
|
|
|
echo '</td></tr><tr>';
|
2024-02-19 19:39:22 +01:00
|
|
|
echo '<td align="right"><b>' . $text_post["password"] . '</b></td>';
|
2024-01-07 23:52:50 +01:00
|
|
|
echo '<td align="left">';
|
2023-12-23 21:07:03 +01:00
|
|
|
// if (strcmp($user, $CONFIG['anonusername']) === 0) {
|
|
|
|
// $logged_in = false;
|
|
|
|
// }
|
2023-12-23 16:57:12 +01:00
|
|
|
|
|
|
|
if ($logged_in) {
|
|
|
|
echo '<input class="post" type="password" name="' . md5($fieldencrypt . "email") . '"value="**********"';
|
|
|
|
echo 'size="40" maxlength="40" readonly>';
|
|
|
|
} else {
|
|
|
|
echo '<input class="post" type="password" name="' . md5($fieldencrypt . "email") . '"';
|
|
|
|
echo 'size="40" maxlength="40">';
|
|
|
|
}
|
2024-02-20 00:33:44 +01:00
|
|
|
// Check for custom name/email from user configuration
|
|
|
|
if ($OVERRIDES['disable_change_name'] != true) {
|
|
|
|
$user_config = unserialize(file_get_contents($config_dir . '/userconfig/' . strtolower($name) . '.config'));
|
|
|
|
if (isset($user_config['display_name']) && trim($user_config['display_name']) != '') {
|
|
|
|
if (isset($user_config['display_email']) && trim($user_config['display_email']) != '') {
|
|
|
|
echo '<tr><td align="right">';
|
|
|
|
echo '<b>From: </b></td>';
|
|
|
|
$showemail = '<' . $user_config['display_email'] . '>';
|
|
|
|
echo '<td align="left">';
|
|
|
|
echo '<input class="post" type="text" value="' . $user_config['display_name'] . ' ' . htmlspecialchars($showemail) . '" size="40" maxlength="40" readonly>';
|
|
|
|
// echo $user_config['display_name'] . ' ' . htmlspecialchars($showemail);
|
|
|
|
echo '</td></tr>';
|
|
|
|
}
|
2024-02-19 19:39:22 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
echo '<input class="post" type="hidden" name="fromname" value="' . $fromname . '">';
|
2024-01-07 23:52:50 +01:00
|
|
|
echo '</td></tr>';
|
2023-08-20 00:33:05 +02:00
|
|
|
// May we post encrypted messages to this group?
|
|
|
|
if (check_encryption_groups($newsgroups)) {
|
2024-01-07 23:52:50 +01:00
|
|
|
echo '<tr>';
|
|
|
|
echo '<td align="left"><input type="checkbox" name="encryptthis"';
|
|
|
|
echo 'value="encrypt"> <b>Encrypt to:</b></td>';
|
2024-02-19 19:39:22 +01:00
|
|
|
echo '<td><input type="text" name="encryptto" value="' . $fromname . '"></td>';
|
2024-01-07 23:52:50 +01:00
|
|
|
echo '</tr>';
|
2023-08-20 00:33:05 +02:00
|
|
|
}
|
2024-01-07 23:52:50 +01:00
|
|
|
echo '</table></div>';
|
|
|
|
|
|
|
|
echo '<div class="np_post_body">';
|
|
|
|
echo '<table><tr>';
|
2024-02-19 19:39:22 +01:00
|
|
|
echo '<td><b>' . $text_post["message"] . '</b><br> <textarea ';
|
2024-01-07 23:52:50 +01:00
|
|
|
echo 'class="postbody" id="postbody" ';
|
|
|
|
echo 'name="' . md5($fieldencrypt . "body") . '" wrap="soft">';
|
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
if ((isset($bodyzeile)) && ($post_autoquote))
|
|
|
|
echo htmlspecialchars($bodyzeile);
|
|
|
|
if (is_string($body))
|
|
|
|
echo htmlspecialchars($body);
|
2024-01-07 23:52:50 +01:00
|
|
|
echo '</textarea></td></tr><tr><td>';
|
|
|
|
if (! $post_autoquote) {
|
|
|
|
echo '<input type="hidden" id="hidebody"';
|
|
|
|
echo 'value="';
|
2023-08-20 00:33:05 +02:00
|
|
|
if (isset($bodyzeile))
|
2024-01-05 14:58:51 +01:00
|
|
|
echo htmlspecialchars($bodyzeile);
|
2024-01-07 23:52:50 +01:00
|
|
|
echo '">';
|
2024-02-19 19:39:22 +01:00
|
|
|
|
2024-01-07 23:52:50 +01:00
|
|
|
?>
|
|
|
|
<script language="JavaScript">
|
2020-11-29 01:55:31 +01:00
|
|
|
<!--
|
|
|
|
function quoten() {
|
|
|
|
document.getElementById("postbody").value=document.getElementById("hidebody").value;
|
|
|
|
document.getElementById("hidebody").value="";
|
|
|
|
}
|
|
|
|
//-->
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<?php } ?>
|
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
<input type="submit" value="<?php echo $text_post["button_post"];?>">
|
2020-11-29 01:55:31 +01:00
|
|
|
<?php if ($setcookies==true) { ?>
|
2024-01-07 23:52:50 +01:00
|
|
|
|
|
|
|
<input tabindex="100" type="Button" name="quote"
|
|
|
|
value="<?php echo $text_post["quote"]?>"
|
|
|
|
onclick="quoten(); this.style.visibility= 'hidden';">
|
|
|
|
|
2024-03-05 00:25:42 +01:00
|
|
|
|
2023-08-20 00:33:05 +02:00
|
|
|
<?php
|
2024-04-15 12:47:44 +02:00
|
|
|
}
|
|
|
|
if (! in_array($config_name, $OVERRIDES['disable_attach'], true)) {
|
|
|
|
echo ' ';
|
|
|
|
echo '<input type="file" name="photo" id="fileSelect" value="fileSelect" accept="image/*,audio/*,text/*,application/pdf">';
|
|
|
|
echo '</td></tr>';
|
|
|
|
}
|
2023-09-09 14:52:18 +02:00
|
|
|
if ($post_captcha) {
|
2023-08-20 00:33:05 +02:00
|
|
|
echo '<tr><td>';
|
|
|
|
echo captcha::form($text_post["captchainfo1"], $text_post["captchainfo2"]);
|
|
|
|
echo '</td></tr>';
|
|
|
|
}
|
|
|
|
?>
|
2024-01-07 23:52:50 +01:00
|
|
|
|
2020-11-29 01:55:31 +01:00
|
|
|
</table>
|
2024-01-07 23:52:50 +01:00
|
|
|
</div>
|
|
|
|
<input type="hidden" name="type" value="post">
|
|
|
|
<input type="hidden" name="newsgroups"
|
|
|
|
value="<?php echo htmlspecialchars($newsgroups); ?>">
|
|
|
|
<input type="hidden" name="references"
|
|
|
|
value="<?php echo htmlentities($references); ?>">
|
|
|
|
<input type="hidden" name="group"
|
|
|
|
value="<?php echo htmlspecialchars($newsgroups); ?>">
|
|
|
|
<input type="hidden" name="returngroup"
|
2024-02-25 02:57:10 +01:00
|
|
|
value="<?php echo htmlspecialchars($thisgroup); ?>">
|
2024-01-07 23:52:50 +01:00
|
|
|
<input type="hidden" name="fielddecrypt"
|
|
|
|
value="<?php echo htmlspecialchars($fieldencrypt);?>">
|
2020-11-29 01:55:31 +01:00
|
|
|
</form>
|
|
|
|
|
|
|
|
<?php } } ?>
|