Fwd: [Allegro] phpac: probleme mit t-mail.php + find.php + av_find.php (letzte version)

Klaus Lehmann lehmann_klaus at t-online.de
Mi Jul 21 10:47:24 CEST 2010


On Wed, 21 Jul 2010 08:02:29 +0200 Bernhard Eversberg wrote:

guten morgen herr eversberg, 
danke für die email.

<>Klaus Lehmann schrieb:
<>> es bleibt bei der letzten fehlermeldung.
<>> [Tue Jul 20 17:03:18 2010] [error] [client 12.1.2.176] PHP Notice: 
<>> Undefined variable: fields in /public_html/av_find.php on
<>>  line 48, referer:
<>> http://medien.net/find.php?urG=PER&urS=meiners,%20hermann          
   
<>> ich kann dem nicht ansehen, warum fields "undefinied" sein soll.
sie
<>> ist doch aber definiert. oder bezieht sie sich auf etwas anderes
<>> "undefiniertes"??
<>> 
<>Die Zeile 15:
<>if(isset($fa["fld"])) $fields= $fa["fld"];
<>muß erweitert werden zu
<>if(isset($fa["fld"])) $fields= $fa["fld"]; else $fields="";
<>


<>sonst kann man sich nicht später in Zeile 48 auf $fields beziehen.
<>Das ist aber anscheinend nur bei Ihrer PHP-Version oder Installation
so,
<>ich erlebe das zum ersten Mal. Was für eine Version ist es?

es ist php v5.3.2 auf Apache/2.2.13



<>(Die Variable $fields wird aber in Ihrer Anwendung gar nicht
gebraucht,
dann betrifft das das offzielle phpac auch ;-)


<>das Scheitern ist also umso unerfreulicher.)

deshalb wird ja auch oben mit isset "abgefragt". 
der fehler, der so aussieht (wenn man php 5 entsprechend konfiguriert
hat): "Notice: Undefined variable:  ..." ,wird erst ab V5.x aktuell.

man bekommt zu diesem thema einige hinweise im google.
z.b. http://www.php-fehlermeldungen.de/topic20.html
und http://www.php-faq.de/q-fehler-variable.html

deshalb finde ich auch, dieser block in av_find.php sollte so
geschrieben werden:
function av_find($fa)  // $fa = assoz. array
{
$recnums=$fa["cmd"];
$fields= $fa["fld"];
$param=  $fa["par"];
$partab= $fa["pat"];

sollte so geschrieben werden:
function av_find($fa)  // $fa = assoz. array
{

if(isset($fa["cmd"])) $recnums = $fa["cmd"];
if(isset($fa["fld"])) $fields= $fa["fld"]; else $fields="";
if(isset($fa["par"])) $param = $fa["par"];
if(isset($fa["pat"])) $partab = $fa["pat"];                         

wobei die frage für mich jetzt ist, ob man die gute alte "else" nicht
in den anderen 3 zeilen ergänzt.
sodaß es so aussehen könnte:

function av_find($fa)  // $fa = assoz. array
{

if(isset($fa["cmd"])) $recnums = $fa["cmd"]; else $recnum2="";
if(isset($fa["fld"])) $fields= $fa["fld"]; else $fields="";
if(isset($fa["par"])) $param = $fa["par"]; else $param="";
if(isset($fa["pat"])) $partab = $fa["pat"]; else $partab="";




jedenfalls, gibt es damit: ...
==================
function av_find($fa)  // $fa = assoz. array
{
if(isset($fa["cmd"])) $recnums = $fa["cmd"];
if(isset($fa["fld"])) $fields= $fa["fld"]; else $fields="";
if(isset($fa["par"])) $param = $fa["par"];
if(isset($fa["pat"])) $partab = $fa["pat"];                         
   ...KEINE apache/php-fehlermeldungen mehr! danke.


 
<>> und das letzte problem: 
<>> kein versenden der ergebnismengen:
<>> im browser kommt:
<>> 2 Zeilen, Parameter: d-mail
<>> Die eMail [Ergebnisse aus medien: PER ] wurde abgeschickt an
<>> olsen_egon at dansk.dk.
<>> Sie wird aber nur ankommen, wenn die Adresse stimmt!
<>> 
<>> als email kommt dann:
<>> N:<E130> kein Ergebnis bei: PER
<>> Sorry, record PER not found.
<>> bestimmt hängen die "undefinierten fields" damit zusammen....
<>> 
<>das wird sich zeigen.

nein, hängen sie leider nicht. man hangelt sich von fehler zu fehler
mal schauen.

viele grüße
Ihr Klaus Lehmann




Mehr Informationen über die Mailingliste Allegro