Beiträge von Elly

    Ich habe kein Problem damit, den Code zu posten. Dachte nur, du hättest den Anhang nicht gesehen.


    Bin noch unterwegs, poste ich nachher.

    Den Code habe ich im ersten Post angehängt, beide Scripts.


    Den Link habe ich mir schon angesehen, aber ich komm damit nicht wirklich klar, weil ich ja wieder ganz eigene Bedürfnisse hab, damit das so funktioniert wie beim anderen Script.

    Danke. Das habe ich tatsächlich nach dem Post noch gelesen und ausgebessert, aber nicht mehr mit hochgeladen.

    Allerdings weiß ich nicht, ob bei use der Pfad stimmt. Mein Ordner heißt jedenfalls phpmailer und darin liegt dann auch src. Inwieweit das für use relevant ist, weiß ich nicht.

    Beim ganzen Rest denk ich mir echt nur Hilfeeee!

    Aber wenn der phpmailer Standard ist heute, dann sollte das hier für die meisten kein Problem sein. Ich hoffe zumindest, wir kriegen das hin. Klar könnte ich auf ein Formular verzichten, aber ich will ja auch noch was verstehen und weiterlernen.

    Hallo an die Profis hier...


    Ich verzweifle tatsächlich gerade am phpMailer. Meine (wenn überhaupt) Anfängerkenntnisse in PHP reichen hier bei weitem nicht aus. Ich versuche gerade, mein funktionierendes mail-Script in ein phpMailer-Script zu verwandeln, da das andere bei dem neuen Hoster nicht mehr funktioniert.

    Zur Vorgeschichte: hier und das wurde mir als Hilfe angeboten, aber ich werde auch da nicht schlau draus.


    Ich habe jetzt das Original-Beispiel von GitHub genommen, bei mir einfügt, die SMTP-Daten angepasst (ich weiß nicht mal, ob die richtig sind) und dann entsprechende Schnipsel aus meinem ursprünglichen Mail-Script genommen.


    Hier das Original auf dem alten Server und neuen Server. Unten als Datei angehängt.

    Und hier das neue Script auf dem neuen Server.


    Nun zu meinen Problemen.

    1. Es beginnt schon beim Aufruf der Seite mit dem Fehler in Zeile 9. Ich habe diesen vendor/autoloader.php nicht. Der ist ja gar nicht in der ZIP-Datei enthalten. Wo soll ich denn den bitte hernehmen und wofür ist der gut?
    2. Ich möchte natürlich meine Funktionen mitübernehmen. Also der Honeypot kommt aus meinem alten Script, die Variable $message_sent, die if-else-Clause im HTML-Code und die $invalid_classname. Die will ich natürlich wieder haben und habe sie vorerst mal dorthin gesetzt, wo ich vermute, dass sie passen müsste.
    3. Ich verstehe so gut wie nichts von dem Code des phpMailers. Mein altes Script habe ich verstanden. Das Problem ist halt dann, dass ich nicht weiß, was ich wo ändern muss, damit ich die Funktionen, die ich brauche, wieder habe.
    4. Server Settings: Hier habe ich mal reingeschrieben, was ich vom Hoster habe. Ob das mit dem TLS stimmt, weiß ich nicht, das habe ich so stehen lassen. Host, Username/PW und Port habe ich geändert. Das PW habe ich natürlich für den Upload hier unkenntlich gemacht.
    5. Recipients: setFrom soll wohl die Adresse sein, die mir als Empfänger in den Mails angezeigt wird. Der User gibt einen Namen und eine E-Mail-Adresse ein und das soll mir auch angezeigt werden. Ich sehe in den Beispielen aber immer, dass man sich quasi selbst ein E-Mail schickt. Wieso das denn? Das Mail soll doch vom der Person kommen, die das Formular auf der Website ausfüllt.
    6. Recipients: addAddress sind dann die Mailadressen des Empfängers - da habe ich 3 angegeben. addReplyTo - die Antwort soll ja wieder an den User gehen, also dasselbe wie in setFrom.
    7. Attachments brauche ich nicht, habe ich auskommentiert.
    8. Content: Mein nächstes Problem. Ich brauche kein HTML, denn der User wird auf der Website für seinen Text kein HTML verwenden und sonst würden mir ja keine Zeilenumbrüche etc angezeigt in dem Text, den ich dann als Mail empfange. Von daher müsste ich da false schreiben? Was mache ich dann mit Body und AltBody, wenn ich ohnehin kein HTML vom User haben möchte? Im alten Script sah das so aus: $body = $name . " hat dir eine Nachricht geschickt.\n\n\n" .$message; Diese Variablen habe ich im phpMailer noch nicht definiert (wo? nach try vor den Server Settings?). Im phpMailer müsste das dann so ausschauen, bin ich da richtig? $mail->Body = $_POST['name'] . " hat dir eine Nachricht geschickt.\n\n\n" .$_POST['message']
    9. Anstatt Message has been sent bzw. not been sent hätte ich gern dieselben Ausgaben wir im anderen Script. Das echo könnte dann raus, da sollte eig mein if-else greifen.
    10. Was die exceptions bzw. $e macht, ist mir auch noch nicht klar. Muss wohl irgendwas mit den ErrorInfos zu tun haben?



    Fragen über Fragen. Es tut mir echt leid, aber ich verzweifle hier. Genau das ist auch der Grund, warum ich mich da vor Wochen nicht rangetraut habe. Ich habe gewusst, ich versteh's nicht. Mit der normalen mail-Funktion und entsprechenden Tutorials komme ich aber klar. So ist dann mein Script entstanden. Nur wie bastle ich das jetzt in einen phpMailer um, dass der ganze Spaß auch auf dem neuen Server läuft? Genau damit habe ich nämlich nicht gerechnet - dass es bei all-inkl läuft und bei Hosttech nicht.


    Seid mir nicht böse, aber ich brauche wirklich eure Hilfe und ich hoffe, dass wir das gemeinsam irgendwie hinkriegen.


    Danke schon mal!


    LG

    Elly

    Antwort vom Hoster, ich muss wohl zwingend SMTP und den PHPMailer nutzen.

    Ich finde den ja schon irgendwie kompliziert. Mit dem Grundprinzip komm ich klar, aber ich fürchte, ich brauche Hilfe beim Umbau meines Formulars - dass dann auch die if und else Abschnitte richtig ausgegeben werden.


    Was ich auch nicht will ist quasi mor selber ein Mail zu schicken. Ich möchte schon, dass bei sent from die Mailadresse und ggf der Name des im Formular angegebenen Absenders stehen.


    HTML kann und will ich auch nicht verwenden, denn der Besucher wird kaum HTML-Code beim Ausfüllen benutzen und so würden dann sämtliche Zeilenumbrüche ignoriert werden.


    Ich werde in den nächsten Tagen mal versuchen das umzucoden und hoffe, ihr könnt mir dann weiterhelfen.

    Ihr könnt mich gern steinigen, aber ich habe mit der mail-Funktion nach diversen Tutorials mir ein Kontaktformular zusammengebaut.

    Auf meinem Testserver von all-inkl hat das auch alles bestens funktioniert. Die Nachrichten kamen bei diversen Mailadressen an.

    Nun habe ich die Website auf den richtigen Server geladen, von hosttech. Dort kommt allerdings keine einzige Nachricht an, bei sämtlichen unterschiedlichen getesteten Mailadressen - auch nicht bei der servereigenen.

    Ob das nur an den RFCs liegt wage ich zu bezweifeln, denn so falsch kann das Formular ja nicht sein, sonst würde es ja auf all-inkl auch Probleme machen.


    Ich hänge es gern mal an.


    Das führt nur dazu, dass Deppen, wie ich, den armen Sempervivum belästigen, damit er sich nicht langweilt.


    Ich verspreche Dir, dass ich mich in naher Zeit endlich einmal mit scss befasse und lerne das Zeug zu compilieren obwohl ich da nicht ganz begreife, was das bringen soll.... außer, dass es wahrscheinlich schwieriger ist einen compilierten Code abzuändern.

    Haha, das hast du toll geschrieben. Zu diesen Deppen gehör ich auch dazu, aber nach ein bisschen Pause bin ich auch wieder zurück. ;)

    Hab mir mal den Thread durchgelesen, vl kann ich zum Thema SCSS was Vernünftiges beitragen.

    Man findet ja viele Tutorials, wie man das richtig kompiliert und watchen kann etc. Tut auch alles seinen Job, nur meistens muss man da selbst Hand anlegen. Ich hab herausgefunden, dass das mit Visual Studio Code und einer entsprechenden Erweiterung doch wie am Schnürchen läuft - praktisch von selbst. Watchen kann man dort auch einstellen. Dh ändern musst du dan nur deine SCSS-Datei und sie wird immer automatisch in CSS kompiliert.

    Halli hallo,


    ich hatte ein Problem, das ich zwar schon gelöst habe, aber nicht ganz verstehe.

    Hier mal die Seite, von der ich rede. Und einen Screenshot gibt's auch noch dazu.


    Ich habe in meiner main.css festgelegt, dass für alles * Grau als Schriftfarbe gilt (--var-nf-grey).

    In der Galerie habe ich Fancybox 3 drin, bei der man dann die Icons und den Bildzähler nicht richtig sieht, weil der dann diese Farbe übernimmt.

    Ich hab's mir dann einfach gemacht - anstatt rauszufinden, welche Klassen der Fancybox ich genau ansprechen muss, habe ich in der fancybox_adds.css für alles Schriftfarbe weiß eingestellt.

    Das hat zur Folge, dass der Menübutton (der bei kleineren Browsergrößen erscheint), auch weiß wurde. Interessanterweise aber nur der, beim Text hat sich nichts verändert.

    Dieser Button ist in der nav.css mit nav .icon angegeben. Ich dachte, ok, dann mach ich ein internes Stylesheet extra für den und gib ihm nochmal die graue Farbe. Da dieses Stylesheet ja dann als letztes eingelesen wird, da unter den anderen .css-Dateien eingebunden, müsste das ja klappen. Wie ihr im Screenshot aber sehen könnt, wird dieser Klasse aber die Farbe wieder gestrichen.

    Es funktioniert nur, wenn ich das span mit der ID oder der Klasse .fa ganz direkt anspreche (siehe Screenshot in Rot).


    Offensichtlich wird das * von der Fancybox (da nach main.css drin) an das span weitervererbt und nicht das, was ich für nav .icon deklariert habe.
    Warum?

    link ist nicht dazu gedacht, Seiten oder Videos etc zu verlinken, sondern um CSS einzubinden.

    Für Weblinks brauchst du a. Schau mal hier.

    Wenn du ein Video nur verlinken möchtest, kannst du das ebenfalls so machen. Ansonsten kann man Videos auch direkt einbinden, das geht dann mit video.

    So, da bin ich wieder. Hab mir nun auch ein paar Youtube-Tutorials angesehen - natürlich keine alten, sondern aus den letzten 1-2 Jahren. Die sind auch total einfach und verständlich, das könnt ich glatt selber.

    Was ich aber nicht verstehe - eben weil ich's einfach nicht besser weiß - wenn die so einfach sind, gibt's da Nachteile in Sachen Sicherheit oder so? Es gibt ja nicht umsonst Formulare, wo jede Menge komplexer Code dahintersteckt.

    Und vielleicht kann mir auch jmd sagen, was an meinem alten Formular falsch ist. Einfach nur, weil das nicht PHP7 ist oder gibt's da noch andere Mängel? Mal abgesehen davon, dass da kein Spamschutz drin war.


    Dann hab ich noch eine allgemeine Formular-Frage, die eher HTML betrifft. Man sollte ja zwecks Barrierefreiheit immer einen Label-Tag angeben. Ich will aber kein Label dastehen haben, finde es nur mit Platzhalter einfach auch schöner. Wenn ich das über CSS mit display:none formatiere, ist es ja im HTML vorhanden. Reicht das für Screenreader öÄ aus oder muss das Label tatsächlich sichtbar vorhanden sein? Man sieht es ja wirklich oft nur mit Platzhaltern.


    Danke.

    Zeit ist immer die gleiche, Ort auch. Von daher erübrigen sich zusätzliche Infos. Event in dem Sinn ist auch das falsche Wort dafür.


    Es ist eh fertig online jetzt, inkl. PDF. Da hat sich die DL ganz gut angeboten.

    Mit mehr Infos bräuchte man wohl eine Tabelle. Aber da sich die klassische table nicht responsive gestalten lässt, wäre das dann wohl ein Grid.

    Mit mehreren Infos wäre es mMn eh schwierig, das optisch ansprechend responsive zu gestalten. Man könnte dann mit display none und einer zweiten Version, die dann erscheint, arbeiten.

    Meinst du mich oder den Shop? Wobei, eine dl würde für uns beide passen.


    Ich hab jetzt zum Probieren mal ein bisschen mit table und grid gespielt.

    Optisch stell ich mir das so vor wie's jetzt aussieht und dann muss ich das noch responsive machen. Das geht ja bei beiden mit Media Queries gut, es müssen ja auch die Zellen dann umformatiert werden. Das Datum wird dann hellgrün und der Inhalt weiß. Als Tabellenüberschrift kommt dann nur noch Programm.

    Table und Grid.


    Die DIVs kann man ja dann immer noch in eine DL ändern, dafür würde sich dann wohl das Grid besser eignen. Die table-rows sind wieder zum Formatieren (even, odd) sehr praktisch.

    Ah, das ist interessant! Wieder was gelernt. Wusste nicht, dass das so auch gehen könnte. Bis jetzt kenn ich Flexbox mit unterschiedlichen Elementen. Aber LI ist ja ein Element, wobei hier wohl das :before als eigenes Element angesehen wird.

    Man lernt eben nur durch Ausprobieren und Fragen...und die Fuchsereien. ;)


    Noch was.

    Dass die ganze Liste verschwindet, liegt tatsächlich an der Nav. Offensichtlich, nur hab ich das gestern im müden Zustand nicht mehr gerafft.

    Das Komische daran ist aber, dass in der nav.css wirlich alle ul li  als nav ul li definiert sind und in der main.css .content ul li. Dennoch tut der Browser so als wäre da nur ein allgemeines ul livorhanden, das für alle gilt.

    Das ist mir schon aufgefallen, als ich die Sticky-Variante der Navigation erstellt hab - ich hab überall erstmal zusätzlich nav.sticky hinzufügen müssen. Obwohl ja, wenn dann durch JS im HTML class="sticky" hinzugefügt wurde, es ja immer noch eine nav ist. Meiner Logik nach müsste doch ein CSS-Style, der für NAV definiert ist, auch für alle seine Unterklassen (nämlich nav.sticky) zutreffen, wenn in .sticky nichts anderes definiert wurde.

    Warum?

    nav ul sind ja alle UL, die sich innerhal von NAV befinden. nav>ul wären alle UL, die NAV als direktes Elternelement haben.


    Nachtrag: Ein einziges ul in der nav.css hatte kein nav ul

    Code
    .show + a, nav ul{
        display: none;
      }



    Die Konsole behautpet auch, ich hätte auf Zeile 182 in der main.css folgendes stehen:


    Das stimmt aber überhaupt nicht. Tatsächlich hab ich hier nur

    Code
    .content li {
        display:flex;
        gap:1rem;
        margin-left:3rem;
    }


    Den Rest hier habe ich in der .card stehen und meine Liste steht ja nicht einmal innerhalb einer Card.


    Warum behauptet der Browser dann so komische Sachen?

    Wenn der Text nicht in einem DIV stehen soll, dann vl in einem Article?


    Ich war eben bis jetzt immer der Ansicht, Box und Grid geht nur mit Divs. Dass dem nicht so ist, hab ich erst gestern gecheckt (siehe Masonry). Dh UL kann eine Flexbox sein. Aber dann bräuchte man immer noch 2 Sachen. Die LI und die Punkte extra.

    Darf ich mich hier mal fragens einklinken?

    Früher, vor responsive Webdesign, hat man ja mit Tabellen gelayoutet und daher Tabellen für alles Mögliche und Unmögliche verwendet.

    Heute muss alles semantisch korrekt ausgezeichnet sein.


    Eine Tabelle enthält also tatsächlich njr Tabellendaten. Was SWSlate hier hat, ist in meinen Augen schon eine Tabelle im klassischen Sinne. Ich würde das sonst auch zB in Excel oder schlimmstenfalls einer Word-Tabelle darstellen. Daher finde ich HTML table hier durchaus angemessen.


    Meine Frage nun. Es gibt ja auch noch display:table oder die Möglichkeit mit einem Grid. Wenn man jetzt zB (wie ich später) eine Tabelle erstellen will, in der ein Datum und ein Event steht, wäre das ja im Grunde auch eine table. Aber angesichts des RWD würde ich da dann ws ein Grid wählen, da sonst Datum und Event immer nebeneinander stünden und sich das dann auf Handys nicht mehr ausgeht.


    Bin ich da auf dem richtigen Weg?

    Mir ist später noch eingefallen, dass das womöglich an der Navigation liegt. Da werd ich mal später mit einer Klasse nachhelfen.



    Was meintest du dann? Solang ich nur ein einfaches DIV hab (content), brauch ich doch eig weder eine Flexbox noch ein Grid. Mein DIV ist daher ein normales Blockelement. Das sollte für einen Absatz und eine Liste doch eigentlich reichen.