Uploaden met naam + wachtwoord
mijn game houd via .ini bestanden de stats van spelers bij en stuurt naar mijn webhost een simpele opdracht om een bestand met wachtwoord (md5 hash) bij te houden. Deze hash zet ik in gebruikersnaam.txt ,gebruikersnaam kan vanalles zijn.
Nu wil ik dat mensen hun eigen avatar kunnen uploaden, dit gaat wel, maar ik wil graag dat je ook je gebruikersnaam en wachtwoord in moet vullen, dit wachtwoord wordt met het wachtwoord in gebruikersnaam.txt vergeleken.
Dit is mijn formulier:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<body>
<form action="upload_file.php" method="get">
<label form="file">Filename:</label> <input type="file" name="file" id="file" /></br>
Name: <input type="text" name="name" />
Password: <input type="text" name="pass" />
<input type="submit" />
</form>
</body>
</html>
<body>
<form action="upload_file.php" method="get">
<label form="file">Filename:</label> <input type="file" name="file" id="file" /></br>
Name: <input type="text" name="name" />
Password: <input type="text" name="pass" />
<input type="submit" />
</form>
</body>
</html>
En dit is mijn PHP script om het te checken en op te slaan:"
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
//$name = "Tim";
//$pass = "Bullshit";
$name = $_GET['name'];
$pass = $_GET['pass'];
//$myFile = "Tim.txt";
//$fh = fopen($myFile, 'r');
//$theData = fread($fh, filesize($myFile)) or die("Loading file failed");
//fclose($fh);
if($pass=="darten1")
{
echo "Succesfully logged in!";
}
else
{
echo "Failed to login";
exit;
}
echo $_FILES["file"]["name"];
echo $_FILES["file"]["type"];
if ((($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
if (file_exists("EWO/Avatars/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"EWO/Avatars/" . $name . ".png");
echo "Stored in: " . "EWO/Avatars/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
//$name = "Tim";
//$pass = "Bullshit";
$name = $_GET['name'];
$pass = $_GET['pass'];
//$myFile = "Tim.txt";
//$fh = fopen($myFile, 'r');
//$theData = fread($fh, filesize($myFile)) or die("Loading file failed");
//fclose($fh);
if($pass=="darten1")
{
echo "Succesfully logged in!";
}
else
{
echo "Failed to login";
exit;
}
echo $_FILES["file"]["name"];
echo $_FILES["file"]["type"];
if ((($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
if (file_exists("EWO/Avatars/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"EWO/Avatars/" . $name . ".png");
echo "Stored in: " . "EWO/Avatars/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
Maar ik krijg te zien: Invalid file, wat dus betekent dat het bestand geen .png bestand is, of groter dan 20kb.
Het bestand waarmee ik test is 510 Bytes, en heet myavatar.png.
Wat doe ik fout?
Begin al eens met een enctype in je form te zetten.
Dankjewel.