Hoi daar opnieuw,

Ik moet voor school met een groepswerk een project maken. Daarvoor heb ik een klein siteje gemaakt waar we onze files kunnen uploaden etc.

Ik beveilig ze met cookies. Ik weet ondertussen ook dat dat niet echt veilig is, maar het is nog altijd mijn eerste inlogsysteempje.
Ik had Jan K. zijn tutorial over sessions zien staan en heb dat proberen toe te passen op die site. Alles werkte, totdat ik op de upload pagina zelf kwam.

Ik post even de code hieronder. Kan iemand me eevn zeggen waar het fout gaat?

MET COOKIES

<html>
<head>
<title>File Management</title>
<link href="includes/stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="content">


<?
include ('includes/config.php');
if((isset($_COOKIE['ProjectUsername'])) && ($_COOKIE['ProjectRank'] >= 2)){
echo '<table width="100%" height="100%" cellpadding="5" cellspacing="0">';
echo '<tr>';
echo '<td width="70%" height="100%" valign="top">';
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
global $_FILES;

$filename = $_FILES['userfile']['name'];

$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[3] = "doc";
$allow[4] = "txt";
$allow[5] = "xls";
$allow[6] = "wmv";
$allow[7] = "avi";
$allow[8] = "rar";

if ($_POST["newname"])
    $uploadname = $_POST['newname'];
else
    $uploadname = $_FILES['userfile']['name'];

$extentie = substr($uploadname, -3);

for ($i = 0; $i < count($allow); $i++)
{
    if ($extentie == $allow[$i])
    {
        $extentie_check = "ok";
        $i = count($allow) + 5; // om loop te beindigen
    }
}

if ($extentie_check)
{
    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
        move_uploaded_file($_FILES['userfile']['tmp_name'], "files/" . $uploadname);

        echo "Het bestand is geupload onder de naam: $uploadname";
        echo '<br>De map van bestanden is <a href="files"><b><u>hier</u></b></a> te vinden.';
        $datum = date("Y-m-d");
        mysql_query("INSERT INTO projectbestanden (id, uploadname, datum) VALUES ('', '$uploadname', '$datum')") or die(mysql_error());
    }
}
else
{
    echo "Error: De extentie van het bestand is niet toegelaten!";
}
}else{
  echo '
   <p>Je kunt de <b>naam om up te loaden leeg laten</b>. <br>
   Dan wordt de naam zoals het bestand om het moment zelf heet.</p><br>
   De toegelaten extenties zijn: jpg, gif, bmp, doc, txt, xls, wmv, avi.<br>
   <form enctype="multipart/form-data" action="uploads.php" method="post">
   <p>
   <input type="hidden" name="MAX_FILE_SIZE" value="51200" />
   Selecteer een bestand: <input name="userfile" type="file"><br />
   Naam om up te loaden: <input name="newname" type="text"><br />
   <input type="submit" value="Upload" />
   </p>
   </form>
   <br><br>';
  echo '</div>';
}
echo '</td>';
echo '<td width="30%" height="100%" valign="top">';
echo '<div id="divtasks">';
include ('tasks.php');
echo '</div>';
echo '<div id="divlinks">';
include ('links.php');
echo '</div>';
echo '</td>';
echo '</tr>';
echo '</table>';
}else{
  echo '<div id="contentout" align="center"><br><br><br><br><br><br><br><br>';
  echo 'ACCESS DENIED!<br>';
  echo '<a href="login.php">Please Login!</a><br><br>';
  echo 'Authentication Required!<br><img src="images/print.png" border="0">';
  echo '</div>';
}
?>

</body>
</div>
</body>
</html>



MET SESSIES

<?
require ('includes/auth.php');
?>
<html>
<head>
<title>File Management</title>
<link href="includes/stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="content">


<?
echo '<table width="100%" height="100%" cellpadding="5" cellspacing="0">';
echo '<tr>';
echo '<td width="70%" height="100%" valign="top">';
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
global $_FILES;

$filename = $_FILES['userfile']['name'];

$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[3] = "doc";
$allow[4] = "txt";
$allow[5] = "xls";
$allow[6] = "wmv";
$allow[7] = "avi";
$allow[8] = "rar";

if ($_POST["newname"])
    $uploadname = $_POST['newname'];
else
    $uploadname = $_FILES['userfile']['name'];

$extentie = substr($uploadname, -3);

for ($i = 0; $i < count($allow); $i++)
{
    if ($extentie == $allow[$i])
    {
        $extentie_check = "ok";
        $i = count($allow) + 5; // om loop te beindigen
    }
}

if ($extentie_check)
{
    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
        move_uploaded_file($_FILES['userfile']['tmp_name'], "files/" . $uploadname);

        echo "Het bestand is geupload onder de naam: $uploadname";
        echo '<br>De map van bestanden is <a href="files"><b><u>hier</u></b></a> te vinden.';
        $datum = date("Y-m-d");
        mysql_query("INSERT INTO projectbestanden (id, uploadname, datum) VALUES ('', '$uploadname', '$datum')") or die(mysql_error());
    }
}
else
{
    echo "Error: De extentie van het bestand is niet toegelaten!";
}
}else{
  echo '
   <p>Je kunt de <b>naam om up te loaden leeg laten</b>. <br>
   Dan wordt de naam zoals het bestand om het moment zelf heet.</p><br>
   De toegelaten extenties zijn: jpg, gif, bmp, doc, txt, xls, wmv, avi.<br>
   <form enctype="multipart/form-data" action="uploads.php" method="post">
   <p>
   <input type="hidden" name="MAX_FILE_SIZE" value="51200" />
   Selecteer een bestand: <input name="userfile" type="file"><br />
   Naam om up te loaden: <input name="newname" type="text"><br />
   <input type="submit" value="Upload" />
   </p>
   </form>
   <br><br>';
  echo '</div>';
}
echo '</td>';
echo '<td width="30%" height="100%" valign="top">';
echo '<div id="divtasks">';
include ('tasks.php');
echo '</div>';
echo '<div id="divlinks">';
include ('links.php');
echo '</div>';
echo '</td>';
echo '</tr>';
echo '</table>';
?>

</body>
</div>
</body>
</html>


Mvg Jens
In elke testsituatie regelmatig je cache (is dat geen Frans?) legen :-)

Reageren