Beiträge von tk1234

    Ich hab's extra in verschiedenen Foren geschrieben. Den die Foren kann man untereinander nicht vergleichen.

    Wie du siehst gibt es immer welche die in mehreren Foren unterwegs sind - und egal ob vergleichbar oder nicht: es ist unverschämt einfach die gleiche Frage in mehreren Foren gleichzeitig zu stellen und damit mehrere Leute unabhängig voneinander mit dem gleichen Problem zu beschäftigen.

    Meine Seite bezieht ihr Aussehen aus einem separaten Ordner mit lauter .php Dateien welche jeweils Fragmente des Aufbaus wie navbar, sidebar, footer etc. beinhalten.

    Das wissen wir inzwischen schon - das ist aber völlig irrelevant. Wie eine Seite vom Server zusammengebaut wird, ist völlig irrelevant, wichtig ist nur dass der Inhalt beim Client (egal ob Browser, Suchmaschine oder auch SEO-Tool) ankommt - und genau das ist bei dir nicht der Fall. Es wird - beim ersten Request - eben *nicht* das ausgeliefert was du vermutest, sondern das was ich in #8 gepostet habe. Um die Meldung selbst zu sehen musst du nur Javascript abschalten und ggf. noch die Cookies löschen.

    Der Javascript ist ein Test gewesen, Google Adsense zu verknüpfen (ist gelungen).

    Das von mir gepostete Javascript hat doch nichts mit Google zu tun? Ich weiß nicht was du genau gemacht hast, auf jeden Fall musst du aber dafür sorgen dass gleich beim ersten Request die eigentliche Seite ausgeliefert wird - wie das geht, kann ich dir nicht sagen, was du da am Server gemacht/eingestellt hast, musst du schon selbst wissen.

    Die erste erstellte und vorab mit Textausschnitten befüllte Seite ist: http://[…]/workout_plans.php

    Nein, ist es nicht. Diese Seite liefert nur

    HTML
    <html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("fb4b2f15a129b426b74de1b3c408c8c7");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://arnoldkessler.gq/pages/workout_plans.php?i=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html>

    als Inhalt - und das ist eben nicht besonders viel Text. Nur wenn ein Cookie gesetzt ist wird die eigentliche Seite ausgeliefert (zumindest ist das meine Vermutung) - und da das Onlinetool keinen Cookie mitschickt bekommt es eben den Code oben vorgesetzt, welcher eben nicht viel Text enthält. Das hätte dir allerdings auch auffallen müssen, die eine Seite oben zeigt doch genau an welchen Text es auf der Seite findet (einen klassischen "der Autor ist zu doof eine Seite richtig zu machen und gibt nur eine wenig hilfreiche Fehlermeldung aus"-Text).

    Den 403er in dem anderen Tool bekommst du weil der Server bei bestimmten Browsernamen mit einem 403er antwortet - deswegen musste ich bei wget den Parameter --user-agent bemühen.

    Warum das komische Javascript ausgegeben wird, solltest du schon selbst wissen, du hast es ja so eingerichtet - wenn nicht musst du bei deinem Hoster nachfragen.

    Findest du es höflich die Frage etwas wirr in den Betreff zu quetschen und sonst nur den Quältext hin zu klatschen?

    $md5passwort = md5($Passwort);

    Nein! Passwörter dürfen niemals im Klartext gespeichert werden (md5 gilt als nicht mehr sicher und ist damit quasi wie Klartext), verwende password_hash()! Und wofür ist die sinnlose Umkopiererei der Wert aus $_POST? Du kannst $_POST auch direkt in execute verwenden.

    <label>Restaurantname:</label>
    <input class="form-control" type="text" maxlength="160" name="Restaurantname">

    Das input hat keine Beschriftung - woher soll der Browser wissen welches label zu welchem input gehört? Verwende das for-Attribut oder schließe <label> erst hinter <input>.

    Klar kann ich diese posten .

    Warum machst du es dann nicht? Und nein, das Bild ist nicht die Datenbankstruktur. Aber gut, die 0 ist evtl. nur ein konvertiertes false aber warum das nicht so funktioniert wie du willst steht in #4 …

    Geht das auch ohne das ich ein kostenpflichtiges SSL bestellen muss.

    Prinzipiell ja, Let’s Encrypt existiert. Allerdings seid ihr dafür beim falschen Provider: bei Domainfactory kannst du entweder ein SSL-Zertifikat dazu kaufen oder einen SSL-Proxy verwenden (ja, die bieten das ernsthaft als "Lösung" an!) - beides ist absolut nicht mehr zeitgemäß, ich würde euch raten den Provider zu wechseln, es gibt reichlich günstige Angebote bei denen ein Let's Encrypt-Zertifikat dabei ist.

    Wie schon geschrieben: das Script taugt nichts. Es fehlen völlig wenigstens ein Hinweis auf flex und grid fürs Layout, für Größen wird immer die falsche Einheit verwendet (kein pt/px verwenden!) und das Thema media-Querys habe ich garnicht gesehen. Welche Seite ich dir empfehlen würde siehst du schon an den Links im Text: SELFHTML.

    Dein #wrap-Element ist überflüssig, es gibt schon ein Element das alles umschließt: body. Aber nein, #wrap und footer sind nicht gleich breit: footer hat noch einen Rahmen und der kommt noch auf die Breite drauf - zumindest wenn die Eigenschaft box-sizing nicht auf border-box gesetzt wurde. Allerdings sind deine Breitenangaben ohnehin alle falsch und gehören weg: die Breiten (und auch Höhen) werden vom Browser automatisch gesetzt wenn man grid/flex verwendet. Noch ein Tipp: um Fehler in der Darstellung zu finden sind die Entwicklertools in den Browsern sehr hilfreich, erreichbar sind die idR über F12 bzw. das Kontextmenü ("untersuchen" o.ä.).

    Dein HTML-Code enthält übrigens doch einen Fehler: <h3> wird nicht geschlossen, auch im CSS sind zwei Fehler: "font-family" und "line-height" sind falsch geschrieben (einmal Bindestrich, einmal E zu wenig). Vom logischen Aufbau ist das HTML auch falsch: #wrap (wie schon geschrieben) ist überflüssig, #hauptschrift wäre gern ein <h1>, <h3> ein <h2> sowie <h5> ein <h3> - sonst fehlen ja Ebenen in der Hierarchie. das <h1> ganz unten sollte eigentlich eher ein <p> sein, eine Überschrift scheint mir das nicht zu sein. In <main> gehört imho der ganze Seiteninhalt, also auch das <article>.

    Wo hast du main und article als Text eingefügt? Da stehen nur zwei Kommentare mit <main></main> bzw. <article> </article> als Inhalt - und die werden natürlich nicht dargestellt. Aber natürlich lässt sich auch HTML-Quelltext auf einer Seite darstellen.

    btw: du weißt das der Support von Windows 7 Anfang des Jahres eingestellt wurde?

    Ich kenne Vanilla JS nicht, […]

    Dann informier dich was das ist. Tipp: das ist ganz einfach normales Javascript ohne irgendein Framework - womit sich auch die Frage erübrigt ob Vanilla JS und jQuery zusammen eingesetzt werden können.

    Was heißt den du verwendest 3 x Jquery ?

    Das heißt dass du den entscheidenden Punkt übersehen hast: zwischen »3« und »x« steht ist noch ein Punkt - womit nicht jQuery dreimal eingesetzt wird sondern eine 3er-Version davon …

    Fallback ist ja schön und gut, aber wie weit zurück sollte man dann die Browser unterstützen (alte IE Versionen, Netscape Browser, )? Wo zieht man sinnvoll einen Strich und sagt dem User dann "so leider nicht mehr"?

    Dem User sagst du überhaupt nicht "so leider nicht mehr". Der bekommt immer eine Seite auf der die benötigten Informationen zu finden sind, ob die gut aussehen oder jede Funktionalität vorhanden ist, ist dabei egal. Mit welchen alten Browsern du dir die Seiten anschaust hängt etwas von deiner Zielgruppe ab, caniuse ist evtl. auch ganz hilfreich um einschätzen zu können wie weit ein bestimmtes Feature unterstützt wird. Aber jeglicher IE sollte soweit ich weiß eigentlich auf aktuell noch unterstützten und mit aktuellen Update versehenden Windows-Versionen nicht mehr zu finden sein - die müssten (außer evtl. in Firmenumgebungen?) schon durch Edge ersetzt worden sein. Netscape kann man natürlich ignorieren, der war schon vor 10 Jahren tot.

    Wenn ich auf meinen Seiten diverse Techniken verwende, die von älteren Browsern nicht mehr unterstützt werden, wie kann ich diese Browser abfragen und auf eine Fehlerseite umleiten?

    Falsche Herangehensweise, was soll der Besucher dann auf der Fehlerseite machen? Nicht jeder hat Einfluss auf den installierten Browser. Liefere allen Browsern die gleiche Seite aus und sorge dafür dass die Inhalte grundsätzlich in allen Browsern zur Verfügung stehen - schön muss es ja nicht sein. In Browsern die die verwendeten neueren Techniken verstehen, sieht die Seite dann entsprechende besser aus bzw. bietet mehr Funktionalität, Stichwort progressive enhancement.

    Ich dachte, er "sieht" sich die URL an, die in der Browserzeile steht und "entscheidet" dann, ob er die css - Anweisung ausführt oder nicht.

    Nein. Der Selektor sucht alle Elemente mit der ID site-header die ein href-Attribut haben in dessen Wert "produkt" vorkommt - da dein div natürlich kein href-Attribut hat/haben kann, passiert natürlich nichts.

    Mit reinem CSS geht das was du vor hast nicht, da brauchst du eine Priese JS dafür (wenn in der URL der Wert "produkt" vorkommt per JS an <body> eine Klasse dranhängen und über einen entsprechenden CSS-Selektor position setzen).

    hover alleine taugt nichts, egal auf welchem Gerät: es gibt auch Personen die kein Touch-Gerät aber auch keine Maus verwenden (können), für die sind Links die nur per hover erreichbar sind evtl. unerreichbar. Für eine zugängliche Navigation braucht es etwas mehr

    Ich möchte nun daraus etwas animiertes Basteln.

    Nein, möchtest du nicht. Irgendwelches Gezappel lenkt nur vom eigentlichen Inhalt der Seite ab und wenn man mal eine der beiden Legenden braucht ist garantiert die falsche gerade da. Von der Lesbarkeit der Farben mal garnicht anzufangen …

    Achja: mit HTML/CSS alleine geht das nicht, da brauchst du JS dafür.