fetch_array(); mysqli_free_result($res); } if (isset($data)) { # echo "Has teacher record
"; if ($name === '') $name = $data[0]; if ($koulu === '') $koulu = $data[1]; $hash = $data[2]; $opettaja_no = $data[3]; } } if (isset($_REQUEST['submit'])) { # Tarkista, että kentät on kaikki täytetty # Tarkista, että pdf-tiedosto on annettu # Tarkista sähköpostiosoitteen suunnilleen oikea muoto # Tarkista, että tiedostonimet ok # Etsi opettajan salasana tietokannasta # Luo salasana, jos sitä ei ole, ja talleta kantaan # siirrä tiedosto paikalleen # Talleta aine kantaan # Lähetä sähköpostia opettajalle # Tarkista, että kentät on kaikki täytetty # Tarkista sähköpostiosoitteen suunnilleen oikea muoto # Tarkista, että pdf-tiedosto on annettu $uploads_dir = '/p/www/kirjoituskilpailu.fi/aine'; if ($_FILES["pdffile"]["error"] == UPLOAD_ERR_OK) { # Tarkista, että tiedostonimet ok $tmp_pdf_name = $_FILES["pdffile"]["tmp_name"]; // basename() may prevent filesystem traversal attacks; // further validation/sanitation of the filename may be appropriate $pdfname = preg_replace('/[^-0-9a-zA-ZåäöüÅÄÖÜ_,.]+/', '_', basename($_FILES["pdffile"]["name"])); if (!preg_match ('/^.+\.pdf$/i', $pdfname)) { echo "

Tiedoston pitää olla PDF.

"; goto err; } $docext = 'null'; $docname = 'null'; if ($_FILES["docfile"]["error"] == UPLOAD_ERR_OK) { # echo "Upload ok
"; $tmp_doc_name = $_FILES["docfile"]["tmp_name"]; $docname = preg_replace('/[^-0-9a-zA-ZåäöüÅÄÖÜ_,.]+/', '_', basename($_FILES["docfile"]["name"])); $docname = preg_replace('/^\.+/', '', $docname); if (preg_match('/^.+\.([a-zA-Z0-9]+)$/', $docname, $matches)) { $ext = $matches[1]; if ($ext == 'html' || $ext == 'htm' || $ext == 'php') $ext = '$ext.dat'; } else $ext = 'dat'; $docext = "'" . $ext . "'"; $docname = "'" . $docname . "'"; } # Luo salasana, jos sitä ei ole opettajalla valmiina, ja talleta kantaan $send_password_email = FALSE; if ($opettaja_no !== '') { if ($hash === '') { # If the password is missing, attempt to # set it and send it in an email. # This allows you to null the password and # next time the teacher sends stuff she gets # a new password. $password = genpass(7); $salt = genpass(2); $hash = crypt($password, $salt); $res = mysqli_query($dbase, "update opettaja set password='$hash' where opettaja_no=$opettaja_no"); if ($res !== FALSE) $send_password_email = TRUE; } } else { # Ei vielä tietokannassa, talletetaan. Jos kentät ovat järkeviä! $virhe = FALSE; if (FALSE === filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "

Sähköpostiosoite ei näytä oikealta.

"; $virhe = TRUE; } if ($name === '') { echo "

Kirjoita opettajan nimi myös.

"; $virhe = TRUE; } if ($koulu === '') { echo "

Kirjoita koulun nimi myös.

"; $virhe = TRUE; } if ($luokka === '') { echo "

Kirjoita luokan nimi myös.

"; $virhe = TRUE; } if ($oppilas === '') { echo "

Kirjoita oppilaan nimi myös.

"; $virhe = TRUE; } if ($parhaita != '1') { $parhaita = 0; } if ($s2 != '1') { $s2 = 0; } if ($virhe) goto err; $res = mysqli_query($dbase, "insert into opettaja (opettaja_no, email, name, koulu, password, registered) values (null, '$email', '$name', '$koulu', '', now())" ); if ($res === FALSE) { echo "

En pystynyt tallettamaan opettajan tietoja tietokantaan. Tässä palvelussa on ongelma. " . mysqli_error ($dbase) . "

"; goto err; } $opettaja_no = mysqli_insert_id($dbase); $password = genpass(7); $salt = genpass(2); $hash = crypt($password, $salt); $res = mysqli_query($dbase, "update opettaja set password='$hash' where opettaja_no=$opettaja_no"); if ($res === FALSE) { echo "

En pystynyt tallettamaan joitain opettajan tietoja tietokantaan. Tässä palvelussa on ongelma. " . mysqli_error ($dbase) . "

"; goto err; } $send_password_email = TRUE; } # Talleta aine kantaan $res = mysqli_query($dbase, "insert into aine (aine_no, opettaja_no, koulu, luokka, oppilas, parhaita, s2, pdfname, docname, docext, uploaded, deleted) values (null, $opettaja_no, '$koulu', '$luokka', '$oppilas', $parhaita, $s2, '$pdfname', $docname, $docext, now(), 0)" ); if ($res === FALSE) { echo "

En pystynyt tallettamaan ainetta tietokantaan. Tässä palvelussa on ongelma. " . mysqli_error ($dbase) . "

"; goto err; } $aine_no = mysqli_insert_id($dbase); # siirrä tiedosto paikalleen move_uploaded_file($tmp_pdf_name, "$uploads_dir/$aine_no.pdf"); if ('null' !== $docname) move_uploaded_file($tmp_doc_name, "$uploads_dir/${aine_no}_alk.$ext"); ?>

Aine on lähetetty kirjoituskilpailuun.

Kiitos aineen lähettämisestä! Lähetettyjä aineita voi tarkastella tästä. Jos vahingossa on toimitettu väärä aine, voi lähettää uuden aineen. Ota yhteyttä sähköpostilla, jos virheellisiä aineita pitää poistaa.

"; $mres = mb_send_mail($email, $subject, $message, $headers); if ($mres) { echo "

Sähköpostiin on lähetetty salasana, jolla lähetettyjä aineita voi tarkastella.

"; } else { echo "

Sähköpostin lähettäminen epäonnistui. Salasanaa ei lähetetty.

"; } } } } # end of form handling err: ?>

ASESSORI TORSTI KOSKISEN KIRJOITUSKILPAILU

SÄÄNNÖT, AIHEET JA OHJEET

Kilpailua ei järjestetä vuonna

Kilpailu ei ole vielä avoinna

Vuonna kirjoitelmat toimitetaan kilpailuun ainoastaan tämän palvelun kautta. Kilpailuaika on 31.3. asti. Opettajan valitsemien parhaiden lisäksi voidaan palauttaa arkistoitaviksi kaikki kirjoitelmat. Kirjoitelmat tulee olla muunnettuna PDF-tiedostoiksi. Lisäksi on mahdollista toimittaa alkuperäinen tekstinkäsittelytiedosto arkistoomme.

Opettajan sähköposti: 
Opettajan nimi:       
Koulu:                
Luokka:               
Oppilaan nimi:        
3-5 parhaan joukossa:           Suomi toisena kielenä: 

Aine PDF-tiedostona:

Lisäksi saman aineen voi tallettaa myös muuna tekstinkäsittelytiedostona (doc, docx, odt tms.) arkistointia varten. Tämä on vapaaehtoista.
Aine tekstinkäsittelytiedostona:

Lähetettyjen aineiden tarkistus