Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[PHP] move_uploaded_file werkt niet.

Pagina: 1
Acties:
  • 1.010 views

Verwijderd

Topicstarter
Goedendag,

Ik heb mijn website overgezet naar een andere server, maar doordat is vanalles raar gaan doen,
waaronder mijn avatar script alles werkt maar hij wil de bestand NIET uploaden.
phpinfo van de server: http://olympischdorp.nl/info.php

Ik ben al de hele dag bezig met oplossingen maar kan helaas niets vinden met succes.
Ik hoop zeer dat jullie mij ermee kunnen helpen aangezien ik nog niet echt geweldig goed ben.

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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
session_start();
error_reporting(E_ALL ^ E_NOTICE);
/**
 * @author Wesley Kappen
 * @copyright 2008
 */
include_once("includes/dbconnect.php");
// Gegevens:
$map = "images/avatars/";
$groote = 150;
$extensie = array ('jpg', 'jpeg', 'pjpg', 'gif', 'bmp', 'png');
$max_width = "251";
$max_heigth = "251";

$gebruikersnaam = $_SESSION['user'];
$tabel = "avatar";
if(mysql_num_rows(mysql_query("SELECT `gebruikersnaam` FROM `avatar` WHERE `gebruikersnaam`='$gebruikersnaam'")) > 0)
{
    $allreadyavatar = 1;
}
else
{
    $allreadyavatar = 0;
}

$query = mysql_query("SELECT avatar FROM ".$tabel." WHERE gebruikersnaam = '".$gebruikersnaam."'")or die(mysql_error());
$obj = mysql_fetch_assoc($query);
$avatar = '<img src="'.$obj['avatar'].'" border="0" />';
$avatar_oud = $obj['avatar'];
$aantal_extensies = count($extensie);    // Tel het aantal mogelijke extensies

    if(!isset($_POST['case'])) 
        $case = 1;    
    else
        $case = $_POST['case'];
    
    switch($case) 
    { 
        case 1: 
?> 
<form method="post" enctype="multipart/form-data" action=""> 
 <table border="0" cellspacing="0" cellpadding="4">  
<?
if($allreadyavatar == 1)
{
echo '
 <tr>
  <td align="left"> 
   <b>Avatar:</b>
  </td>
  <td align="left"> 
   '.$avatar.'
  </td>
 </tr>
';
}
?>
 <tr>
  <td align="left">
<b>Groote:</b>
  </td>
  <td align="left">
   <?= $groote ?> KB.
  </td>
 </tr>
 <tr>
  <td align="left">
<b>Breedte:</b>
  </td>
  <td align="left">
   <?= $max_width ?>.
  </td>
 </tr>
 <tr>
  <td align="left">
<b>Hoogte:</b>
  </td>
  <td align="left">
   <?= $max_heigth ?>.
  </td>
 </tr>
 <tr>
  <td align="left">
<b>Extensies:</b>
  </td>
  <td align="left">
<? 
for($i = 0; $i < $aantal_extensies; $i++) 
    echo $extensie[$i] .'&nbsp;&nbsp;';
?>   
  </td>
 </tr>
 <tr>
  <td align="center" colspan="2">
<b>Avatar Uploaden:</b>
  </td>
 </tr>
 <tr>
  <td align="center" colspan="2">
   <input type="file" name="plaatje" />
   <input type="hidden" name="case" value="2" /> 
  </td>
 </tr>
<?
echo '
 <tr>
  <td align="center" colspan="2">
   <input type="submit" name="submit_upload" value="Upload" />
   <input type="hidden" name="case" value="2" /> 
  </td>
 </tr>
';
?>
</table> 
</form> 
<? 
            break; 
        case 2:
            if($_SESSION['logged'] == 1)
            {
                if(isset($_POST['submit_upload']) AND $_FILES['plaatje']['name'] !== "") 
                { 
                    if($allreadyavatar == 1)
                    {
                        $myFile = $avatar_oud;
                        $fh = fopen($myFile, 'w') or die("can't open file");
                        unlink($MyFile);    
                        fclose($fh);
                    }
                    $file_size = round($_FILES['plaatje']['size'] / 1024); 
                    $file_type = $_FILES['plaatje']['type']; 
                    $file = basename($_FILES['plaatje']['name']); 
                    $ext = explode(".", $file); 
                    $file_extension = array_pop($ext); 
                    $file_name = $_SESSION['user']; 
                    $size = getimagesize($_FILES['plaatje']['tmp_name']);
                    $width = $size[0]; 
                    $height = $size[1];
                    $file2 = $file_name.".".$file_extension;
                    if($file_size > $groote) 
                        echo '<b>Fout:</b> Uw avatar is groter dan <b>'.$groote.'</b> kb.<br />';
    
                    elseif($width > $max_width OR $height > $max_heigth) 
                    {
                        echo '<b>Fout:</b> U heeft een te groot plaatje!<br />Maximale afmetingen:<br />';
                        echo '<b>Breedte:</b> '.$max_width.' <b>Hoogte:</b> '. $max_heigth;
                    }
                    else
                    {
                        if(!in_array(strtolower($file_extension),$extensie)) 
                        { 
                            echo '<b>Fout:</b> Uw avatar is niet van het type: '; 
                            for($i = 0; $i < $aantal_extensies; $i++) 
                                echo '<b>'.$possible_extensions[$i].'<b>&nbsp;&nbsp;'; 
                            echo '<br />';
                        } 
                        else 
                        {
                            echo $file."<br>";
                            echo "$map<br>";
                            echo "$file_name<br>";
                            echo "$file_extension<br>";  
                            if(move_uploaded_file($file, $map . $file_name . "." . $file_extension)) 
                            {
                                $file = $map;
                                $file.= $file_name.".";
                                $file.= $file_extension;
                                if($allreadyavatar == 0)
                                {
                                    mysql_query("INSERT INTO `avatar` (`avatar`, `gebruikersnaam`)VALUES('".$file."', '".$gebruikersnaam."')")or die(mysql_error());
                                }
                                elseif($allreadyavatar == 1)
                                {
                                    mysql_query("UPDATE `avatar` SET `avatar`='".$file."'")or die(mysql_error());
                                }                       
                                echo 'Uw avatar is geupload!<br />';
                                echo 'Bekijk hem hier: <a href="'.$map . $file_name . "." . $file_extension.'">Afbeelding</a>';
                            } 
                            else 
                            { 
                                echo 'Het uploaden van uw avatar is niet gelukt'; 
                            }
                        } 
                    } 
                }
                else
                {
                    echo 'U moet wel wat invullen!';
                }
            }
            else
            {
                echo 'U moet wel ingelogged zijn!';
            }
        break; 
    } 
?>


Ik hoop dat jullie mij hiermee kunnen helpen.

Alvast bedankt voor jullie moeite en tijd!

Groeten,
Wesley.

  • HyperioN
  • Registratie: April 2003
  • Laatst online: 31-10 21:55
En wat heb je zelf al geprobeerd? Welke foutmelding wordt er gegeven? Iets meer info aub ;)

Ik doe maar een gok: Staan de maprechten goed? Gebruik je de goede basedir (die zal nu wel veranderd zijn!)?

[ Voor 41% gewijzigd door HyperioN op 18-04-2008 20:01 ]


Verwijderd

Topicstarter
Ja maprechten zijn 0777

ik heb al vanalles geprobeerd andere namen gebruiken andere volgorden,
Ik ben ten einde raar wat ik nog kan doen.\

al geprobeerd op mijn oude server hoefde ik dat niet gewoon images/avatars/ en met deze heb ik ook al de basedir geprobeerd.

betreft foutmeldingen, er zijn geen alleen notice: maar die zijn weg door ^ E_NOTICE

[ Voor 45% gewijzigd door Verwijderd op 18-04-2008 20:04 ]


  • paulh
  • Registratie: Juli 1999
  • Laatst online: 10-11 10:50
al geprobeerd bij $map een absoluut pad in te vullen ipv een relatief?

Verder kan ik je aanraden eens te verdiepen in het MVC concept maar dat is een ander verhaal.

[ Voor 40% gewijzigd door paulh op 18-04-2008 20:06 ]

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]


Verwijderd

Topicstarter
Dat maakt toch niet uit, want op de oude server werkte het ook maar goed ik zal het proberen.

edit: Absolute pad heeft niet geholpen, de fout zit hem in de dit: if(move_uploaded_file)) want hij zegt dit:

echo 'Het uploaden van uw avatar is niet gelukt';

dus hij komt niet voorbij move_uploaded_file.

[ Voor 53% gewijzigd door Verwijderd op 18-04-2008 20:08 ]


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Fix u notices, dan praten we verder.

Oude server = andere configuratie.

Going for adventure, lots of sun and a convertible! | GMT-8


Verwijderd

Waarschijnlijk stond op je vorige server safe mode uit.

Verwijderd

Topicstarter
notice zijn gefixed, en ik kan ook mappen makken en bestanden open en schrijven via PHP script, dus dan moet dit ook werken.

naar mijn gevoel zit het hem in de naam die hij niet goed kan veranderen ofzo.

[ Voor 24% gewijzigd door Verwijderd op 18-04-2008 20:17 ]


Verwijderd

Verwijderd schreef op vrijdag 18 april 2008 @ 20:09:
notice zijn gefixed, en ik kan ook mappen makken en bestanden open en schrijven via PHP script, dus dan moet dit ook werken.

naar mijn gevoel zit het hem in de naam die hij niet goed kan veranderen ofzo.
In welk stukje van de 200 gebeurt dat? denk niet dat veel mensen zin hebben die hele lap code door te worstelen.
Bevat de _FILES-variabele wel waarden bijv.? Dat al gecheckt?
PHP:
1
if(isset($_POST['submit_upload']) AND $_FILES['plaatje']['name']

Moet dat niet <> "" zijn, of pikt PHP dit ook zo? Lang niet meer in PHP geprogd...

[ Voor 14% gewijzigd door Verwijderd op 18-04-2008 20:39 ]


Verwijderd

Topicstarter
Dat met dat schrijven en maken van bestanden heb ik getest met een andere php script.
ik zal dat andere nog even bekijken.


Misschien helpt dit:

PHP:
1
echo $_POST['plaatje']."<br>";


dat staat net boven if(move_uploaded_file()) maar dat laat hij niet zien, wat eerder in het file formulier als name='plaatje' staat

[ Voor 46% gewijzigd door Verwijderd op 18-04-2008 20:53 ]


Verwijderd

Is het niet zo dat je de tmp_name moet gebruiken in move_uploaded_file

  • torp
  • Registratie: Januari 2001
  • Laatst online: 14-11 13:07
Misschien zie ik het verkeerd, maar waar stuur je die form naar toe?

code:
1
<form method="post" enctype="multipart/form-data" action="">

  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

Verwijderd schreef op vrijdag 18 april 2008 @ 21:46:
Is het niet zo dat je de tmp_name moet gebruiken in move_uploaded_file
Indeed it is.

Dus regel 163 moet zijn:
PHP:
1
 if(move_uploaded_file($_FILES['plaatje']['tmp_name'], $map . $file_name . "." . $file_extension))

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


Verwijderd

Topicstarter
Zeer hartelijk bedankt,

nu werkt het systeem weer foutloos!


Groeten,
Wesley.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 07:40

Creepy

Tactical Espionage Splatterer

Oftewel: je dumpt een enorme lap code ne je laat ons je eigen werk doen wat he zelf had moeten doen: debuggen. Dat is dus *niet* de bedoeling. Lees voor een volgende keer aub Welkom in Programming - FAQ en Beleid eens door.

Daarnaast zijn er echt zat voorbeelden te vinden hoe je move_uploaded_file moet gebruiken. Je kan me echt niet wijsmaken dat je met 5 minuten googlen en vergelijken met je eigen code daar echt niet uit was gekomen. Wat me meteen brengt op een ander belangrijk punt: het plaatsen van alleen de relevante (dus niet alle!) code: als je zelf al echt met je code aan het testen en debuggen was gegaan dan had je een veel kleiner stuk code kunnen posten met ene geisoleerd stuk waarin je probleem optreed.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.