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