Beiträge von Cyne

    Für Tipps bin ich immer dankbar. Sonst bräuchte ich ja nicht in einem Forum um Hilfe bitten... Tut mir leid wenn das anders rüber kam. Mir ist nur etwas sauer aufgestoßen was mir "doch wohl klar" sein sollte, weil es eben nicht selbstverständlich ist dass ein Anfänger jeden (einfachen) Zusammenhang versteht.

    Um aber deine Frage zu beantworten, ich habe natürlich angefangen mich mit Affenformularen zu befassen. Ich wollte auch nicht "rummeckern" sondern einfach nur sagen dass ich halt noch am Anfang stehe.


    Du hast z.B. gesagt dass du bezweifelst, dass PHP für meinen Fehler verantwortlich ist. Woran könnte es sonst liegen?

    JS ist zum Testen disabled und der Fehler tritt erst nach Klick auf 'submit' auf. Daher meine Vermutung dass es am PHP liegt.

    Ich hab mich in den letzten Tagen stundenlang mit meinem Formular, möglichen Fehlerquellen und Debugging beschäftigt. Das muss ich vor dir aber nicht rechtfertigen. Ich frage hier um Hilfe. Wenn ich mir deiner Meinung nach nicht genug Mühe mache, brauchst du dich nicht mit mir befassen.

    Es ist doch wohl klar, dass PHP Warnings raushaut, wenn du auf Variablen zugreifst, die nicht definiert sind.

    Ja, das ist klar. Mir wurde aber gesagt dass es Quatsch ist diese Variablen im HTML Dokument zu definieren. Zumindest habe ich das so verstanden. Mein Skript läuft ja erst nach Klick auf Submit. Vorher kann das HTML Dokument also nicht wissen was mit $titles etc gemeint sein soll, es sei denn ich definiere das...


    Das löst leider alles nicht mein Problem.

    Welche Informationen braucht ihr von mir, oder was kann ich noch testen? Ich stehe mit PHP noch am Anfang, also ist es höchstwahrscheinlich dass ich Dinge nicht sehe, miss-- oder sogar falsch verstehe. Mir ist also einiges was anderen "doch wohl klar" ist eben nicht klar, wie das so mit allem Anfang ist.

    Nach dem Testen kann ich sagen dass sowohl

    Code
    1. if (!isset($titlesError)) {$titlesError = ''; }
    2. if (!isset($usrnameError)) {$usrnameError = ''; }
    3. if (!isset($emailError)) {$emailError = ''; }
    4. if (!isset($usrmsgError)) {$usrmsgError = ''; }
    5. if (!isset($titles)) {$titles = ''; }
    6. if (!isset($usrname)) {$usrname = ''; }
    7. if (!isset($email)) {$email = ''; }
    8. if (!isset($usrmsg)) {$usrmsg = ''; }

    als auch

    Code
    1. $titlesError = $usrnameError = $emailError = $usrmsgError = '';
    2. $titles = $usrname = $email = $usrmsg = '';

    den ungewollten Leerraum über dem Header erzeugt. Danke trotzdem für die Kurzversion.


    Ich hätte vielleicht auch noch dazu sagen sollen dass der Whitespace erst nach Klick auf 'submit' erscheint. Vorher wird die Seite normal angezeigt.


    Entferne ich die Definitionen der Variablen aus kontakt.php werden mir Fehler angezeigt:

    Notice: Undefined variable: titlesError in C:\xampp\htdocs\Projektname\kontakt.php on line 58

    Jeweils in den Lines wo ich PHP eingefügt habe im HTML Code.


    Wie validiere ich eine Email Adresse denn dann am Besten daraufhin dass sie ein @ und .com, .de, usw hat?



    EDIT: Was mir auch noch aufgefallen ist, wenn man auf Senden klickt, wird als Dateipfad localhost/Projektname/formvalidation.php angezeigt statt localhost/Projektname/kontakt.php

    Sollte es nicht kontakt.php bleiben solange es Fehler gibt? Weil:

    Code
    1. if (($titlesError !='') || ($usrnameError !='') || ($emailError !='') || ($usrmsgError !='')) {
    2. include('kontakt.php');
    3. exit();

    Hoffe es ist ok dass ich hier einfach nochmal poste. Grund ist dass ich viel rumprobiert habe.


    Ich habe oberhalb meines <DOCTYPE> Tags einen PHP Teil um Variablen zu definieren, die im HTML Document vorkommen um Fehlermeldungen bzw. User Input auszugeben. Bin mir mittlerweile also relativ sicher dass es dieser Teil ist der den Whitespace erzeugt und nicht das Umbenennen von *.html zu *.php ansich.

    Ich habe bereits versucht den PHP Teil an verschiedene Stellen außerhalb und innerhalb des <DOCTYPE> zu packen, aber der weiße Rand verschwindet nicht.



    Hier mein Code fürs Kontaktformular:


    PHP:

    Ich hab Webspace. Es fällt mir nur immer schwer halbfertige Sachen zu veröffentlichen. Grade was das Formular angeht bin ich mich auch noch in das ganze Security Zeug am Einarbeiten.


    Ich könnte die entsprechenden Code Teile aber hier posten, wenn auch das weiterhelfen würde.


    Die PHP Fehlermeldungen werden bisher zum Testen via 'echo' auf validate-form.php ausgegeben, wohin die form action verweist wenn submit geklickt wird. Auf kontakt.html bzw kontakt.php gibts bisher noch keine php tags (die muss ich noch einbauen).



    Edit: Peinlich, aber es lag tatsächlich einfach an einem Syntaxfehler den ich ewig nicht gefunden hab, trotz Suchen... :pinch: Jetzt wird kontakt.php richtig angezeigt.


    Dafür habe ich jetzt das Problem dass anstatt POST, GET gesendet wird. Offene Tags kann ich aber keine finden. Ist wahrscheinlich besser dafür ein neues Thema zu machen und dieses zu beenden, falls ich den Fehler nicht finde?

    Ich bin mir ehrlich gesagt nicht sicher ob meine Frage zu PHP, HTML, CSS oder JavaScript gehört, weil es mehr oder minder um alles geht.


    Genauer gesagt habe ich ein Kontaktformular für eine Website, dass (bisher) als kontakt.html gespeichert ist. Styles wurden mit CSS erstellt. Die Seite hat eine Hauptnavigation, die mittels JavaScript Aussehen und Verhalten wechselt (je nach Größe des Screens bzw. onScroll). Eine Formularvalidierung mit JavaScript habe ich bereits eingerichtet. Jetzt arbeite ich an der serverseitigen mit PHP, soweit so gut.

    Das PHP Script fragt verschiedene Kriterien ab, entfernt Script-Tags usw., und wenn alles ok ist wird das Formular abgeschickt. Wenn nicht, sollen Fehlermeldungen direkt im Formular ausgegeben werden. Bereits eingegebene Daten sollen dabei nicht verloren gehen. Das müsste ich auch so umsetzen können.


    Mein Problem ist folgendes:

    Damit der Parser meine ins Formular eingebetteten PHP-Tags erkennt, muss aus kontakt.html ja kontakt.php werden. Aber wenn ich das mache, funktionieren meine JS Styles für den Header nicht mehr richtig. Außerdem wird über dem Header ein weißer Rand angezeigt, d.h. der Header ist um 20 oder so Pixel nach unten verschoben.


    Die Formularvalidierung mit JS funktioniert weiterhin. JS Fehler in der Konsole vom Browser bekomme ich keine. Getestet wird die Site mit XAMPP.


    Ich weiß, das ist keine allzu genaue Fehlerbeschreibung. Aber es erscheint mir wenig sinnvoll einfach tonnenweise Code zu posten. Vielleicht hat jemand eine Idee woran sowas grundsätzlich liegen kann. Ich bin mich grad erst in PHP am einarbeiten und dem entsprechend begrenzt ist mein Wissen.


    Beste Grüße,

    Cyne

    Hallo zusammen,


    ich bin aufgrund meiner Frage auf dieses Forum gestoßen und, wie ihr seht, ganz neu hier. JavaScript und jQuery sind mir auch noch relativ neu (was man sicher an meinem Code sieht :pinch:). Aber zu meiner Frage:


    Ich habe eine horizontale Hauptnavigation auf meiner Website, deren Aussehen und Verhalten sich je nach Screen-Größe und beim Runterscrollen ändert. Die Navigationsleiste hat die CSS Position: fixed. On scroll bzw. resize passen sich die Größe meines Logos und Hintergrundfarbe der Navigation an. Ab einer bestimmten Größe gibts dann keine horizontale Reihe von Links mehr, sondern ein Burger-Icon (mobile menu). Hier liegt mein Problem: manchmal öffnet sich, wenn man dieses anklickt, wie geplant das Dropdown Menü mit den Links und manchmal nicht.


    Getestet wann der Fehler auftritt hab ich durch hoch- und runter scrollen, verschiedene Screen-Größen, reload, resize, console.log verschiedener Werte... aber der Fehler erscheint mir relativ zufällig. Ich finde jedenfalls kein Muster. Manchmal lässt sich das Menü wunderbar anklicken, manchmal geht es nicht, dann scrollt man wieder und es geht, manchmal geht es nach dem Scrollen nicht, etc.

    Vielleicht sieht jemand von euch mehr. (Da mir das alles noch relativ neu ist bin ich auch für generelle Tipps zu meinem Code dankbar. Könnte man sicher besser machen.)


    Die onClick Funktion, um die es geht, ist diese:

    Code
    1. $(".burger-nav").on("click", function() {
    2.  $("#main-nav ul").toggleClass("open");
    3. });


    Sie befindet sich in dieser Funktion, die durch die Events document.ready, resize und on.scroll feuern soll:


    Danke schonmal fürs Lesen bis hierher. Bin für Tipps echt dankbar. :)