[solved] Waarden behouden na validiatie
Maar ik wil de waarden behouden van de ingevulde velden na een error.
Nu krijg ik netjes een melding dat er iets niet is ingevuld, maar de velden worden gelijk weer leeg gemaakt. Met een javascript popoup kreeg ik het zelfde resultaat..
Wat is is hier een mogelijke oorzaak/oplossing voor denken jullie?
thnx!
De code in zijn geheel:
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<html>
<head>
<title>Upload File</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.box {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
border: 1px solid #000000;
}
-->
</style>
</head>
<body>
<?php
include 'library/config.php';
include 'library/opendb.php';
$uploadDir = 'upload/';
$allowed_filetypes = array('jpg','gif','bmp','png', 'j`peg'); // welke wel
$max_filesize = 524288; // Maximale bestandsgrootte in BYTES (nu 0.5MB).
$errors=0;
if(isset($_POST['upload']))
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$ext= substr(strrchr($fileName, "."), 1); // extentie eruit halen
$naam = substr($fileName, 0, strrpos($fileName, '.')); // naam voor .extentie
$randName = $naam. '-' .substr(md5(rand() * time()), 0, 6); // random naam genereren
$newName = $randName . '.' . $ext; // nieuwe naam + extentie
$filePath = $uploadDir . $newName; // path + nieuwe naam (+ extentie)
if(empty($_POST['test']))
{
echo "test niet ingevuld\n";
$errors=1;
}
else
//// EXTENTIE CHECK/////
if(!in_array($ext,$allowed_filetypes))
{
echo '<font color="red" face=Verdana size=1>Bestand niet toegestaan. Gebruik alleen jpg, gif of png.</font></p>';
$errors=1;
}
else
{
//// GROOTTE CHECK/////
if ($fileSize > $max_filesize)
{
echo '<font color="red" face=Verdana size=1>Bestand is te groot. Gebruik een bestand van max 524 KB.</font><p/>';
$errors=1;
}
else
{
//// BESTAND VERPLAATSEN NAAR MAP/////
$result=move_uploaded_file($tmpName,$filePath);
if(!$result)
{
echo '<font color="red" face=Verdana size=1>Error uploading file</font><p/>';
$errors=1;
}
else
{
//// INSERT QUERY UITVOEREN ////
$query="INSERT INTO upload (name, size, type, path) VALUES ('".$newName."', '".$fileSize."', '".$fileType."', '".$filePath."')";
$sql=mysql_query($query);
if(!$sql)
{
$errors=1;
trigger_error('Error, query fout:' . mysql_error());
}
} /* INSERT IF AFLSUITEN*/
} /* VERPAASTEN IF AFLSUITEN*/
} /* GROOTTE IF AFLSUITEN*/
} /* POST UPLOAD IF AFLSUITEN*/
?>
<form action="" method="post" enctype="multipart/form-data" name="uploadform">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr>
<td width="246"><input type="hidden" name="MAX_FILE_SIZE" value="2000000"><input name="userfile" type="file" class="box" id="userfile">
</td>
<td class="tekstwit">
<input name="test" type="text" id="test" /> </td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>
<?
if(isset($_POST['upload']) && !$errors)
{
echo "<h4>File Upload geslaagd!</h4>";
echo "Het volgende bestand is ge-upload:<br>";
echo "$newName<br/>";
} ?>
</body>
</html>
<head>
<title>Upload File</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.box {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
border: 1px solid #000000;
}
-->
</style>
</head>
<body>
<?php
include 'library/config.php';
include 'library/opendb.php';
$uploadDir = 'upload/';
$allowed_filetypes = array('jpg','gif','bmp','png', 'j`peg'); // welke wel
$max_filesize = 524288; // Maximale bestandsgrootte in BYTES (nu 0.5MB).
$errors=0;
if(isset($_POST['upload']))
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$ext= substr(strrchr($fileName, "."), 1); // extentie eruit halen
$naam = substr($fileName, 0, strrpos($fileName, '.')); // naam voor .extentie
$randName = $naam. '-' .substr(md5(rand() * time()), 0, 6); // random naam genereren
$newName = $randName . '.' . $ext; // nieuwe naam + extentie
$filePath = $uploadDir . $newName; // path + nieuwe naam (+ extentie)
if(empty($_POST['test']))
{
echo "test niet ingevuld\n";
$errors=1;
}
else
//// EXTENTIE CHECK/////
if(!in_array($ext,$allowed_filetypes))
{
echo '<font color="red" face=Verdana size=1>Bestand niet toegestaan. Gebruik alleen jpg, gif of png.</font></p>';
$errors=1;
}
else
{
//// GROOTTE CHECK/////
if ($fileSize > $max_filesize)
{
echo '<font color="red" face=Verdana size=1>Bestand is te groot. Gebruik een bestand van max 524 KB.</font><p/>';
$errors=1;
}
else
{
//// BESTAND VERPLAATSEN NAAR MAP/////
$result=move_uploaded_file($tmpName,$filePath);
if(!$result)
{
echo '<font color="red" face=Verdana size=1>Error uploading file</font><p/>';
$errors=1;
}
else
{
//// INSERT QUERY UITVOEREN ////
$query="INSERT INTO upload (name, size, type, path) VALUES ('".$newName."', '".$fileSize."', '".$fileType."', '".$filePath."')";
$sql=mysql_query($query);
if(!$sql)
{
$errors=1;
trigger_error('Error, query fout:' . mysql_error());
}
} /* INSERT IF AFLSUITEN*/
} /* VERPAASTEN IF AFLSUITEN*/
} /* GROOTTE IF AFLSUITEN*/
} /* POST UPLOAD IF AFLSUITEN*/
?>
<form action="" method="post" enctype="multipart/form-data" name="uploadform">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr>
<td width="246"><input type="hidden" name="MAX_FILE_SIZE" value="2000000"><input name="userfile" type="file" class="box" id="userfile">
</td>
<td class="tekstwit">
<input name="test" type="text" id="test" /> </td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>
<?
if(isset($_POST['upload']) && !$errors)
{
echo "<h4>File Upload geslaagd!</h4>";
echo "Het volgende bestand is ge-upload:<br>";
echo "$newName<br/>";
} ?>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door David david
Heb je m'n ergens online staan?
Als je opnieuw op de pagina laadt, is alles uiteraard leeg.
Waarom zou je iets anders verwachten?
Als je ook nog een oplossing wil...
Een mogelijkheid:
in plaats van jouw formulier deel:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
...
$test = ( empty($_POST['test']) ? '' : $_POST['test']);
echo '<form action="" method="post" enctype="multipart/form-data" name="uploadform">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr>
<td width="246"><input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" class="box" id="userfile">
</td>
<td class="tekstwit">
<input name="test" value="'. $test .'" type="text" id="test" />
</td>
<td width="80">
<input name="upload" type="submit" class="box" id="upload" value=" Upload ">
</td>
</tr>
</table>
</form>';
...
?>
...
$test = ( empty($_POST['test']) ? '' : $_POST['test']);
echo '<form action="" method="post" enctype="multipart/form-data" name="uploadform">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr>
<td width="246"><input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" class="box" id="userfile">
</td>
<td class="tekstwit">
<input name="test" value="'. $test .'" type="text" id="test" />
</td>
<td width="80">
<input name="upload" type="submit" class="box" id="upload" value=" Upload ">
</td>
</tr>
</table>
</form>';
...
?>
De value van een file input kan je niet veranderen, om veiligheidsredenen.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
File input is nooit te tsjekken of wordt dat erg ingewikkeld.?.. ik dacht al aan:
Code (php)
maar goed thnx in ieder geval!
De toon van topic titel geeft toch naar mijn idee al aan dat gebruik van SESSION global al genoeg is? en die kan je na gebruik bij het gaan naar vorige pagina weer unsetten of zelfs destroyen......
Gewijzigd op 01/01/1970 01:00:00 door david david