[solved] Waarden behouden na validiatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

David david

david david

17/05/2009 20:16:00
Quote Anchor link
Ik heb inmiddels het volgende upload formulier met validatie.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<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
 
PHP hulp

PHP hulp

15/05/2024 07:20:54
 
Steen

steen

17/05/2009 20:22:00
Quote Anchor link
Heb je m'n ergens online staan?
 
Emmanuel Delay

Emmanuel Delay

17/05/2009 20:47:00
Quote Anchor link
De oorzaak? Als je een formulier opzendt, verlaat je de pagina.
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)
PHP script in nieuw venster Selecteer het PHP script
1
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>'
;
...

?>


De value van een file input kan je niet veranderen, om veiligheidsredenen.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
David david

david david

17/05/2009 22:01:00
Quote Anchor link
Nahja als de text input maar behouden blijft is het belangrijkst.. (stel je heb net een lap geschreven..).
File input is nooit te tsjekken of wordt dat erg ingewikkeld.?.. ik dacht al aan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (empty($_FILES['userfile']['name'])) {
  echo "geen afbeelding geselecteerd\n";
    $errors=1;
}

?>


maar goed thnx in ieder geval!
 
Afra ca

Afra ca

17/05/2009 22:18:00
Quote Anchor link
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......
 
David david

david david

18/05/2009 12:41:00
Quote Anchor link
voldoende zo. thnx allen
Gewijzigd op 01/01/1970 01:00:00 door david david
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.