You are not logged in.

  • Login

1

Tuesday, October 30th 2007, 11:45am

Uploadscript hängt bei filetype prüfung

Hallo,

ich erstelle gerade ein kleines Uploadscript.

Allerdings habe ich ein Problem. Das Ganze bleibt immer bei der Fehlermeldung

Quoted

Notice: Undefined index: userfile in /******.php on line 115
Bildtyp ungültig
hängen.

Könnt Ihr mir da weiterhelfen?

Mein Quellcode sieht so aus:

PHP Quellcode

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
'image/jpeg' 	=> 'jpg',
			'image/jpeg' 	=> 'jpeg',
			'image/gif' 	=> 'gif',
			'image/X-PNG'	=> 'png',
			'image/PNG'     	=> 'png',
			'image/png' 	=> 'png',
			'image/x-png' 	=> 'png',
			'image/JPG' 	=> 'jpg',
			'image/GIF' 	=> 'gif',
			'image/bmp' 	=> 'bmp',
			'image/bmp' 	=> 'BMP',
			);
 
			if(!array_key_exists($type, $file_types))
			{
				return "FALSE";
			}
			else
			{
				return "TRUE";
			}
		}
 
 
if (isset($_POST['step']) AND $_POST['step'] == "upload")
	{
		if ($_FILES['datei']['error'])
			{
				$error = "Folgende(r) Fehler ist aufgetreten:";
				$error .= "Allgemeiner Fehler";
			}
		if ($_FILES['datei']['size'] > 1000000)
			{
				$error = "Folgende(r) Fehler ist aufgetreten:";
				$error .= "Datei zu groß";
			}
 
 
		if(image_valid($_FILES['userfile']['type']) === "FALSE")
			{
				die("Bildtyp ungültig");
			}
		if(isset($error))
			{
				echo $error;
			}
		else
			{
				$dir = 'uploads';
				$filename = $_FILES['datei']['name'];
				move_uploaded_file($_FILES['datei']['tmp_name'], $dir."/".$filename);
				print"Upload erfolgreich!";
			}
		}
 
 
 
 
	else
		{
			print'Datei wählen:
 
 
 
 
 
 
 
			';
		}


Ich danke euch im voraus für eure Hilfe bei meiner ersten Frage ^^

Maggus

2

Tuesday, October 30th 2007, 12:18pm

In Zeile 115 deines Codes steht vermutlich irgendwo $_FILES['userfile']. Müsste dann aber $_FILES['datei'] sein.

3

Tuesday, October 30th 2007, 4:38pm

Vielen Dank für die schnelle Antwort... Da habe ich wieder DIE wichtige Kleinigkeit vergessen :(

Nun hänge ich aber wieder fest. Und zwar möchte ich den Namen des hochgeladenen Bildes in eine Mysql-Tabelle einfügen. Dies geschiet per Update in die Spalte "pfad" und die Zeielnauswahl soll in bezug auf die im vorhergegangenen Formular eingegebene Beschreibung ausgewählt werden.

Upload etc. funtioniert alles, nur wird der Bildname nicht eingefügt und ich sehe einfach nicht warum.

Vielen Dank nochmal für eure Hilfe

4

Tuesday, October 30th 2007, 5:03pm

Das ist aber wieder ein Codestück, außerhalb des geposteten Codes? Zumindest sehe ich keine MySQL Funktionen.
Andere Idee: Wie wärs, wenn du das Bild in der DB speicherst? MySQL Dateiupload

5

Tuesday, October 30th 2007, 5:56pm

uuuuuuups, jetzt habe ich doch tatsächlich vergessen den Code anzuhängen *schäm*

.::CODE::.

(In dem Script bin ich erst an der bearbeitung des ersten Bildes)

Ich dachte auch zuerst daran das ganze in der DB zu speichern, aber es kommen insgesammt bestimmt an die 400 Bilder ins Spiel, alle recht groß.

This post has been edited 1 times, last edit by "Maggus" (Oct 30th 2007, 6:02pm)


7

Tuesday, October 30th 2007, 10:47pm

Die Fehlermeldung gibt mir aus dass ich hier ein Problem habe:

echo '


<form action="bildup.php" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Bild(er) transferieren</legend>
<p>
<label for="datei_id">Bild 1auswählen:</label>
<input name="datei" id="datei_id" type="file" />
<input type="hidden" name="step" value="upload"><br>
<input type="hidden" name="besch"
';

echo "value=\"$beschreibung2\">";

echo '

<br>
</p>
<p>Zusätzliche Bilder:<br>
</p>
<!-- Upload meherer Dateien-->
<p>

Und das im Bereich

echo "value=\"$beschreibung2\">";

echo '

Ich nehme an, ich habe das ganze falsch angepackt?

Kannst du mir sagen wie ich die Variable richtig einfüge?

Danke dir!!!

8

Wednesday, October 31st 2007, 1:12am

nochmal genau: was funktioniert nicht und wie lautet die Fehlermeldung dazu?

9

Wednesday, October 31st 2007, 9:32am

Guten Morgen :)

Die Fehlermeldung lautet


Quoted

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '032' at line 1
Und bezieht sich auf den Mysql Befehl:

Quoted

mysql_query("UPDATE immobilien SET pfad='" . $filename . "' WHERE beschreibung=" . $_POST['besch']) or die(mysql_error());

Quoted

$_POST['besch']
enthält den Wert: test 032

Dieser soll über

Quoted

echo '


<form action="fileup.php" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Datei(en) transferieren</legend>
<p>
<label for="datei_id">Datei 1auswählen:</label>
<input name="datei" id="datei_id" type="file" />
<input type="hidden" name="step" value="upload_datei"><br>
<input type="hidden" name="besch"
';

echo "value=\"$beschreibung2\">";

echo '

<br>
</p>
<p>Zusätzliche Dateien:<br>



übergeben werden. Wie aber die Fehlermeldung zeigt, geht das nicht :(

Vielen Dank für deine Hilfe

10

Wednesday, October 31st 2007, 9:59am

Strings gehören in Anführungszeichen und variablen gehören escaped ;)

PHP Quellcode

1
2
3
4
5
$_POST['besch'] = mysql_real_escape_string($_POST['besch']);
 
$sql = "UPDATE 		immobilien 
	SET 		pfad='" . $filename . "' 
	WHERE 		beschreibung='" . $_POST['besch']."'; ";

11

Wednesday, October 31st 2007, 7:13pm

Klasse!! Ich danke dir... Da habe ich den Wald vor lauter Bäumen wieder nicht gesehen :)

Similar threads

Social bookmarks