[Allegro] rset.php hat einen fehler, der nur unter php 5.x sichtbar wird
Jörg Oberfell
oberfell at wlb-stuttgart.de
Sa Nov 12 11:55:55 CET 2011
Lieber Herr Lehmann,
>> Feldelement meint hier $erg[0], also das erste Element im Array $erg.
>> Die PHP-Meldung lässt sich mit folgendem PHP-Skript reproduzieren:
>> $erg = array(); // LEERES Array
>> if(substr($erg[0],0,2)=="i="){}
>>
>> Mit einem einelementigen Array, z. B.
>> $erg = array(""); // Array mit einem Element (leerer String)
>> if(substr($erg[0],0,2)=="i="){}
>> ist die Meldung dann weg.
> also löst ihre zusätzliche zeile das problem?!
> es gilt es auszuprobieren.
Das war nicht(!) als Lösung gedacht, sondern als Test, um die
Fehlermeldung zu provozieren bzw. um zu zeigen, dass die Meldung im
zweiten Beispiel [$erg = array("")] nicht mehr auftritt, denn im
einelementigen Array kann problemlos auf das erste Element zugegriffen
werden.
> ich rate/interpretiere: kommt ein "i="irgendwas oder kommt eben als
> nur mögliche alternative eben NICHTS, ist $erg leer. zu einfach?
Ich kann nicht beurteilen, was von acon zurückkommt, wenn KEIN Datensatz
gefunden wird. Kommt dann wirklich nichts? Das ist natürlich
Job-abhängig (mein rset.php sieht etwas anders aus), aber meistens steht
in den Jobs doch irgendetwas wie "Nichts gefunden", und zumindest das
müsste nachher in $erg stehen.
> ein anderer ansatz ist auch:
> wir geben explicit an dieser stelle gar keine fehlermeldungen raus!
> und zwar so: (seit gestern abend getestet)
>
> in der rset.php um ein "@" ergänzt
> if(substr(@$erg[0],0,2)=="i=").
> ~
> ist das "kopf in den wüstensand stecken"?
Man müsste zunächst prüfen, ob semantisch gesehen eine leere Antwort
gültig ist, oder aus semantischer Sicht einen Fehler bedeutet. Dann
würde ich Folgendes vor die problematische Zeile setzen:
if (count($erg) == 0) { // Ergebnis-Array ist leer
//entweder leere Antwort oder aber Fehlermeldung ausgeben
}
else if (substr(@$erg[0],0,2)=="i="))
...
Viele Grüße,
Jörg Oberfell
--
**********************************************************************
Jörg Oberfell
Württembergische Landesbibliothek
- IT-Abteilung -
- Fachreferat Mathematik und Informatik -
Konrad-Adenauer-Str. 8 D-70173 Stuttgart
Postfach 105441 D-70047 Stuttgart
Tel.: +49 (0)711 / 212 - 44 75
Fax: +49 (0)711 / 212 - 44 22
E-Mail: oberfell at wlb-stuttgart.de
**********************************************************************
Mehr Informationen über die Mailingliste Allegro