Problem mit $_Files

piti66

Erfahrenes Mitglied
Hey,

hab ein Problem mit der Variable Files. Local bei mir funktioniert es, aber online nicht. Denke ist eine php.ini Einstellung oder ähnliches.
Ich hab mehrer Sprachen für die bestimmte Bilder über ein Adminbereich hochgeladen werden können. Da immer andere Sprachen dazu kommen können, habe ich es flexible programmiert:

Input-Feld Name: feld['.$i.'][1]
Ausgabe Prüfung: $_FILES["feld"]['name'][$i][1]

Wenn ich mir das array $_FILES["feld"] ausgeben lasse, habe ich local 8 Werte für 8 Sprachen, online sind es aber nur 5, obwohl auch 8 Sprachen da sind (Array hört bei 5 Werten auf). Obwohl alles gleich ist (hab auch Quelltext verglichen). Wird sowas irgendwie eingeschränkt oder so? Weiß jemand, was dies sein kann?

mfg

Sebastian
 
Also die php.ini kürzt Arrays bestimmt nicht auf eine bestimmte Größe.

Zu helfen ohne ein bisschen mehr vom Code zu sehen wird schwierig.
 
hey,

ja dass dies nichts in der php.ini macht ist mir schon klar ^^
Naja hier mal teile des Quellcodes:

Formular:

$i=1;
foreach($sprachen_array as $key=>$name) {
$daten=mysql_fetch_array(mysql_query("SELECT * FROM grafiken WHERE sprache='".$key."'"));
$src.='
<a name="reiter'.$i.'"></a>
<h3><a href="#reiter'.$i.'" onclick="divoeffnen(\'reiter'.$i.'\');" title="'.$name[1].'">'.$name[1].'</a></h3>
<div id="reiter'.$i.'" style="display: none;">
<table cellspacing="1" cellpadding="3">
<tr>
<td colspan="2"><h4>Oben</h4></td>
</tr>
<tr>
<td style="width:150px"><label for="start_grafik_ob_1'.$i.'"><strong>Grafik links:</strong></label></td>
<td>
<input type="file" name="feld['.$i.'][1]" id="start_grafik_ob_1'.$i.'" />
</td>
</tr>
....$i++;...

Auswertung:

$eintrag=$_POST['feld'];
for ($i=1; $i<=$_POST['anz']; $i++) {
//start_grafik_ob_1
$start_grafik_ob_1='';
if($_FILES['feld']['name'][$i][1]!="") {
$code="start_".zuzahl(20);
....

Und dass array $_FILES['feld'] geht wie gesagt local bis 8 (8 Sprachen) und online bis 5 nur. Dadurch werden die letzten Sprachen natürlich nicht hochgeladen. Anzahl u.s.w. ist immer dass gleiche...
 
piti66. Nach 415 Beiträgen sollte man wissen, das Code in Code-Tags gehören, damit das Zeugs auch lesbar ist.
Mindestens in [CODE]...[/CODE], besser aber in [PHP]...[/code]. Das ganze natürlich mit dem eingerückten Code, damit man die Struktur erkennt.

Zitat aus meiner Signatur:
Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen
 
PHP:
$i=1;
foreach($sprachen_array as $key=>$name) {
$daten=mysql_fetch_array(mysql_query("SELECT * FROM grafiken WHERE sprache='".$key."'"));
$src.='
<a name="reiter'.$i.'"></a>
<h3><a href="#reiter'.$i.'" onclick="divoeffnen(\'reiter'.$i.'\');" title="'.$name[1].'">'.$name[1].'</a></h3>
<div id="reiter'.$i.'" style="display: none;">
<table cellspacing="1" cellpadding="3">
<tr>
<td colspan="2"><h4>Oben</h4></td>
</tr>
<tr>
<td style="width:150px"><label for="start_grafik_ob_1'.$i.'"><strong>Grafik links:</strong></label></td>
<td>
<input type="file" name="feld['.$i.'][1]" id="start_grafik_ob_1'.$i.'" />
</td>
</tr>
....$i++;...

Auswertung:

$eintrag=$_POST['feld'];
for ($i=1; $i<=$_POST['anz']; $i++) {
//start_grafik_ob_1
$start_grafik_ob_1='';
if($_FILES['feld']['name'][$i][1]!="") {
$code="start_".zuzahl(20);
....
 
PHP:
$i=1;
foreach($sprachen_array as $key=>$name) {
$daten=mysql_fetch_array(mysql_query("SELECT * FROM grafiken WHERE sprache='".$key."'"));
$src.='
<a name="reiter'.$i.'"></a>
<h3><a href="#reiter'.$i.'" onclick="divoeffnen(\'reiter'.$i.'\');" title="'.$name[1].'">'.$name[1].'</a></h3>
<div id="reiter'.$i.'" style="display: none;">
<table cellspacing="1" cellpadding="3">
<tr>
<td colspan="2"><h4>Oben</h4></td>
</tr>
<tr>
<td style="width:150px"><label for="start_grafik_ob_1'.$i.'"><strong>Grafik links:</strong></label></td>
<td>
<input type="file" name="feld['.$i.'][1]" id="start_grafik_ob_1'.$i.'" />
</td>
</tr>
....$i++;...

Auswertung:

$eintrag=$_POST['feld'];
for ($i=1; $i<=$_POST['anz']; $i++) {
//start_grafik_ob_1
$start_grafik_ob_1='';
if($_FILES['feld']['name'][$i][1]!="") {
$code="start_".zuzahl(20);
....

Hast du dir diesen Code so mal angeschaut? Sorry, das kann ich nicht wirklich lesen. Das ist unformatiert, die Strings werden nicht geschlossen und somit ist der drauffolgende Code nicht mehr als solches erkennbar.

Nun, eine Frage hätt ich da noch:
Wie gross ist den $sprachen_array?

Und, du solltest irgendwo auch $i hochzählen.
Nachtrag: Ah, habs da irgendwo in der String-Darstellung gefunden.....
 
Ich hab natürlich nicht den ganze Code reingeschrieben, weil der den Rahmen Sprengen würde. $i++; zählt doch $i hoch ^^

Das Sprachen Array:

PHP:
$sprachen_array=array(
'de' => array(
'1' => "deutsch",'2' => "de.png",'3' => "1",'4' => "&euro;", '5' => '€', '6' => 'EUR', '7' => ''),
'en' => array(
'1' => "english",'2' => "en.png",'3' => "1",'4' => "&pound;", '5' => '£', '6' => 'GBP', '7' => 'iphone-cases'),
'it' => array(
'1' => "italiano",'2' => "it.png",'3' => "1",'4' => "&euro;", '5' => '€', '6' => 'EUR', '7' => 'iphone-cover'),
'fr' => array(
'1' => "fran&ccedil;ais",'2' => "fr.png",'3' => "1",'4' => "&euro;", '5' => '€', '6' => 'EUR', '7' => 'coques-iphone'),
'es' => array(
'1' => "espa&ntilde;ol",'2' => "es.png",'3' => "0",'4' => "&euro;", '5' => '€', '6' => 'EUR', '7' => ''),
'pl' => array(
'1' => "polski",'2' => "pl.png",'3' => "0",'4' => "Zl",'5' => "Zl", '6' => 'PLN', '7' => ''),
'cz' => array(
'1' => "cesky",'2' => "cz.png",'3' => "0",'4' => "CZK",'5' => "CZK", '6' => 'CZK', '7' => ''),
'eu' => array(
'1' => "europe",'2' => "eu.png",'3' => "1",'4' => "&euro;",'5' => "€", '6' => 'EUR', '7' => 'iphone-cases'));

Also wie gesagt im Moment 8 Sprachen. Local geht alles nur Online nicht. Hab auch hier noch nie socleh Probleme gehabt. Mmmh
 
was mir da gerade noch einfällt. Dass passiert an der Stelle nur mit dem $_FILES. $_POST geht ganz normal für alle 8 Sprachen. Vielleicht hilft dies.
 
Zurück