PHP Upload...

dandre

Mitglied
Hallo,
ich möchte, dass man in das Formular Dtaen eingeben (kann/muss) also upload ist kann. Doch es tauchen Fehlermeldungen auf.

Fehlermeldung wenn nichts in upload: Fehler beim Dateiupload

Fehlermeldung wenn ich ein Gif Bild einfüge: Fatal error: Cannot use string offset as an array in /home/webpages/lima-city/itak4ever/html/upload2.php on line 62


Fehlermeldung wenn ich ein jpg Bild einfüge : 00de5a3608df9ad5169b8a3949b0624b.jpg - image/pjpeg ist nicht für den Upload gestatet.
PHP:
<?
if(!isset($_POST['senden']))
{
?>
<form enctype='multipart/form-data' action='#' method='post'>
<input type='hidden' name='MAX_FILE_SIZE' value='3000000'>
<b>
Vorname:<input type='text' name='vorname' size='25'>  <br>
Nachname:<input type='text' name='nachname' size='25'>  <br>
E-Mail:<input type='text' name='email' size='25'>  <br>
Homepage:<input type='text' name='homepage' size='25'>  <br>
<font size='1'>Dateigröße: max. 3MB erlaubt sind: *.gif | *.jpg | *.png</font></b>
Datei:<input name='userfile' type='file' style='font-family: Verdana; font-size: 10pt; border: 1px dotted #000000; background-color: #5F86B6' size='20'><br>
<input type='submit' name='senden' value='upload' style='font-family: Verdana; font-size: 10pt; border: 1px dotted #000000; background-color: #5F86B6'>
</form>
<?php
}else{
 $data = $_FILES['userfile']['name'];
 $vorname = addslashes($_POST['vorname']);
 $nachname = addslashes($_POST['nachname']);
 $email = addslashes($_POST['email']);
 $homepage = addslashes($_POST['homepage']);
 $error=''; // error ist am Anfang leer

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

 //Upload verzeichnis
 $uploaddir = 'uploadbilder/';

 // Zuerst bauen wir eine Verbindung zur Datenbank auf
 $verbindung = mysql_connect ('mysql.lima-city.de','USER71899', '******') OR die ('keine Verbindung möglich. Benutzername oder Passwort sind falsch');
 mysql_select_db('db?71899?1') or die ('Die Datenbank existiert nicht.');

 // Ab jetzt fängt die Spamüberprüfung an, damit es keine doppelten Einträge gibt
 if(!preg_match('!^http://!i',$homepage) && $homepage!='')
 {
  $hompage='http://'.$hompage;
 }

 if ($vorname == '') //wenn vorname leer
 {
  $error.= 'Bitte geben Sie ihren Vornamen ein.<br>' ;
 }
 if ($nachname == '') //wenn Nachname leer
 {
  $error.= 'Bitte geben Sie ihren Nachnamen ein.<br>';
 }
 if($email=='')
 {
  $error.='Bitte email-Adresse angeben';
 }

 if ($data!='') //wenn bilddatei angegeben ist
 {
  if (file_exists ('uploadbilder/'.$data)) // ist bilddatei schon vorhanden?
  {
   $error.= 'Diese Datei existiert bereits. Bitte benennen Sie die Datei um!<br>' ;
  }elseif(!in_array($_FILES['userfile']['type'],$mimearray)){ //ist der dateityp erlaubt?
   $error.= $_FILES['userfile']['name'].' - '.$_FILES['userfile']['type'].' ist nicht für den Upload gestatet.<br>';
  }else{ //wenn alles passt, name des bildes in neue variable
   $datei_name=$data['userfile']['name'];
  }
 }else{ //wenn kein bild angegeben ist
  $datei_name='keines.gif';
 }




if($error!='') // ist error immernoch leer? 
 { 
  echo $error; //wenn nicht error ausgeben 
 }else{ 
  if($datei_name!='kleines.gif') 
  { 
   // sonst 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>';  
   }else{ 
    die('Fehler beim Dateiupload');  
   } 
  } 
  // und eintrag in datenbank 

$eintrag = "INSERT INTO uploadbilder (hompage,bild,vorname,nachname,email)  
VALUES ('$homepage','$datei_name','$vorname','$nachname','$email')"; 
   $eintragen = mysql_query($eintrag);
  if($eintragen == true)
  {
   echo 'Eintrag erfolgreich in die Datenbank eingetragen.';
  }else{
   die('Fehler beim Eintragen in die Datenbank');
  }
 }
}
?>
Steht unter http://itak4ever.lima-city.de/upload2.php

Bitte helft mir. Denn ich finde den/die Fehler nicht.

Danke
 
Habe es fast gelöst. es wird nur immer Fehler beim Eintragen in die Datenbank.
PHP:
<?
if(!isset($_POST['senden']))
{
?>
<form enctype='multipart/form-data' action='#' method='post'> 
<input type='hidden' name='MAX_FILE_SIZE' value='3000000'> 
<b> 
Vorname:<input type='text' name='vorname' size='25'>  <br> 
Nachname:<input type='text' name='nachname' size='25'>  <br> 
E-Mail:<input type='text' name='email' size='25'>  <br> 
Homepage:<input type='text' name='homepage' size='25'>  <br> 
<font size='1'>Dateigröße: max. 3MB erlaubt sind: *.gif | *.jpg | *.png</font></b>
Datei:<input name='userfile' type='file' style='font-family: Verdana; font-size: 10pt; border: 1px dotted #000000; background-color: #5F86B6' size='20'><br>
<input type='submit' name='senden' value='upload' style='font-family: Verdana; font-size: 10pt; border: 1px dotted #000000; background-color: #5F86B6'>
</form> 
<?php
}else{ 
 $data = $_FILES['userfile']['name'];
 $vorname = addslashes($_POST['vorname']); 
 $nachname = addslashes($_POST['nachname']); 
 $email = addslashes($_POST['email']); 
 $homepage = addslashes($_POST['homepage']);
 $error=''; // error ist am Anfang leer
 
 //Deklaration der gültigen typen - Hier könnt ihr weitere hinzufügen 
 $mimearray = array('image/gif','image/jpeg','image/png'); 

 //Upload verzeichnis 
 $uploaddir = 'uploadbilder/'; 

 // Zuerst bauen wir eine Verbindung zur Datenbank auf 
 $verbindung = mysql_connect ('mysql.lima-city.de','USER71899', 'andre') OR die ('keine Verbindung möglich. Benutzername oder Passwort sind falsch'); 
 mysql_select_db('db?71899?1') or die ('Die Datenbank existiert nicht.'); 
 
 // Ab jetzt fängt die Spamüberprüfung an, damit es keine doppelten Einträge gibt 
 if(!preg_match('!^http://!i',$homepage))
 {
  $homepage='http://'.$homepage;
 } 

 if ($vorname == '') //wenn vorname leer
 { 
  $error.= 'Bitte geben Sie ihren Vornamen ein.<br>' ; 
 }
 if ($nachname == '') //wenn Nachname leer
 { 
  $error.= 'Bitte geben Sie ihren Nachnamen ein.<br>'; 
 }

 if ($data!='') //wenn bilddatei angegeben ist
 { 
  if (file_exists ('uploadbilder/'.$data)) // ist bilddatei schon vorhanden?
  { 
   $error.= 'Diese Datei existiert bereits. Bitte benennen Sie die Datei um!<br>' ; 
  }elseif(!in_array($_FILES['userfile']['type'],$mimearray)){ //ist der dateityp erlaubt?
   $error.= $_FILES['userfile']['name'].' - '.$_FILES['userfile']['type'].' ist nicht für den Upload gestatet.<br>';
  }else{ //wenn alles passt, name des bildes in neue variable
   $datei_name=$data;
  }
 }else{ //wenn kein bild angegeben ist
  $datei_name='keines.gif';
 }

 if($error!='') // ist error immernoch leer?
 {
  echo $error; //wenn nicht error ausgeben
 }else{
  if($datei_name!='keines.gif')
  {
   // sonst dateiupload 
   if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$data))
   { 
    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>'; 
   }else{
    die('Fehler beim Dateiupload'); 
   }
  }
  // und eintrag in datenbank
  $eintrag = "INSERT INTO uploadbilder (hompage,bild,vorname,nachname,email) 
VALUES ('$homepage','$datei_name','$vorname','$nachname','$email')"; 
  $eintragen = mysql_query($eintrag); 
  if($eintragen == true) 
  { 
   echo 'Eintrag erfolgreich in die Datenbank eingetragen.'; 
  }else{ 
   die('Fehler beim Eintragen in die Datenbank');
  }
 }
}
?>
 
Zurück