Sovetid ...
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Gem artikel</title><link rel="stylesheet" href="../stylesheet.css" type="text/css"></head><body>
<?php
/* Bemærk i nedenstående står der kommentarer adskilt af /* og */
/* Disse kommentarer kan fjernes - Start /* og slut på linjerne */
/* skal bare fjernes sammen med kommentarerne
... det er kun for at dokumentere kodningen lidt */
/* Angiv antal kb. filen maximalt må have her ... ikke nogle kb
eller mb angivelser efter tallet... eks. 1024 giver max upload 1 mb ... */
$maxfilesize=1024;
/* Skriv de filtyper der er tilladt: */
$filtyperok=array("jpg","jpeg","gif","png","tif","tiff","jpe","bmp");
/* Sti til mysql configuration */
$mysqlconf="../config.php";
/* Angivelse af destinations sted p.t.
(billeder/)
(kontant-udvidende-tids-angivelse)
(samt-tilfældigt-mellem-0-og-9979)
(efterfulgt-af-bindestreg)
(-og-så-kommer-filnavnet-tilsidst)
... filnavn tilføjes automatisk nede i scriptet */
$til = "billeder/".time().rand(0,9979)."-";
/* Opstart af sessions */
session_start();
/* Adgangs kontrol baseret på session værdier */
if(!isset($_SESSION['laccess'])){
header("Location: index.php?f=needlogin");exit;
}
/* Bemærk ovenstående linje: if(!isset($_SESSION['laccess'])){
var tidligere: if(!isset($_SESSION['laccess']) && $_POST['referer']!='login'){
... dog vil man kunne "bryde igennem" session sikkerheden (umiddelbart ved analysering af scriptet) ved blot at poste direkte med en post værdi hvor referer sættes til login med en hjemmelavet post formular - derfor har jeg rettet denne linje ... men muligvis skal den rettes tilbage afhængig af anden kodning på resten af sitet ... men det er som sagt et hul når jeg lige analyserer ... */
/* Check på om en upload er accepteret ...
- Men jeg har lige ændret det lidt ...
P.t. er den defineret til false ...
Hvis scriptet ikke finder fejl uploades der */
$fejl=false;
if(isset($_FILES["image"])){ /* Check om der er et image klar til håndtering *fejl1 */
$size=$_FILES["image"]["size"]/1024; /* Angivelse af fil størelse i kb */
if($size > 0 && $size < $maxfilesize){ /* Check om fil fylder mere end 0 eller mere end maks fil størrelse *fejl2 */
$fra=$_FILES["image"]["tmp_name"]; /* Tmp placering på serveren */
$fra2=$_FILES["image"]["name"]; /* Navn filen siges at have */
$til=$til.$fra2;
$filext=preg_replace("@.*\.@","",$fra2);
if(in_array($filext,$filtyperok)){ /* Check om filtype må uploades *fejl3 */
if(!function_exists("move_uploaded_file")||!move_uploaded_file($fra,$til)){
if(!function_exists("copy")||!copy($fra, $til))$fejl="Upload ikke muligt kontakt administrator!";
/* ^ - Fejl hvis hverken move eller copy er tilgængelig */
}
/* Fejl tekst hvis fil format ikke var tilladt *fejl3 */
}else $fejl="Fil formatet var forkert!";
/* Fejl tekst hvis der billedet er for stort *fejl2 */
}else $fejl="- Den tilføjede fil er størrer end ".round($maxfilesize/1024)." mb!";
/* 2 Alternative forslag til ovenstående tekst linje:
}else $fejl="- Den tilføjede fil er størrer end ".(number_format(($maxfilesize/1024),2,",","."))." mb!";
}else $fejl="- Den tilføjede fil er størrer end ".$maxfilesize." kb!";*/
/* Fejl tekst hvis der ikke er et image klar til håndtering *fejl1 */
}else $fejl="- Der blev ikke fundet nogen fil til upload!";
function quote_smart($value){ /*
http://dk.php.net/manual/da/function.mysql.real.escape-string.php , eksempel 3 ;o) */
if(get_magic_quotes_gpc())$value=stripslashes($value);
if(!is_numeric($value))$value="'".mysql_real_escape_string($value)."'";
return $value;
}
/* Fejl hvis overskrift, forfatter og nyhed ikke er sat */
if(!isset($_POST["forfatter"])||!isset($_POST["overskrift"])||!isset($_POST["nyhed"]))$fejl="- Forfatter, overskrift og nyhed skal findes ved postning!";
if(!$fejl){ /* Check om fejl er false ... altså at der ikke er nogen fejl ... */
include($mysqlconf);
$dato=date('d/m/Y'); /* dato: DD/MM/YY */
$kl=date('H:i'); /* kl, HH:MM <- Den har ikke noget formål i scriptet sådan set ??? den bør nok slettes ??? */
$query=sprintf("INSERT INTO nyheder_avis (dato, overskrift, forfatter, image, nyhed) VALUES (%s,%s,%s,%s,%s)",$dato,quote_smart($_POST["overskrift"]),quote_smart($_POST["forfatter"]),quote_smart($til),quote_smart($_POST["nyhed"]));
mysql_query($query) or die(mysql_error()); /* Sæt evt. // i starten af denne linje for at undgå mysql forsespørgsel */
// echo $query; /* Fjern evt. // i starten af denne linje for at outputte hvad den bruger som query */
/*$_POST[forfatter];
$_POST[nyhed];
*/
echo"Nyheden er tilføjet";
}else echo"Upload af filen slog fejl grundet:<br>".$fejl;
?>
<br><br><a href="../nyheder/tilfoej.php">Tilbage</a>
<br><br>Midlertidig test form...<br>
<form method="post" enctype="multipart/form-data" action="1.php">
<input type="file" name="image">
<input type="text" name="forfatter" value="forfatter">
<input type="text" name="overskrift" value="overskrift">
<input type="text" name="nyhed" value="nyhed">
<input type="submit" value="ok">
</form>
</body></html>