kostenloser Webspace werbefrei: lima-city


Fehler 405 durch PHP-Skript

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    protocrowd

    protocrowd hat kostenlosen Webspace.

    Ich möchte die Daten aus einem HTML5-Formular per POST-Methode in eine Datenbanktabelle laden. Da ein Feld vom Typ "file" ist, möchte ich zunächst eine ftp-Verbindung aufbauen, um das Bild in eine Gallery zu laden und danach den zurückgegebenen Pfad mit in die DB zu schreiben. Aber auch wenn ich den ftp-Teil auskommentiere, bekomme ich Fehler "405 Not Allowed", daran kann es also wohl nicht liegen...

    Hier ein Auszug aus dem Skript (alles bis auf die Connect-Daten)


    <?php
     header ('Content-Type: text/html;charset=utf-8');
     header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0');
    	
    	//ftp-connection für bilder-upload aufbauen
    	// $connection_id=ftp_connect(ftp.lima-city.de);
    	// $login=ftp_login($connection_id, 'xxx','xyz');
    
    	// if ((!$connection_id) || (!$login)){
    		// echo "FTP connection fehlgeschlagen";
    		// exit;
    	// }else{
    		// echo "mit dem Server verbunden...";
    	// }
    	
    	// if ($_POST['foto']){
    		// define ('UPLOAD_DIR','default-website/uploads/pictures/meldungen/');
    		// $img=$_POST['foto'];
    		// $img=str_replace('data:image/jpeg;base64,','',$img);
    		// $img=str_replace('','+',$img);
    		// $data=base64_decode($img);
    		// $file=UPLOAD_DIR.uniqid().'jpg';
    		// $success=ftp_put($connection_id, $file, $img, FTP_BINARY);
    		// if ($success){
    			// echo $file;
    		// }
    		// else {
    			// echo ('imgSaveErr');
    		// }
    		
    // }
    // ftp_close($connection_id);
    	
    	// Verbindung zur Datenbank aufbauen
            $verbindung=mysql_connect("mysql.lima-city.de:3306","USERxxx","pwxyz")
            or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
    
            mysql_select_db("db_305151_1")
            or die ("Die Datenbank existiert nicht.");
    		
    		if (isset($_POST['ereignis']) and isset ($_POST['loglaenge']) and isset ($_POST['logbreite'])){
    			// $_POST['beschreibung'] = stripslashes($_POST['beschreibung']);
    			// $_POST['lang'] = stripslashes($_POST['lang']);
    			// $_POST['breit'] = stripslashes($_POST['breit']);
    			
    			$timestamp=time();
    			$today=date("Y.m.d",$timestamp);
    			$eintrag="INSERT INTO 'db_305151_1'.'karte' (
    				'id' ,
    				'datum' ,
    				'beschreibung',
    				'longi' ,
    				'lat' 
    				)
    				VALUES (
    				NULL , '$today', '$_POST['ereignis']','$_POST['loglaenge']', '$_POST['logbreite']'
    				)";
    			$eintragen = mysql_query($eintrag);
    			
    			if($eintragen == true)
    			{
    				echo "Eintrag war erfolgreich";
    			}
    			else
    			{
    				echo "Fehler beim Speichern";
    			}
    ?>



    Kann mir jemand helfen?
    Hab gelesen, es kann an irgendwelchen Server-Konfigurationen liegen, aber wenn das der Fall ist, wo und wie ändere ich das?

    Verzweifelte Grüße
    Anke
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. matthias-detsch

    Kostenloser Webspace von matthias-detsch

    matthias-detsch hat kostenlosen Webspace.

    Wieso möchtest du das denn per ftp machen?
    Ich habe auc mal so einen upload gemacht, der auch gleich ein kleines vorschaubild erzeugt:

    <?php
    
    function getGUID(){ 
        if (function_exists('com_create_guid')){
            return com_create_guid();  // unter windows-server
        }else{  // für linux
            mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
            $charid = strtoupper(md5(uniqid(rand(), true)));
            $hyphen = chr(45);// "-"
            $uuid = chr(123)// "{"
                .substr($charid, 0, 8).$hyphen
                .substr($charid, 8, 4).$hyphen
                .substr($charid,12, 4).$hyphen
                .substr($charid,16, 4).$hyphen
                .substr($charid,20,12)
                .chr(125);// "}"
            return $uuid;
        }
    }
    
      header("Content-Type: text/html; charset=utf-8");
      if($_POST){
        include_once("db_connect.php");  //baut mysqli- Datenbankverbindung auf
        $table = 'galerie';
           
          $original_img_path = '/Galerie/original/';
    	    $mini_img_path = '/Galerie/img_mini/';   //pfade zu den Galerien, realtiver Pfad
          $error = "";
           
          for($i=0; $i<count($_FILES["img_file"]["name"]);$i++){
            if ($_FILES["img_file"]["type"][$i] == "image/jpeg" or $_FILES["img_file"]["type"][$i] == "image/png" or $_FILES["img_file"]["type"][$i] == "image/gif") {
    			// ^- jpeg (jpg und jpeg ) , png und gif Bilder können bearbeitet werden
    		  
    		  $guid = getGUID();  // funktion oben
              $new_org_file = $_SERVER['DOCUMENT_ROOT'].$original_img_path.$guid.strrchr($_FILES["img_file"]["name"][$i],".");
              $new_mini_file = $_SERVER['DOCUMENT_ROOT'].$mini_img_path.$guid.strrchr($_FILES["img_file"]["name"][$i],".");
              // erstellt kompletten pfad zu den neuen Bildern
    		  
    		  
              move_uploaded_file($_FILES['img_file']['tmp_name'][$i], $new_org_file);
    			// verschiebt das temporäre Bild zu dem eben erstellten pfad (+ umbenennung)
              list($width_org, $height_org) = getimagesize($new_org_file);
              // breite und höhe  des original Bildes, für die Seitenverhältnisse
    		  
              switch ($_FILES["img_file"]["type"][$i]) {
                case "image/jpeg":
                  $image_org = imagecreatefromjpeg($new_org_file);                
                  break;
                case "image/png":
                  $image_org = imagecreatefrompng($new_org_file);
                  break;
                case "image/gif":
                  $image_org = imagecreatefromgif($new_org_file);
                  break;
              }
              
              $image_new = imagecreatetruecolor((50*$width_org)/$height_org,50);
              imagecopyresampled($image_new, $image_org, 0, 0, 0, 0, (50*$width_org)/$height_org, 50, $width_org, $height_org);
      
              switch ($_FILES["img_file"]["type"][$i]) {
                case "image/jpeg":
                  imagejpeg($image_new,$new_mini_file,100);                
                  break;
                case "image/png":
                  imagepng($image_new,$new_mini_file,0);
                  break;
                case "image/gif":
                  imagegif($image_new,$new_mini_file);
                  break;
              }
              
              imagedestroy($image_org);
              imagedestroy($image_new);
                
            //Pfad zum Datenbank-String hinzufügen
            $sqlinsertquery = "INSERT INTO ".$table." SET ";
            $sqlinsertquery .= "pfad_org='".$original_img_path.$guid.strrchr($_FILES["img_file"]["name"][$i],".")."', pfad_mini='".$mini_img_path.$guid.strrchr($_FILES["img_file"]["name"][$i],".")."'"  ;
            $query_result = mysqli_query($mysqli, $sqlinsertquery);
            if(!$query_result){
                printf("Error: %s\n", mysqli_error($mysqli));
            }
                
            } else {
              $error .= "Dateiformat nicht unterst&uuml;tzt. (".$_FILES['img_file']['name'][$i].")<br/>";
            }
          }
          echo($error);
        }
        
        
        
        mysqli_close($mysqli);
      }
    ?>


    ich hoffe, es funktioniert auch bei dir, bei fragen, einfach fragen ;-)

    matthias
  4. Autor dieses Themas

    protocrowd

    protocrowd hat kostenlosen Webspace.

    Ich wollte es zunächst auch ohne ftp machen, jedoch habe ich tinyWebGallery installiert, um dort die Fotos reinzuladen. tinyWebGallery lässt den Upload aber nur über ihren eigenen Uploader oder ftp zu. (war die offizielle Antwort von denen) Alles andere ist geschützt/gesperrt. Welche Gallerie hattest du denn installiert? Vielleicht kann ich ja meine wieder deinstallieren und eine simplere nutzen...

    Außerdem löst das leider wohl nicht das 405 Not Allowed Problem, weil das auch bestand, als ich den ftp-Teil - also den kompletten Bilder-Upload - weggelassen habe und nur die restlichen Daten aus meinem Formular in die DB schreiben wollte. Liegt es vielleicht an der Methode "post"?

    Trotzdem danke für die Hilfe...
  5. matthias-detsch

    Kostenloser Webspace von matthias-detsch

    matthias-detsch hat kostenlosen Webspace.

    ich habe die selber geschrieben.


    liegt es bei dir vieleicht an den headern?

    und : verwende lieber mysqli statt mysql, ist sicherer

    ansonsten wüst ich nicht, woran es liegen könnte
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!