Versio

enctype="multipart/form-data" geeft fout

Overzicht Reageren

Niek Weevers

Niek Weevers

02/01/2009 15:17:00
Quote Anchor link
Ik heb een formulier met titel en afbeelding die ik wil toevoegen aan de database.
Zo gauw ik de enctype toevoeg aan het formulier, geeft hij een foutmelding bij het toevoegen. Iemand zo enig idee waar dit aan kan liggen.
De foutmelding is:
Notice: Undefined index: afbeelding
 
PHP hulp

PHP hulp

24/05/2012 14:06:33
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 

02/01/2009 15:22:00
Quote Anchor link
Plaats de relevante code eens, ik kan helaas niet ruiken hoe jouw code in elkaar steekt.
 
Niek Weevers

Niek Weevers

02/01/2009 15:32:00
Quote Anchor link
Formulier
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
<?php
<form method="post" action="' .$_SERVER['PHP_SELF']. '?add=true" enctype="multipart/form-data">
<
fieldset><legend>Voeg nieuw item toe</legend>
<
input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<
ul>
<
li><label for="titel">Titel</label><input type="text" name="titel" id="titel" value="' .$titel. '" /></li>
<
li><label for="afbeelding">Afbeelding</label><input type="file" id="afbeelding" name="afbeelding" /></li>
<
li class="radiovak"><span>Actief?</span>
<
input class="radio" type="radio" name="actief" id="actiefj" value="j"  /><label for="actiefj"> Ja</label>
<
input class="radio" type="radio" name="actief" id="actiefn" value="n" /><label for="actiefn"> Nee</label></li>
<
li><input class="button" type="submit" name="galerieaddsubmit" value="Toevoegen" /></li>
<
/ul>
<
/fieldset>
<
/form>
?>


Formulier afhandeling
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
<?php
$titel
= $_POST['titel'];
$afbeelding= $_POST['afbeelding'];
// Checken of er wel een radiobutton is gechecked
if(!isset($_POST['actief']))
{

$actief = '';
}

else
{
$actief     = $_POST['actief'];
}

    
// Initialiseer fout variabelen
$fout = false;
$titel_fout     = false;
$afbeelding_fout= false;
$actief_fout = false;
    
// Controleer op fouten
if(!eregi('.{2,}', $titel))
{

$fout = true;
$titel_fout = true;
}

if((!eregi('((.gif|.jpg|.jpeg)$)', $afbeelding)) || ($_FILES['bestand']['size'] > 2000000))
{

$fout = true;
$afbeelding_fout = true;
}

if($actief == '')
{

$fout = true;
$actief_fout = true;
}

    
if($fout)
{

// Er zijn fouten
// Geef het lijstje van fouten

echo '<strong style="color: #C00;">Het formulier is niet correct ingevuld</strong>';
echo '<ul>';
echo ($titel_fout ? '<li>Titel moet minimaal 2 karakters hebben</li>' : '');
echo ($afbeelding_fout ? '<li>Er is geen juiste afbeelding ingevoerd, of de afbeelding is te groot (max 2 MB)</li>' : '');
echo ($actief_fout ? '<li>Er moet een status van actief gekozen worden</li>' : '');
echo '</ul><br /><br />';
        
// Geef het formulier opnieuw
ShowGalerieAddForm($titel,$actief);
}

else
{
UploadAfbeelding();
        
// Er zijn geen fouten, handel formulier af
$titel = mysql_real_escape_string($titel);
$afbeelding = mysql_real_escape_string($afbeelding);
$actief = mysql_real_escape_string($actief);

$sql = "INSERT INTO ec_galerie (    user_id,
                            titel,
                            afbeelding,
                            upload_date,
                            actief)
                VALUES (    "
.$_SESSION['s_user_id']. ",
                        '"
.$titel."',
                        '"
.$afbeelding."',
                        NOW(),
                        '"
.$actief."')";
$result = mysql_query($sql);
        
echo '<strong>' .$titel. '</strong> is toegevoegd.<br /><a href="galerie.php" title="Galerie">Ga terug naar het overzicht</a>.';
}

?>


Hij geeft dus een fout bij de afbeelding variabele tijdens het afhandelen. Maar wanneer de enctype weg is, dan niet
 
Emmanuel Delay

Emmanuel Delay

02/01/2009 15:40:00
Quote Anchor link
Je stuurt dit nergens door: $_FILES['bestand']

Wat je doorstuurt, is $_FILES['afbeelding']

Daarmee moet je voort.

De eerste blok code die je postte, moet trouwens niet tussen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php ?>
staan, maar dat zal ongetwijfeld enkel hier zo zijn, in je script zal je dat wel niet gedaan hebben.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Niek Weevers

Niek Weevers

02/01/2009 15:50:00
Quote Anchor link
Klopt goed gezien, maar dat is niet het probleem.
In regel3 van het tweede codeblok gaat het volgens mij fout (die regel geeft de foutmelding in ieder geval aan). Hij kent de $_post['afbeelding'] op een of andere manier niet.
Gewijzigd op 01/01/1970 01:00:00 door Niek Weevers
 
Joren de Wit
Beheerder

Joren de Wit

02/01/2009 15:53:00
Quote Anchor link
Dat klopt, die bestaat ook niet. Als jij een <input type="file"> gebruikt, komt de betreffende informatie in de $_FILES array te staan. In jouw geval dus $_FILES['afbeelding']...
 
Emmanuel Delay

Emmanuel Delay

02/01/2009 15:56:00
Quote Anchor link
Precies (iets beter uitgelegd dan ik).
 
Niek Weevers

Niek Weevers

02/01/2009 15:59:00
Quote Anchor link
dat is em. Thnx
 

02/01/2009 15:59:00
 



Overzicht Reageren