Karl: Anmeldeformular und Datei Upload

Hallo Community!

Ich habe mal wieder ein Problem, weshalb ich mich mit meinem Script an euch wende. Ich hoffe mir kann jemand einen Tipp geben!

Hier ein Teil des Scripts:

<?php  
	ini_set('upload_max_filesize','200M');  
	ini_set('post_max_size','200M');  
	ini_set('memory_limit','300M');  
	ini_set('max_execution_time','6000');  
	ini_set('max_input_time','6000');  
	  
	$nummer = $_POST['nummer'];  
	$bandname = $_POST['bandname'];  
	$historie = $_POST['historie'];  
	$bild1 = $_POST['bild1'];  
	$bild2 = $_POST['bild2'];  
	$bild3 = $_POST['bild3'];  
	$song1 = $_POST['song1'];  
	$song2 = $_POST['song2'];  
	$song3 = $_POST['song3'];  
	  
	$Dateiname_bereinigen = array( 'ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', 'ß' => 'ss', ' ' => '_' );  
	$bandname =preg_replace("/[^a-zA-Z0-9äöüÄÖÜ_]/" , "" , $bandname);  
  
	$int_max_filesize = 25000000;  
	if ($_FILES['historie']['size'] > $int_max_filesize) {  
		echo "<center>Datei ist zu gross - Abbruch!";  
		exit;  
	}  
	  
	$endung = explode(".",$_FILES['historie']['name']);  
	  
	$DateiNameNeu = strtr( strtolower( ID.'_'.$nummer.'_'.Historie.'_'.$bandname.'.'.$endung[1]), $Dateiname_bereinigen );  
  
	move_uploaded_file($_FILES['historie']['tmp_name'], $DateiNameNeu);  
	move_uploaded_file($_FILES['historie']['tmp_name'], $DateiNameNeu);  
  
	$historie = "$DateiNameNeu";  
  
?>

Das Problem liegt darin dass während des Ausführens das Script die variablen vergisst oder sie einfach überfliegt! Es scheint aber am Server zu liegen da alle Tests mit XAMPP korrekt liefen..

Das Programm besteht aus 9 PHP-Dateien, jede übergibt die Formdaten an das nächste Script, läd die Dateien hoch und übergiebt den Pfad ans das nächste usw.

Liebe Grüße
Karl

  1. Hi,

    Ich habe mal wieder ein Problem, ...

    das offensichtlich einer ausführlicheren Erklärung bedarf. Anscheinend hast du eine übel komplizierte Struktur gebaut.

    Das Problem liegt darin dass während des Ausführens das Script die variablen vergisst oder sie einfach überfliegt! Es scheint aber am Server zu liegen da alle Tests mit XAMPP korrekt liefen..

    Das soll uns jetzt was genau sagen ...?

    Das Programm besteht aus 9 PHP-Dateien, jede übergibt die Formdaten an das nächste Script, ...

    Du liebe Güte, warum *so* kompliziert? Und wonach hast du dann den Codeausschnitt ausgewählt, den du uns dazu zeigst? Einfach so, weil dieses Stück interessant aussieht?

    ini_set('upload_max_filesize','200M');
    ini_set('post_max_size','200M');

    Diese beiden Direktiven sind wirkungslos. Denn in dem Moment, wo sie gesetzt werden, ist der Upload schon längst abgeschlossen bzw. der POST-Request wird schon bearbeitet (sonst wäre ja das Script gar nicht gestartet worden).

    $nummer = $_POST['nummer'];
    $bandname = $_POST['bandname'];
    $historie = $_POST['historie'];
    $bild1 = $_POST['bild1'];
    $bild2 = $_POST['bild2'];
    $bild3 = $_POST['bild3'];
    $song1 = $_POST['song1'];
    $song2 = $_POST['song2'];
    $song3 = $_POST['song3'];

    Wozu diese Umkopier-Orgie?

    move_uploaded_file($_FILES['historie']['tmp_name'], $DateiNameNeu);
    move_uploaded_file($_FILES['historie']['tmp_name'], $DateiNameNeu);

    Zweimal?? Um ganz sicherzugehen? ;-)

    $historie = "$DateiNameNeu";

    Und einen String nochmal in einen String einzubetten, wird auch nicht sinnvoller, wenn man es oft genug sieht.

    Ergo: Du hast uns zwar einiges erzählt, aber keine wirkliche Information gegeben, also habe ich wenigstens die Kleinigkeiten kommentiert, die mir als teils belanglose Details aufgefallen sind.

    So long,
     Martin

    --
    Keine Sorge, wir finden für jede Lösung ein Problem.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Vielen Dank schon Mal!

      Ich wollte nicht gleich alles aufs Mal schreiben.

      Also, am Ende wird eine E-Mail generiert und dort alle Variablen eingesetzt.
      Das doppelte "move_uploaded_file" ist wie schon angenommen zur Sicherheit.

      Dass die Manipulationen an der 'ini.php' beim ersten Upload zwecklos sind, ist mir jetzt auch bewusst geworden :D

      Und die Variablenübergaben am Anfang ist Angewohnheit, um die Variable zu eröffnen.

      Hier mal der Link zu den Dateien:

      http://nettecedvservice.square7.ch/SelfHTML/

      Das sollte etwas mehr Licht ins Dunkle bringen!

      Grüße Karl

      1. Hallo,

        Ich wollte nicht gleich alles aufs Mal schreiben.

        nein, nicht alles - aber das, was für den Helfer wichtig ist, um das Problem zu verstehen.

        Das doppelte "move_uploaded_file" ist wie schon angenommen zur Sicherheit.

        Ach so. Gehst du auch jeden Tag runter an den Briefkasten, holst die Post raus, gehst dann wieder in die Wohnung rauf und dann zur Sicherheit das Ganze nochmal?
        Anders gefragt: Wenn der Aufruf einmal fehlschlägt - was lässt dich glauben, dass es durch simples Wiederholen besser wird?

        Und die Variablenübergaben am Anfang ist Angewohnheit, um die Variable zu eröffnen.

        Hä?? Variablen "eröffnen"? Keine Ahnung, was du damit sagen möchtest.

        Hier mal der Link zu den Dateien:
        http://nettecedvservice.square7.ch/SelfHTML/
        Das sollte etwas mehr Licht ins Dunkle bringen!

        Keine Spur. Da finde ich einen Haufen PHP-Dateien. Aber was die alle für einen Sinn haben und wie in diesem (zweifellos) unnötig komplexen Gebilde eins ins andere greifen soll, weiß ich deswegen immer noch nicht. Du erwartest nicht ernsthaft, dass ich jetzt kilobyteweise PHP-Code analysiere und debugge?

        Ciao,
         Martin

        --
        Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Beim Universum bin ich mir aber nicht ganz sicher.
          (Albert Einstein, deutscher Physiker)
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(