Beiträge von Hecke29

    Sende mal eine E-Mail hier hin https://www.mail-tester.com/ und schau dir dann das Ergebnis an. Dabei wird deine E-Mail gemäß häufiger Kriterien zur Spamerkennung behandelt.


    Die Grundlegende Frage (und das bekommt man mit mail() in der Regel eben nicht raus), ist nämlich, ob dein Server / Webhosting gar nicht erst versucht zuzustellen, oder ob der Zielserver die Mail ablehnt. Das bekommt man in der Regel nur bei Verwendung von SMTP raus.


    In den letzte Tagen haben gefühlt aber häufiger Leute über ein solches Verhalten hier geklagt.

    Das ist ganz, ganz schrecklicher Code, aber nichtsdestotrotz:

    • Per include, sagst du im Gegensatz zu require, dass es ok ist, wenn die Datei nicht gefunden wird, das könnte man also ändern (dann bricht das Script wenigstens ab.
    • schreib mal bitte ein var_dump(is_file('menu_oben.php'), is_file(__DIR__ . '/menu_oben.php')); in die Datei
    • Setze ein error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); an den Anfang des Codes

    und poste dann den Output.

    vmk ich weiß und wie geht das?

    Code
    nslookup myip.opendns.com

    liefert ein NXDOMAIN,

    hingegen

    Code
    nslookup myip.opendns.com resolver1.opendns.com

    liefert die IP

    wie kann man sowas implementieren?

    naja myip.opendns.com hat halt keinen echten DNS-Eintrag (deshalb NXDOMAIN, wenn du einen anderen DNS-Server fragst), aber die DNS-Server von opendns selbst beantworten die Anfragen halt...

    Hay,

    Ich weiß nicht, wie es im Webhosting mit chroot-Umgebung ausschaut. Aber selbst wenn es außerhalb des Sichtbereiches liegt, könnte which sendmail vielleicht doch den Pfad liefern als indirekte Bestätigung?


    CU, Peter

    Wahrscheinlich, aber da mail() wie der TE sagt eh true zurück gibt, ist es auf jeden Fall nicht ein falsches oder nicht existentes Binary. mail() gibt meiner Vermutung nach true zurück, wenn der exit-Code des dahinter liegenden Befehls 0 ist. (Edit: Jupp, https://github.com/php/php-src…/ext/standard/mail.c#L413 ; zumindest soweit ich das richtig durchdrungen habe)

    Gibt es da Limits wie oft ich die Webservice API anfragen darf?

    Wäre bisher zumindest nicht bekannt. Ich vermute jedoch, dass die Aktion synchron ausgeführt wird, also erst eine Response kommt, wenn der Server tot ist. Was für ein Timeout-Interval ist denn eingestellt?

    Das ist nicht unbedingt ein Fehler. Dein Webhostingaccount (das was du siehst, wenn du dich per FTP verbindest) liegt auf dem Server irgendwo unter /var/www/vieleZahlen.hosting.netcup.de/customerGanzVieleZahlen/ . Du kannst also gar nicht wissen, ob /usr/sbin existiert oder nicht, da dein Sichtbereich auf den o.g. Pfad beschränkt ist.


    Am besten kontaktierst du mal den Support. Es handelt sich ja um ein Webhosting-Paket, da sollte die mail() Funktion schon funktionieren :)


    Hast du mal gegengecheckt, dass wirklich keine Mails verwendet werden (indem du z.B. eine Mail an eine lokale Domain/Konto sendest)?

    Wie lautetet der Return-Wert der mail()-Methode im Script? (Zu testen z.B. mit: var_dump(mail(Deine, Parameter));)

    Man kann keinen PHP-Code abhängig von JS-Variablen o.ä. direkt ausführen (man kann nur einen weiteren HTTP-Request auslösen; Stichwort: XHR).


    Der Grund ist einer der Basics der Webentwicklung und wird klar, wenn du dir folgendes Bewusst machst:


    • PHP-Code wird auf dem Server ausgeführt, generiert oft HTML-Code, der dann nach Beendigung des Scripts an den Browser des Besuchers der Webseite ("Client") geschickt wird
    • JavaScript wird ausschließlich im Browser des Besuchers ausgeführt, also clientseitig. In dem Moment ist die Serverseitige Verarbeitung also schon komplett abgeschlossen

    In deinem konkreten Fall: Paypal hat die Möglichkeit nach Beendigung des Zahlungsvorganges auf eine bestimmte Seite weiterzuleiten, die du im Formular mitgeben kannst. Diesen Link stellst du zum beispiel auf zahlungsbestaetigung.php?orderId=2345734795 (die OrderId ist eine eindeutige Zuweisungs-ID, die du für diesen Aufladeversuch vergibst) ein. Wenn der Zahlungsvorgang nun abgeschlossen ist, wird der Browser auf diese Seite weitergeleitet. Die zahlungsbestaetigung.php prüft per PHP, ob zur übergebenen OrderId die Paypal-Zahlung in korrekter Höhe durchgeführt wurde und updatest erst und nur dann das Guthaben der Person um den in deiner Datenbank zur OrderId hinterlegten Betrag. Nur so wird es gemacht und nur so ist es sicher. Auf KEINEN FALL (!) schreibst du den Betrag oder den User in die URL mit rein.


    Beachte bitte außerdem unbedingt die Hinweise von peng zum Thema SQL-Injection. Jeder Parameter, der vom Client kommt, kann von einem Angreifer manipuliert werden. Hab das immer im Kopf und validiere JEDEN Wert, der vom Client kommt.


    // Edit: Da ich nach dem Lesen des und deinen anderen Thread leider das Gefühl habe, zu wissen, wen ich hier vor mir habe (man kann es Vorurteil nennen, ich nenne es Erfahrung), werde ich dir aus Rücksicht auf die Allgemeinheit nicht mehr helfen.

    Oh ich darf meine Signatur hier im Forum nicht mehr ändern, weil man mittlerweile wohl keine Links mehr reinpacken darf und ich müsste den bestehenden rausnehmen, wenn ich sie ändern möchte.


    Ha! Outlaw!

    Ganz knapp wie es bei mir ist:

    • SSH läuft bei mir über den gpg-Agent, damit ich meinen YubiKey benutzen kann; sprich mein PrivateKey ist am Schlüsselbund -> 3 Passwort-Versuche (bzw. 6) dann für immer unbrauchbar. Dieser Key gilt als "personengebunden" ist also überall der selbe.
      • Dann habe ich Backups-Keys je Kunde auf einer verschlüsselten Festplatte zu Hause (gelten für mich also nicht als personengebunden; deshalb je Kunde unterschiedlich)
    • Bastion-Host (das man sich über einen zentralen Server auf die anderen tunnelt) - Grund dafür ist übrigens, dass ich dort ansible benutze - der personengebundene Key ist sowieso auf jedem Server
    • backups werden "gepullt"; also vom Backup-Server "abgeholt" / angefertigt

    Was ich noch möchte ist, dass meine Server auch per VPN verbunden sind (tinc hatte ich da mehrmals gelesen), damit interne Wartungsdienste wie SSH nur noch auf das entsprechende Interface lauschen und so die Angriffsfläche weiter verringert wird.

    Also ich bin auch als Einzelunternehmer hier registriert und habe dafür in das Feld Firma meine Geschäftsbezeichnung beschrieben (damals "Vorname Nachname Webentwicklung" - das steht hier auch bei netcup im CCP > Stammdaten > Adresse so drin). Denn in der Tat führen nicht-Kaufmänner (e.K.) keine Firma.

    Generell sind Geschäftsbezeichnungen auch auf Rechnungen ok. Meine heutige ist zum Beispiel ("webförsterei, Inh. Vorname Nachname") und das ist auch auf Rechnungen legitim.


    Geschäftsbezeichnungen kann man so viele gleichzeitig haben wie man will. Zum Beispiel habe ich damals für ein "Nebenprojekt" immer Rechnungen an "Vorname Nachname Filmproduktion" stellen lassen.


    Ich hab es sogar lieber, wenn auf gewerblichen Rechnung die Bezeichnung steht, damit ich das nicht mit privaten Rechnungen verwechsle o.ä.

    Erste Erkenntnisse am Tag 0:

    • Twitter hat meinen Unternehmensaccount gesperrt, weil er nicht 13 Jahre alt ist. Ich soll die E-Mail meiner Eltern angeben oder meinen Personalausweis hochladen.
    • Man kann sich bei twitter nicht abmelden, wenn man mit einem gesperrten Account angemeldet ist, da man immer zur "Ihr Account ist gesperrt"-Seite umgeleitet wird (richtig klug)
    • Hat man dann alle Cookies gelöscht um abgemeldet zu sein, kann man beim Login mit dem Hauptaccount feststellen, dass da was kaputt ist:
      Bildschirmfoto 2018-05-25 um 01.40.05.png