Heizkesseldaten bereitstellen

  • Und wenn du das \r ganz weglaesst? Also nur die "" stehen laesst?

  • Die Fehlermeldung wird richtig dargestellt, dann muß es doch noch ein anderes Problem bestehen.
    Ich tippe dabei auf den E-Mail Text.
    Füge vor dem \n noch ein \r ein,
    sodass es heißt

    Code
    $text = "Meldung vom Kessel:\r\nFehlermeldung: $FEHLERMELDUNG\r\nFehlerzeitpunkt: $FEHLERZEITPUNKT";
  • ERASER:
    Das ist prinzipiell einen Versuch wert. Dennoch vermute ich den Fehler weiter oben, da es ja so auf meinem NAS funktioniert hat und ja auch eine rote Zeile ohne Fehlermeldung ausgegeben wird.


    Ich habe bei mir zum Testen die Daten aus einer PHP-Datei gezogen. Diese hatte nach jeder Zeile einen Zeilenumbrucht. Daher \r.
    Das CGI-Skript liefert die Daten moeglicherweise anders formatiert, wuerde ich hier vermuten.

  • Hallo habe die Vorschläge getestet. Leider ohne Erfolg.
    Bitte nicht aufgeben.


    Hier nochmal das komplette Skript


    Einmal editiert, zuletzt von Eraser-EMC2- () aus folgendem Grund: E-Mail Adresse entfernt

  • Hallo,


    Ich werde das heute Abend nochmal durchtesten.
    Vielleicht waere es dazu hilfreich, wenn du mir nochmal die Ausgabe der CGI liefern koenntest.
    Hierfuer in der Zeile nach $_buffer = ... folgende Zeile einfuegen:

    Code
    echo $_buffer;


    Moeglicherweise sehe ich so, welche Formatierungen hier vorgenommen wurden.
    Am besten daher einmal den Inhalt der Seite und einmal den Seitenquelltext posten.

  • Zitat von "TobiasK"

    Hierfuer in der Zeile nach $_buffer = ... folgende Zeile einfuegen:


    Da würde ich doch eher über die Konsole und

    Code
    wget http://..... -O /share/Public/ofen.cgi

    direkt die cgi aufrufen,
    damit wird eine Datei "ofen.cgi" ohne Veränderungen in Public geschrieben, bzgl. Zeilenumbruch (\r\n usw.)

  • ich habe die Datei. ich bin online. am einfachsten wäre wenn du per pn mir deine mailadresse gibst.
    dann sende ich dir die cgi Datei. ok?

    Einmal editiert, zuletzt von bladekiller () aus folgendem Grund: DP i.O,

  • Hallo.
    Das mit der roten Zeile klappt jetzt.


    die php.ini ist bei mit auf den Standardwerten. aber hier gebe ich sie jetzt trotzdem rein.


    Code
    [PHP]engine = Onshort_open_tag = Onasp_tags = Offprecision    =  12y2k_compliance = Onoutput_buffering = Offzlib.output_compression = Offimplicit_flush = Offunserialize_callback_func=serialize_precision = 100allow_call_time_pass_reference = Onsafe_mode = Offsafe_mode_gid = Offsafe_mode_include_dir =								safe_mode_exec_dir =safe_mode_allowed_env_vars = PHP_safe_mode_protected_env_vars = LD_LIBRARY_PATHdisable_functions =disable_classes =expose_php = Offmax_execution_time = 86400   ; Maximum execution time of each script, in secondsmax_input_time = 86400	; Maximum amount of time each script may spend parsing request datamemory_limit = 128M      ; Maximum amount of memory a script may consumeerror_reporting  =  E_ALL & ~E_NOTICEdisplay_errors = Offdisplay_startup_errors = Offlog_errors = Offlog_errors_max_len = 1024ignore_repeated_errors = Offignore_repeated_source = Offreport_memleaks = Ontrack_errors = Offvariables_order = "EGPCS"register_globals = offregister_argc_argv = Ongpc_order = "GPC"magic_quotes_gpc = Onmagic_quotes_runtime = Off    magic_quotes_sybase = Offauto_prepend_file =auto_append_file =default_mimetype = "text/html"doc_root =user_dir =include_path = ".:/etc/config/php"extension_dir = /usr/local/apache/modulesenable_dl = Onpost_max_size = 2047Mfile_uploads = Onupload_max_filesize = 2047Mallow_url_fopen = Ondefault_socket_timeout = 300upload_tmp_dir = /share/Webextension = sqlite.so[Syslog]define_syslog_variables  = Off[mail function]SMTP = localhostsmtp_port = 25sendmail_path = /usr/sbin/sendmail -t -i[Java][Date]date.timezone = "Asia/Taipei"[SQL]sql.safe_mode = Off[ODBC]odbc.allow_persistent = Onodbc.check_persistent = Onodbc.max_persistent = -1odbc.max_links = -1  odbc.defaultlrl = 4096  odbc.defaultbinmode = 1  [MySQL]mysql.allow_persistent = Onmysql.max_persistent = -1mysql.max_links = -1mysql.default_port =mysql.default_socket = "/tmp/mysql.sock"mysql.default_host =mysql.default_user =mysql.default_password =mysql.connect_timeout = 60mysql.trace_mode = Off[mSQL]msql.allow_persistent = Onmsql.max_persistent = -1msql.max_links = -1[PostgresSQL]pgsql.allow_persistent = Onpgsql.auto_reset_persistent = Off pgsql.max_persistent = -1pgsql.max_links = -1pgsql.ignore_notice = 0pgsql.log_notice = 0[Sybase]sybase.allow_persistent = Onsybase.max_persistent = -1sybase.max_links = -1sybase.min_error_severity = 10sybase.min_message_severity = 10sybase.compatability_mode = Off[Sybase-CT]sybct.allow_persistent = Onsybct.max_persistent = -1sybct.max_links = -1sybct.min_server_severity = 10sybct.min_client_severity = 10[dbx]dbx.colnames_case = "unchanged"[bcmath]bcmath.scale = 0[browscap][Informix]ifx.default_host =ifx.default_user =ifx.default_password =ifx.allow_persistent = Onifx.max_persistent = -1ifx.max_links = -1ifx.textasvarchar = 0ifx.byteasvarchar = 0ifx.charasvarchar = 0ifx.blobinfile = 0ifx.nullformat = 0[Session]session.save_handler = filessession.use_cookies = 1session.name = PHPSESSIDsession.auto_start = 0session.cookie_lifetime = 0session.cookie_path = /session.cookie_domain =session.serialize_handler = phpsession.gc_probability = 1session.gc_divisor     = 100session.gc_maxlifetime = 1440session.bug_compat_42 = 1session.bug_compat_warn = 1session.referer_check =session.entropy_length = 0session.entropy_file =session.cache_limiter = nocachesession.cache_expire = 180session.use_trans_sid = 0url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="session.save_path = /share/CACHEDEV1_DATA/.php_session[MSSQL]mssql.allow_persistent = Onmssql.max_persistent = -1mssql.max_links = -1mssql.min_error_severity = 10mssql.min_message_severity = 10mssql.compatability_mode = Offmssql.secure_connection = Off[Assertion][Ingres II]ingres.allow_persistent = Oningres.max_persistent = -1ingres.max_links = -1ingres.default_database =ingres.default_user =ingres.default_password =[Verisign Payflow Pro]pfpro.defaulthost = "test-payflow.verisign.com"pfpro.defaultport = 443pfpro.defaulttimeout = 30[com][Printer][mbstring][FrontBase][exif][Crack]; End:


    Vielleicht findet je jemand den Grund warum keine Nachrichten von diesem Skript gesendet werden, es aber mit dem testskript funktioniert.
    Um Fehler anzuzeigen habe ich "Display error" und "log error" auf on gesetzt. Ich bekomme aber keine Fehlermeldungen.
    Ich gehe davon aus das ich "log error" bei den systemverbindungsprotokollen finde.
    Ich habe bei der Heizung einen Fehler verursacht ( Tür auf ) und dann die Seite vom PC aus geöffnet. Ich bekomme auf der Seite zwar die Störung, aber es wird kein Programmierfehler angezeigt. Und auch keine Mail gesendet.


    --- ModEdit ---


    Habe einen Verdacht!


    kann es sein das es an einem Falschen Port liegt?
    auszug php.ini


    Code
    [mail function]
    SMTP = localhost
    smtp_port = 25
    sendmail_path = /usr/sbin/sendmail -t -i


    Der smtp port bei gmx ist aber 465?!?
    Sollte ich nur den Port Ändern oder auch bei SMTP auch auf mail.gmx.net ändern? Wenn ja, passt dann der "sendmail_path"????

    Einmal editiert, zuletzt von TobiasK () aus folgendem Grund: Doppelte Beiträge vermeiden, siehe Forenregeln! Bitte den "Ändern"-Button verwenden!

  • Hallo,


    Da das Testskript ja funktioniert hat, gehe ich davon aus, dass der Port richtig ist.
    Es wird ja sowieso (wenn ich es richtig verstanden habe) eine Email an den lokalen Email-Server (localhost:25) gesendet. Und dieser sendet dann mit dem Skript sendmail die Email raus. Der "richtige" Versender ist ja von dir ueber die Webadministrationsseite korrekt eingerichtet.


    Ich kann dir bezueglich der php.ini auch sagen, weshalb hier keine Meldungen anzegeigt werden. Groessere Fehler sind in dem Skript nicht drin, da es ja schon laeuft.
    Um alle Fehler anzuzeigen musst du die entsprechende Zeile fuer error_reporting wiefolgt abaendern

    Code
    error_reporting  =  E_ALL


    Derzeit wird gesagt, er solle alle Fehler reporten, ausser den Notices. Aber grade auf die koennte es hier moeglicherweise ankommen.

  • Dann hoffe ich mal, dass der zumindest irgendwelche hilfreichen Meldungen ausspuckt, denn langsam gehen mir die Ideen aus.

  • Hallo.
    Bin gerade nicht Zuhause. Google gerade herum.
    Ich las das möglichweise das mail versendet wird, aber von gmx nicht angenommen wird da der Absender nicht passt.
    Dort half man sich in der php.ini mit dem eintrag 'sendmail_from = meinemail.gmx.at'
    was haltest du davon?

  • Hast du für das PHP-Script die selbe E.Mail adresse verwendet, wie für die Systembenachrichtigung vom NAS ?
    Wenn ich aus dem Script die Heizungsabfrage entferne, funktioniert es bei mir auch mit den Standardsettings der php.ini

  • Zitat von "Zweckmair_B"

    Dort half man sich in der php.ini mit dem eintrag 'sendmail_from = meinemail.gmx.at'


    Ich denke, das bringt nichts, da ja sowieso die Mail nochmal uebereinen (wie es mir scheint) virtuellen EMail-Server des NAS geht.
    Zumindest habe ich es nicht geschafft, den SendMail-Skript aus der php.ini zu entfernen. Nach jedem Speichern, wurde er wieder eingefuegt, andere Einstellungen wurden aber uebernommen.

  • Hallo.
    Morgen werde ich wie gesagt das mit den Fehlermeldungen probieren.
    Ein paar Fragen hätte ich da noch:
    *Du hast was vom internen virtuellen mailserver gesprochen. Also ich habe eine Menge Arten von Server vorinstalliert, aber ein Mailserver ist nicht dabei. Muß ich den Nachinstallieren? (qpkg xmail oder xeams)
    *was bewirkt die Funktion "Register globals" beim Webserver? ist bei mir abgeschaltet

  • Hallo,


    Ich gehe davon aus, dass da so ein virtuelles Server laueft, der hinter dem Skript in der php.ini liegt. Falls das irgendwie anders ist, moege man mich bitte korrigieren.


    Die "Register Globals" wuerde ich auch weiterhin ausgeschaltet lassen. Daran wird es nicht liegen, denn bei mir sind sie auch deaktiviert.
    Diese scheinen nur einen Sicherheitsaspekt bezueglich Variablendeklaration zu haben. Und derr sichere Modus ist, wenn diese deaktiviert sind.