[Allegro] rset.php hat einen fehler, der nur unter php 5.x sichtbar wird

Klaus Lehmann lehmann_klaus at t-online.de
Mi Nov 9 21:51:31 CET 2011


Guten Tag Herr Eversberg,

ich kann endlich den fehler präsentieren, den ich bislang nur in den 
alten phpacs ausfindig gemachthabe. er betrifft das aktuelle rset.php
wenn das ganze unter php4 läuft, wird der fehler nicht bemerkt.
hat man das neue(re) php5, so schreibt apache2 (V2.2.x) jeweils eine zeile in 
die error_log.



in der rset.php steht es so geschrieben:
========================================

/* $k = Anzahl Zeilen der Ausgabe */
if($k==-1) echo "Sorry, keine Verbindung. Vielleicht Server nicht in Betrieb.";
else
{
/* Ergebnisse anzeigen */
/* Wenn die Ausgabe mit "i=" anfaengt, war es nur 1 Datensatz. */
/* Der wird mit javascript eingeblendet */
if(substr($erg[0],0,2)=="i=").              /* line 102 */
 {
  $num=substr($erg[0],2,9);
  echo "<script language=\"JavaScript\">javascript:grec($num)</script>";
  $i=1;
 }

 else if(!strncmp($erg[0],"N:",2))          /* line 109 */
 {
 echo substr($erg[0],2) ."\n<br>";
$sw=substr($ufC,4,20);.
$le=strcspn($sw,"?");                                                                      


das apache2-log schreibt den fehler so:
=======================================

PHP Notice:  Undefined offset: 0 in /home/public_html/rset.php on line 102, referer: http://find.php
PHP Notice:  Undefined offset: 0 in /home/public_html/rset.php on line 109, referer: http://find.php


google half etwas:
==================
"Die Fehlermeldung "Undefined offset" deutet darauf hin, dass sich 
hier auf ein nicht existierendes Feldelement bezogen wird." 
Welches feldelement????



macht es sinn, die warnung zu unterdrücken?
============================================
vielleicht so?
if(substr(@$erg[0],0,2)=="i=").              /* line 102 */
 else if(!strncmp(@$erg[0],"N:",2))          /* line 109 */
 
 ~~~~~~~~~~~~~~~~~~~~ ich habe da jeweils ein @ eingebaut!



andere idee: die warnung im apache-log zu unterdrücken
=====================================================
das könnte so gehen: (aus der php.ini für apache 2 zitiert:)
; E_USER_NOTICE     - user-generated notice message
; E_DEPRECATED      - warn about code that will not work in future versions
;                     of PHP
; E_USER_DEPRECATED - user-generated deprecation warnings
;
; Common Values:
;   E_ALL & ~E_NOTICE  (Show all errors, except for notices and coding standards warnings.)
;   E_ALL & ~E_NOTICE | E_STRICT  (Show all errors, except for notices)
;   E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR  (Show only errors)
;   E_ALL | E_STRICT  (Show all errors, warnings and notices including coding standards.)
; Default Value: E_ALL & ~E_NOTICE
; Development Value: E_ALL | E_STRICT
; Production Value: E_ALL & ~E_DEPRECATED
; http://php.net/error-reporting

error_reporting = E_ALL & ~E_DEPRECATED          

NEUER eintrag in der php.ini
error_reporting = E_ALL & ~E_DEPRECATED | E_NOTICE
MACHT das sinn?


also. wie geht das?
was ist "falsch" in der rset.php?

danke. viele grüße aus dem kalten herbst aus radeberg.
-- 
Mit freundlichen Grüßen,
Ihr Klaus Lehmann
* http://allegronet.de * eMail: allegronet at t-online.de * phone: 03528-452 807(fax 809) * mobil: 0171-953 7843
* allegronet.de * Klaus Lehmann * D-01454 Radeberg * Kleinwolmsdorfer Str. 37
* Software für zufriedene Bibliothekare: 1000x bewaehrt und ergiebig
* Bereits 4x allegro-utf8. Buchen Sie die allegro-Roadshow
* Yes we can. Only with allegro. Yes we do. Allways with allegro.
* Internetkataloge&WebHosting für Allegro-C
* 2011: Sponsor der Peter-Sodann-Bibliothek (Staucha)




Mehr Informationen über die Mailingliste Allegro