예제 #1
0
function module_add_article()
{
    global $flashformid;
    echo "\n<!-- start add article -->";
    $all_ok = true;
    // Error checking
    // create short variable names
    $edit = $_REQUEST['editarticle'];
    // Is this an edit operation?
    // User has confirmed a previewed article, get values from session
    if (isset($_REQUEST['previewconfirmed'])) {
        $author = $_SESSION['author'];
        $title = $_SESSION['title'];
        $intro = $_SESSION['intro'];
        $body = $_SESSION['body'];
        $priority = $_SESSION['priority'];
        $date_posted = $_SESSION['date_posted'];
        $time_posted = $_SESSION['time_posted'];
        $comment_to = $_SESSION['comment_to'];
        $articleid = $_SESSION['articleid'];
        $category = $_SESSION['category'];
        $is_draft = $_SESSION['is_draft'];
    } else {
        $author = $_POST['author'];
        $title = $_POST['title'];
        $intro = $_POST['intro'];
        $body = $_POST['body'];
        $priority = $_POST['priority'];
        $date_posted = $_POST['year'] . "-" . $_POST['month'] . "-" . $_POST['day'];
        $time_posted = $_POST['hours'] . ":" . $_POST['minutes'];
        $comment_to = $_POST['comment_to'];
        $articleid = $_POST['articleid'];
        $category = $_REQUEST['category'];
        $category = 0;
        $is_draft = $_POST['is_draft'];
        $article_form_id = $_REQUEST['article_form_id'];
    }
    // Replace form-given time with real time if this is a comment
    if ($comment_to > 0) {
        $date_posted = date("Y") . "-" . date("m") . "-" . date("d");
        $time_posted = date("H") . ":" . date("i");
    } else {
    }
    // Can occur if someone posts after session is deleted. Return whatever
    // contents is sent to us.
    global $anyone_comments;
    if (!$anyone_comments && !is_logged_in()) {
        echo "Du må være innlogget for å kunne kommentere; dersom du ikke gjør noe på nettstedet i løpet av omtrent 25 minutter blir du logget ut. Teksten du forsøkte å poste følger under. " . "Merk den og bruk CTRL+C for å kopiere den og CTRL+V for å lime den inn i et tekstfelt når du har logget inn igjen.<br/><br/>";
        echo $body;
        return;
    }
    // Reject if this isn't a comment and user has no posting rights
    if ($comment_to < 1 && !is_logged_in()) {
        echo "Du har ikke tillatelse til å legge inn artikler.";
        echo "Antakelig ser du dette fordi du ikke har gjort noe på nettstedet de siste 20 minuttene, slik at du har blitt automatisk utlogget. Teksten du forsøkte å poste følger under. Merk den og bruk CTRL+C for å lage en kopi og CTRL+V til å lime den inn i et tekstfelt når du har logget inn igjen.<br/>";
        echo $body;
        return;
    }
    /* If the unique form ID doesn't match with the current session counter, we do _nothing */
    /* since this is most likely the result of the user tumbling back and forth. 
     * If the session has timed out (because the user has been writing too long, hopefully)
     * we still accept the new post (i.e. NEW_SESSION is TRUE).
     */
    /*
    global $NEW_SESSION;
    if($NEW_SESSION == TRUE)
    	echo "1";
    else
    	echo "0";
    */
    if (isset($article_form_id) && $flashformid != $article_form_id || $NEW_SESSION == TRUE) {
        echo "Kommentar innsendt tidligere, eller du har logget ut. Du prøvde å poste dette: <br/>";
        echo $body;
    } else {
        $preview = $_REQUEST['preview'];
        $_SESSION['editarticle'] = "true";
        save_form_article();
        if (!($_SESSION['valid_user'] || $comment_to && article_exists($comment_to))) {
            echo "Du må være en registrert bruker for å kunne legge inn artikler.";
        } else {
            if ($_SESSION['valid_user']) {
                $author_username = $_SESSION['valid_user'];
            } else {
                $author_username = '';
            }
            if (!$author || !$body || !$date_posted || !$time_posted) {
                $all_ok = false;
                $error_msg .= "Forfatter, tidspunkt og tekst må fylles inn.";
            }
            if (!$comment_to && !$title) {
                $all_ok = false;
                $error_msg .= " Tittel må være med!";
            }
            if (!(is_valid_alphanum($author) && is_valid_alphanum($title))) {
                $all_ok = false;
                $error_msg .= "Systemutvikleren gnir sitt fjes i grusen og beklager på det dypeste at forfatterfelt og tittelfelt nå inneholder et eller annet spesialtegn som ikke er godkjent. Ta vennligst kontakt snarest slik at deres personlige programmeringskonsulent kan rette opp denne pinlige feilen.";
            }
            $title = addslashes(strip_tags($title));
            $author = addslashes(strip_tags($author));
            $date_posted = addslashes(strip_tags($date_posted));
            $time_posted = addslashes(strip_tags($time_posted));
            $body = addslashes(strip_tags($body, "<a> <img> <br> <i> <b> <div>"));
            $category = addslashes(strip_tags($category));
            if ($is_draft == "ON") {
                $is_draft = 1;
                $log_description .= "savedraft,";
            } else {
                $is_draft = 'NULL';
            }
            if (!$comment_to > 0) {
                $comment_to = 'NULL';
            } else {
                $log_description .= "comment,";
            }
            // Inserting into DB
            if ($edit) {
                $log_description .= "editarticle,";
                $query = "UPDATE articles SET title=\"{$title}\", author=\"{$author}\", intro=\"{$intro}\", body=\"{$body}\", date_posted=\"{$date_posted}\", time_posted=\"{$time_posted}\", comment_to={$comment_to}, priority=\"{$priority}\", picture_url=\"{$picture_url}\", category=\"{$category}\", is_draft={$is_draft} WHERE articleid=" . $articleid . ";";
            } else {
                $log_description .= "newarticle,";
                $query = "INSERT INTO articles (title, author, author_username, body, date_posted, time_posted, comment_to, is_draft, view_count) VALUES(\"{$title}\", \"{$author}\", \"{$author_username}\",  \"{$body}\", \"{$date_posted}\", \"{$time_posted}\", {$comment_to},{$is_draft},0);";
            }
            if ($all_ok == true) {
                if (isset($preview)) {
                    echo "<div class=\"header2\">" . stripslashes($_REQUEST['title']) . "</div>";
                    echo "<div class=\"metatext\"><span class=\"author\">Av: " . $_REQUEST['author'];
                    if (isset($_SESSION['valid_user'])) {
                        echo "  (" . $_SESSION['valid_user'] . ").</span>";
                    } else {
                        echo "  (" . $unknown_author . ").</span>";
                    }
                    echo "<span class=\"time\">Lagt opp: " . date_nor_sql($date_posted) . ", " . $time_posted . "</span></div>";
                    echo "<div class=\"textbody\">" . stripslashes(nl2br($_REQUEST['body'])) . "</div>";
                    form_start_post();
                    form_submit("previewconfirmed", "Lagre artikkel");
                    if (isset($edit)) {
                        form_hidden("editarticle", "editarticle");
                    }
                    form_hidden("m_c", "module_add_article");
                    form_end();
                    form_start_post();
                    if (isset($edit)) {
                        form_hidden("edit", "edit");
                    }
                    form_hidden("articleid", $articleid);
                    form_submit("backtoedit", "Rediger artikkel");
                    form_hidden("m_c", "module_enter_article");
                    form_end();
                    echo "<br/><br/>";
                    do_cancel_article_form();
                } else {
                    $result = DB_insert($query);
                    if ($result > 0) {
                        global $logtype;
                        global $eventdesc;
                        if ($edit) {
                            if ($comment_to > 0) {
                                write_log_entry($articleid, $logtype['comment'], $log_description);
                            } else {
                                write_log_entry($articleid, $logtype['article'], $log_description);
                            }
                        } else {
                            if ($comment_to > 0) {
                                write_log_entry(mysql_insert_id(), $logtype['comment'], $log_description);
                            } else {
                                write_log_entry(mysql_insert_id(), $logtype['article'], $log_description);
                            }
                        }
                        $_SESSION['flashformid'] = $flashformid + 1;
                        if ($comment_to != 'NULL') {
                            echo "Kommentar lagt til! Godt sagt, forhåpentligvis. Husk Vær Varsom-plakaten.<br/>";
                            form_start_get();
                            form_submit("submit", "Gå tilbake til artikkelen");
                            form_hidden("m_c", "m_va");
                            form_hidden("articleid", $comment_to);
                            form_end();
                            unset_form_article();
                        } else {
                            if ($edit) {
                                echo "Redigering fullført. Håper det ble bedre.";
                                if ($is_draft != 'NULL') {
                                    echo " Denne artikkelen er lagret og er tilgjengelig fra din profilside. " . "Den blir ikke lagt ut på forsiden eller gjort tilgjengelig  gjennom artikkelsøk.";
                                }
                                unset_form_article();
                            } else {
                                echo "Ny artikkel lagt inn! Husk: Sist gang noen sjekket, var det bare 1 av 10 lesere som gadd &aring kommentere. ;)";
                                if ($is_draft != 'NULL') {
                                    echo "Denne artikkelen er lagret og er tilgjengelig fra din profilside. " . "Den blir ikke lagt ut på forsiden eller gjort tilgjengelig  gjennom artikkelsøk.";
                                }
                                unset_form_article();
                            }
                        }
                    } else {
                        echo $query;
                        echo "Artikkel ikke lagt opp, databaseproblem.";
                    }
                }
            } else {
                echo $error_msg;
            }
        }
    }
}
예제 #2
0
function module_register_user()
{
    echo "<!-- start register user -->";
    $all_ok = true;
    global $magic_number;
    global $max_profile_image_size;
    if (isset($_REQUEST['cancelreg'])) {
        $cancelreg = $_REQUEST['cancelreg'];
    }
    if (isset($_REQUEST['canceledit'])) {
        $canceledit = $_POST['canceledit'];
    }
    if (isset($cancelreg)) {
        form_unset_user();
        echo "Registration cancelled.";
    } else {
        $email = $_POST['email'];
        $username = $_REQUEST['username'];
        $password1 = $_POST['password1'];
        $password2 = $_POST['password2'];
        $firstname = $_POST['firstname'];
        $lastname = $_POST['lastname'];
        $webpage = $_POST['webpage'];
        $birthdate = $_REQUEST['birthyear'] . "-" . $_REQUEST['birthmonth'] . "-" . $_REQUEST['birthday'];
        $description = $_REQUEST['description'];
        $username = strip_tags($username);
        $password1 = strip_tags($password1);
        $password2 = strip_tags($password2);
        $firstname = strip_tags($firstname);
        $lastname = strip_tags($lastname);
        $webpage = strip_tags($webpage);
        $birthdate = strip_tags($birthdate);
        save_form_user();
        if (!(is_valid_alphanum($firstname) && is_valid_alphanum($lastname) && is_aToZLower($username))) {
            $all_ok = false;
            $error_msg .= " Brukernavn kan kun inneholde små bokstaver mellom a og z. Fornavn og etternavn må skrives kun med tall og bokstaver.";
        }
        if (!is_valid_url($webpage)) {
            $all_ok = false;
            $error_msg .= " Webadresse kan kun skrives med tall, bokstaver, /, ~, & og =.";
        }
        if (!($password1 && $username && $email && $password2)) {
            $all_ok = false;
            $error_msg .= " Du må oppgi minst brukernavn, e-post og passord.";
        }
        // email address not valid
        if (!valid_email($email)) {
            $all_ok = false;
            $error_msg .= " E-postadressen er ikke gyldig.";
        }
        // passwords not the same
        if ($password1 != $password2) {
            $all_ok = false;
            $error_msg .= " Passordene stemmer ikke.";
        }
        // check password length is ok
        // ok if username truncates, but passwords will get
        // munged if they are too long.
        if (strlen($password1) < 6 || strlen($password1) > 16) {
            $all_ok = false;
            $error_msg .= " Passordet må være mellom 6 og 16 tegn.";
        }
        if (strlen($_FILES['picturepath']['tmp_name']) == 0) {
            $picture_result = 0;
            // Not uploading a picture
        } else {
            if ($max_profile_image_size < $_FILES['picturepath']['size']) {
                $picture_result = -1;
                $error_msg .= " Maksimal bildestørrelse er ." . $max_profile_image_size / 1000 . " kilobytes. Ditt bilde er " . $_FILES['picturepath']['size'] / 1000 . " kilobytes.";
            } else {
                $picture_result = file_upload($username);
                if ($all_ok == true && $picture_result < 0) {
                    if ($picture_result == -1) {
                        $error_msg .= " Bildet er for stort.";
                    } else {
                        if ($picture_result == -4) {
                            $error_msg .= " Lagring av bilde i databasen gikk galt.";
                        } else {
                            if ($picture_result == -3) {
                                $error_msg .= " Fant ikke bildefilen.";
                            } else {
                                $error_msg .= " Uspesifisert feil i bildeopplasting.";
                            }
                        }
                    }
                } else {
                }
            }
        }
        if ($all_ok) {
            $all_ok = register($username, $email, $password1, $firstname, $lastname, $webpage, $birthdate, $description);
            if ($all_ok) {
                $log_description .= "newuser,";
                // forsøker å legge inn bildet også
                if ($picture_result > 0) {
                    $sql = "UPDATE user SET picture=" . $picture_result . " WHERE username='******'";
                    $result = DB_insert($sql);
                    if (!$result) {
                        echo 'Bildet ble lastet opp, men greide ikke å knytte det til bruker: ' . $username . '<br />';
                        echo 'Du er registrert, men bildet er ikke lagt opp. Prøv gjerne å legg det til gjennom Min Profil. Feilmelding: ' . mysql_error() . '<br />';
                        $log_description .= "picfailed,";
                    } else {
                        echo 'Registreringen var vellykket. Logg inn og skriv noe lurt!<br />';
                        $log_description .= "withpic,";
                    }
                } else {
                    if ($picture_result != 0) {
                        echo 'Registreringen var vellykket, men profilbildet ditt ble ikke lagt opp. Årsak: ' . $error_msg . "<br/> Prøv gjerne igjen senere via profilsiden.";
                        $log_description .= "picfailed,";
                    } else {
                        $log_description .= "";
                        echo 'Registreringen var vellykket. Logg inn og skriv noe lurt!<br />';
                    }
                }
                global $logtype;
                write_log_entry($username, $logtype['user'], $log_description);
                form_unset_user();
            } else {
                //echo "Registrering mislyktes. Ta kontakt med en administrator, f.eks. redpilot@online.no.";
            }
        } else {
            echo $error_msg;
        }
    }
}