ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
426
426
EMPFEHLEN
-
hallo leute,
habe gestern eine Änderung an einer der PHP-Dateien vorgenommen. Wenn ich nun den CSV-Export aufrufe bekomme ich folgende Fehlermeldung in meine Exeldatei:
Die letzte Zeile wiederholt sich für jeden Datensatz in der DB.HTML-Code:p style="color:red">SYSTEM WARNING: array_keys() [<a href='function.array-keys'>function.array-keys</a>]: The first argument should be an array</p> <p style="color:red">SYSTEM WARNING: Invalid argument supplied for foreach()</p> <p style="color:red">SYSTEM WARNING: array_keys() [<a href='function.array-keys'>function.array-keys</a>]: The first argument should be an array</p> <p style="color:red">SYSTEM WARNING: Invalid argument supplied for foreach()</p> <p style="color:red">SYSTEM WARNING: array_values() [<a href='function.array-values'>function.array-values</a>]: The argument should be an array</p> <p style="color:red">SYSTEM WARNING: Invalid argument supplied for foreach()</p>
Die Änderung wurde leider an der datei config_defaults_inc.php vorgenommen und zwar hier:
Es wurde in der letzten Zeile zu den vorhandenen Standardbezeicnern ein zusätzlicher column-bezeichner eingefügt. Das ganze wurde dann auch wieder rückgängig gemacht aber es funktioniert trotzdem nicht.PHP-Code:# A configuration option that identifies the columns to be include in the CSV export.
# In Mantis 1.1, this option can be overriden using the Generic Configuration screen.
# This configuration can be overriden dynamically by overriding the custom function "get_columns_to_view".
$g_csv_columns = array ( 'id', 'project_id', 'reporter_id', 'handler_id', 'priority', 'severity', 'reproducibility', 'version', 'projection', 'category', 'date_submitted', 'eta', 'os', 'os_build', 'platform', 'view_state', 'last_updated', 'summary', 'status', 'resolution', 'fixed_in_version', 'duplicate_id' );
Kann jemand helfen, da es dringend ist.
Vielen Dank
heiner
-
Ich denke, dass du die Fehlermeldung deuten kannst, oder?
foreach() erwartet ein Array, und scheint keines zu bekommen. In deinem PHP-Code ist kein foreach() du solltest dir also am besten mal die Stelle suchen in der das foreach steht.
Das da oben ist definitiv ein Array, daher kann die Fehlermeldung Sinn machen, wenn dies das Array sein soll, das mit foreach behandelt wird. Hast du vlt den Variablennamen falsch, oder im Array (bei dem hier oben nicht) ein Komma mit einem Punkt verwechselt?
Wenn du etwas anderes mit foreach behandelst, dann guck nach ob sich da etwas verändert hat. Jedenfalls glaubt PHP kein Array zu bekommen.
Hoffe das hilft für den Anfang, mehr ist aus deinem Post nicht zu lesen glaub ich, sry.
-
Erst mal danke soweit. Hier sollte es es eigentlich die richtige Stelle sein:
PHP-Code:# Get columns to be exported
$t_columns = csv_get_columns();
# export the titles
$t_first_column = true;
ob_start();
$t_titles = array();
foreach ( $t_columns as $t_column ) {
if ( !$t_first_column ) {
echo $t_sep;
} else {
$t_first_column = false;
}
if ( strpos( $t_column, 'custom_' ) === 0 ) {
$t_column_title_function = 'print_column_title';
helper_call_custom_function( $t_column_title_function, array( $t_column, COLUMNS_TARGET_CSV_PAGE ) );
} else {
$t_function = 'print_column_title_' . $t_column;
$t_function( '', 'ASC', COLUMNS_TARGET_CSV_PAGE );
}
}
echo $t_nl;
Und das habe ich auch noch gefunden:
PHP-Code:# --------------------
# An array of column names that are used to identify fields to include and in which order.
function csv_get_columns() {
$t_columns = helper_get_columns_to_view( COLUMNS_TARGET_CSV_PAGE );
return $t_columns;
}
Hilft dir das weiter?
Danke
heiner
-
Naja, also jedenfalls sehe ich in dem Code keinen Fehler (wenn helper_get_columns_to_view() richtig funktionert). Wenn er dir wirklich bei diesem foreach() das Skript spregt probier einfach mal ein
das dürfte dir zumindest sagen, ob dein Array richtig ankommt.PHP-Code:print_r($t_columns);
Am besten tu setzt es zuerst in den oben code vor dem foreach() und dann in den 2ten, vor dem return.
-
Und wo schreibt der print_r hin?
-
auf deinen bildschirm
-
moin, sry hab das vorhin zu schnell und falsch beantwortet.
Er schreibt dir natürlich in deinen Quelltext, also gibt direkt aus.
Musst du eventuell mit Rechtsklick -> Quelltext anzeigen sichtbar machen.
-
Erst mal bis hierher Danke. Leider sehe ich da gar nichts. Gibt es keine Möglichkeit die Ausgabe des print_r zum beispiel in eine Datei umzuleiten.
Ich kann mir einfach nicht erklären wo der Fehler sein soll.
-
Gern geschehen.
kurze Nachfrage, du hast schon print_r mit der Variable benutzt, und dich bei der Variable nicht verschrieben, oder?
Wenn ja, kann es sein, dass die Varbiable einfach leer ist, dann Zeigt print_r auch nichts an.
Die Fehlermeldung asu deinem ersten Post sagt einfach, dass das foreach kein Array geliefert bekommt, sondern z. B. einen leeren String oder sowas....
Da kann also entweder die Funktion fehlerhaft sein, die das Array raholt, also
csv_get_columns();
Oder das Array ist nicht richtig definiert worden.
Da kommen wir wieder zu deinem ersten Post. Wo du meintest du hast ein Array geändert.
Eigentlich sieht das Array da aber korrekt aus. Die Strings sind korrekt und die Kommata sind auch alle da.
Das heißt, entweder hast du das Array umbenannt, dass g_ am Anfang kommt mir nämlich komisch vor in g_csv_columns.
Oder die Funktion ist wie gesagt schon kaputt. Nachgucken ob da wirklich ein Array ist kannst du nur in dem du es ausgibst (oder per if prüfst und dann "juhu" ausgibst).
Das macht print_r halt. Weiß sonst auch keine Vorankommen. Wir müssen den Fehler schon irgendwie lokalisieren.Geändert von TheBodo (15.12.11 um 16:39 Uhr)
Ähnliche Themen
-
Bugtracker Mantis hängt manchmal
Von tomkruse im Forum PHPAntworten: 2Letzter Beitrag: 30.09.09, 07:58 -
Bugtracker Mantis Mailversand
Von HeinerPyt im Forum PHPAntworten: 1Letzter Beitrag: 24.01.08, 17:13 -
Mantis einloggen
Von HeinerPyt im Forum PHPAntworten: 0Letzter Beitrag: 23.01.08, 11:26





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren