Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » php-Code wird trotz Fehler ausgeführt, seltsam
Druckversion
Druckversion
Antworten
Antworten
Autor
Kein bestimmter Bereich php-Code wird trotz Fehler ausgeführt, seltsam
knaggix
Aktiv Letzter Besuch: im letzten Quartal
Dabei seit: 01.02.2008
Mitteilungen: 403
Herkunft: CH
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2021-01-28


Hallo zusammen

Folgender php Code wird auf dem Server meines Providers trotz Fehler im Code korrekt ausgeführt:
php
if($a > 0 && $b<0){
   $defb_g  = -$c;
   $defb_gk = g;
}


Ich hatte die Anführungszeichen bei g vergessen und trotzdem wurde der Code auf dem Server des Providers ohne Fehlermeldung ausgeführt.

Korrekt wäre so:
php
if($a > 0 && $b<0){
   $defb_g  = -$c;
   $defb_gk = "g";
}


Bei mir lokal auf dem Apache Server wurde mir eine Fehlermeldung ausgegeben.

Wie kommt es, dass der Code auf dem Server des Providers  geht, auf meinem lokalen Server nicht? Kann mir dies jemand erklären.

Danke für Erklärungen,
lg,knaggix





-----------------
Wer den Hafen nicht kennt, für den bläst nie ein günstiger Wind



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2698
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2021-01-28


Ich bin kein php-Experte, doch eine schnelle Google-Suche ergibt, dass php sich vorbehält, unbekannte Zeichenketten als String-Literal mit vergessenen Anführungszeichen zu interpretieren.


-----------------
Why waste time learning when ignorance is instantaneous?
- Bill Watterson -



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
knaggix
Aktiv Letzter Besuch: im letzten Quartal
Dabei seit: 01.02.2008
Mitteilungen: 403
Herkunft: CH
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2021-01-28


Hm, ja das könnte eine Erklärung für diesen Fehler sein.

Ich habe noch so einen Fall entdeckt:
php
while($klammerterm1 == 0 && klammerterm2 == 0){
 
   dosomething(); 
 

Hier hatte ich das $ Zeichen vergessen und der Code wurde wieder auf dem Providerserver korrekt ausgeführt, auf meinem lokalen Server erhielt ich eine Fehlermeldung.
php
Korrekt wäre:
while($klammerterm1 == 0 && $klammerterm2 == 0){
 
   dosomething(); 
 


wie kommt dies zustande?

lg, knaggix


-----------------
Wer den Hafen nicht kennt, für den bläst nie ein günstiger Wind



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2698
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2021-01-28


Hast du überprüft, ob der obige Ausdruck tatsächlich korrekt (im Sinne von "sinnvoll") ausgeführt wird?

Nach meinem Verständnis sollte klammerterm2 == 0 IMMER zu false ausgewertet werden. Die while-Schleife würde demnach niemals betreten.


-----------------
Why waste time learning when ignorance is instantaneous?
- Bill Watterson -



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
knaggix
Aktiv Letzter Besuch: im letzten Quartal
Dabei seit: 01.02.2008
Mitteilungen: 403
Herkunft: CH
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, vom Themenstarter, eingetragen 2021-01-28


Hallo DerEinfältige

Danke fürs Mitdenken.
Ja, das könnte sein.
Diese while Schleife wäre nur selten in Aktion getreten, und so ist sie es nie.
Hm, ... in jedem Fall scheint mein lokaler Server viel "strenger" zu sein, als der Online-Server, denn bei mir läuft der fehlerhafte  Code  nicht.

lieber Gruss,
knaggix


-----------------
Wer den Hafen nicht kennt, für den bläst nie ein günstiger Wind



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
knaggix
Aktiv Letzter Besuch: im letzten Quartal
Dabei seit: 01.02.2008
Mitteilungen: 403
Herkunft: CH
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2021-01-28


. . .

jetzt noch ein "schwerwiegenderer" Fall:
php
function($x, $solution){ 
 . . . 
 . . . 
 if( $with_solution == "1"){
   $x0 = $solution[0];
   $x1 = $solution[1];
   $x2 = $solution[2];
   $x3 = $solution[3];
   $x4 = $solution[4];
 }
}
 
 


Ein Array mit 5 Einträgen wird ausgelesen.

In einem Fall wurde nur ein Array mit 3 Einträgen  
in die function eingegeben und trotzdem gabe es online keine Fehlermeldung
vom Server.
Bei mir lokal wurde der Code nicht ausgeführt und es kam die Fehlermeldung , dass eben Arrayindices nicht stimmen.

Wie kann dies sein, dass der Online-Server so tolerant ist?
Im Grunde ist es ein "service" an den Programmierer, aber es hilft nicht gerade, fehlerfreien Code upzuloaden.

Wenn ich nicht "per Zufall" meinen Apache Server neu installiert hätte, der nun offenbar "kritischer" ist, wäre ich nicht so schnell auf meine Syntaxfehler oder schlimmer, Denkfehler gekommen.

Habt ihr Tipps, wie man die Fehlermeldungen vom Server "erzwingen" kann, damit man sicher ist, dass der Code immer (bei jedem Server) funktioniert ?

LG, knaggix






-----------------
Wer den Hafen nicht kennt, für den bläst nie ein günstiger Wind



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 1895
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2021-01-28


2021-01-28 12:54 - knaggix in Beitrag No. 5 schreibt:
Habt ihr Tipps, wie man die Fehlermeldungen vom Server "erzwingen" kann, damit man sicher ist, dass der Code immer (bei jedem Server) funktioniert ?

Du kannst hier mal einen Blick hineinwerfen.

Du findest aber noch viel mehr zu diesem Thema, wenn du z.B. nach "php.ini error handling" suchst.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
knaggix
Aktiv Letzter Besuch: im letzten Quartal
Dabei seit: 01.02.2008
Mitteilungen: 403
Herkunft: CH
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, vom Themenstarter, eingetragen 2021-01-28


Danke zippy

Das sieht vielversprechend aus, so komme ich evtl. an die Fehlermeldungen.

error_reporting(E_All);

mal sehen, wie es funktioniert.

lg, knaggix


-----------------
Wer den Hafen nicht kennt, für den bläst nie ein günstiger Wind



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
knaggix hat die Antworten auf ihre/seine Frage gesehen.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]