PHP Upload im privaten bereich

dandre

Mitglied
Hallo,
PHP:
<?php
// Zugangsdaten
include_once('pwd.inc.php');

// Bereichsbezeichnung
$bereich = "Privatzone";

// Fehlermeldung
$abbruch_meldung = <<<FEHLER
Du kommst hier net rein!<br />
<a href="http://www.disney.com">Kuckst du!</a>
FEHLER;

if(!array_key_exists($_SERVER['PHP_AUTH_USER'], $nutzer) || $_SERVER['PHP_AUTH_PW'] != $nutzer[$_SERVER['PHP_AUTH_USER']]) {
   Header("HTTP/1.1 401 Unauthorized");
   Header("WWW-Authenticate: Basic realm=".$bereich);
   echo $abbruch_meldung;
   exit;
}
?>
<b>Erfolgreicher Login</b><br />
Der Bereich <?echo $bereich;?> ist nun für <?echo $_SERVER['PHP_AUTH_USER']?> freigegeben!

<form enctype='multipart/form-data' action='#' method='post'>
<font face='Verdana'>
<input type='hidden' name='MAX_FILE_SIZE' value='3000000'>
</font>
<b><font size='1'>Dateigröße: max. 3MB erlaubt sind: *.gif | *.jpg | *.png</font></b><font size='2'><br>
</font>Datei:<input name='userfile' type='file' style='font-family: Verdana; font-size: 10pt; border: 1px dotted #000000; background-color: #5F86B6' size='20'><font size='2'>
</font>Kategorie:<select size='1' name='kategorie' style='font-family: Verdana; font-size: 10pt; border: 1px dotted #000000; background-color: #5F86B6'>
<font size='2'> </font>
<input type='submit' name='senden' value='upload' style='font-family: Verdana; font-size: 10pt; border: 1px dotted #000000; background-color: #5F86B6'></form>



<?php

// Zuerst bauen wir eine Verbindung zur Datenbank auf

$verbindung = mysql_connect ('mysql.lima-city.de',
'USER77***', '**')
or die ('keine Verbindung möglich.
Benutzername oder Passwort sind falsch');

mysql_select_db('db_77761_2')
or die ('Die Datenbank existiert nicht.');

$data = $_FILES['userfile']['name']; // Variable für Filename
$kategorie = $_POST['kategorie']; // Variable für Kategorie

// Ab jetzt fängt die Spamüberprüfung an, damit es keine doppelten Einträge gibt

if($data=='') // wenn leer, mace nix ansonsten gee zur Eintragsprüfung
{
echo '<p></p>';
}
else
{
if(file_exists('uploadbilder/'.$data.'')) // wenn Datei existiert, mace nix
//ansonsten gehe zum Dateiupload uploadbilder ist das uploadverzeichnis
{
echo 'Diese Datei existiert bereits. Bitte benennen Sie die Datei um!';
}
else
{
// In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt $_FILES verwenden.
// In PHP kleiner als 4.0.3 verwenden man copy() und is_uploaded_file() anstatt von
// move_uploaded_file()

//Deklaration der gültigen typen - Hier könnt ihr weitere hinzufügen
$mimearray=array('image/gif', 'image/jpeg', 'image/pjpeg','image/x-png','image/png');

//Upload verzeichnis
$uploaddir = 'uploadbilder/';
//Prüfen ob Formular gesendet wurde
if($_POST['senden']==true){
// Prüfung auf Gültigkeit des Vordeklarierten MimeTyps
if(in_array($_FILES['userfile']['type'],$mimearray))
{
// dateiupload
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
print 'Datei ist gültig und wurde erfolgreich hochgeladen. <br>Debugginginfo:n';
print '<br>';
print 'Name: '.$_FILES['userfile']['name'].'<br>';
print 'Größe: '.$_FILES['userfile']['size'].'<br>';
print 'Typ: '.$_FILES['userfile']['type'].'<br>';

$eintrag = 'INSERT INTO uploadbilder
(bild, autor)
VALUES
('$data','$_SERVER["PHP_AUTH_USER"]')

$eintragen = mysql_query($eintrag);
if($eintragen == true)
{
echo 'Eintrag erfolgreich in die Datenbank eingetragen';
}
}else{
// Fehler beim Dateiupload
print 'Fehler beim Dateiupload';
}
}else{
//Fehlermeldung wenn Datei nicht den vordeklarierten MimeTypes entspricht
print $_FILES['userfile']['name'].' - '.$_FILES['userfile']['type'].' <br>ist nicht für den Upload gestatet';
}
}
}
}
?>

Aber es kommt immer der Fehler :
Parse error: syntax error, unexpected T_VARIABLE in /home/webpages/lima-city/itak4ever/html/pb/login_variante.php on line 91

Zeile 91 is
PHP:
('$data','$_SERVER["PHP_AUTH_USER"]')

Ich hoffe ihr findet den Fehler. Den das mit $_server soll den Benutzer eintragen, der eingeloggt ist. Bitte sagt mir eine Lösung zu dem Problem. Danke
 
Wie am Highlighting schon zu erkennen sein sollte liegt der Fehler hier:
PHP:
$eintrag = 'INSERT INTO uploadbilder 
(bild, autor) 
VALUES 
('$data','$_SERVER["PHP_AUTH_USER"]')
Du kannst zum einen Variablen nicht direkt in einen mit '' begrenzten String eintragen, denn diese werden dann nicht ausgewertet sondern nur als Strings gehandhabt und ausserdem schliesst Du dort die Strings jeweils wieder. Und zu guter Letzt fehlt das ; nach dem Befehl.
Wie folgt sollte es klappen:
PHP:
$eintrag = "INSERT INTO uploadbilder (bild, autor) VALUES ('".$data."', '"$_SERVER['PHP_AUTH_USER']."')";
 
Hi,
könnte unter Umständen schon daran liegen das du den Insert Befehl so zerstückelt hast. Warum steht der nicht in einer Zeile? außerdem fehlt noch ein ' und ein ;
so is richtig:
PHP:
$eintrag = 'INSERT INTO uploadbilder (bild, autor) VALUES ('$data','$_SERVER["PHP_AUTH_USER"]')';
versuchs mal damit

EDIT:// wahh Dennis Schnell ;) :)
 
Zurück