Beiträge von JR Cologne

    Hey,

    zu den url-parametern. Ja das weiß ich ja das durch get solche dann oben in der leiste entstehen.

    Ich meine was andres. z.b. : der link von hier: https://www.html-seminar.de/html-css-php-forum/index.php?form=PostAdd&threadID=5857

    wie bekommt man dies( das fettmarkierte) jetzt dahinter?

    Ich glaube, ich verstehe nicht, was du meinst. :D

    Man bekommt die URL-Parameter dahinter, indem man sie in einem Link angibt oder eben per Formular.


    2.

    Dann wird sozusagen in jedem verzeichniss eine startseite erstellt. (index.html/php).

    Gruß,
    Stef

    Ne, das würde ich nicht machen. Würde das eher per .htaccess und DirectoryIndex anpassen. Eine index-Datei sollte es, denke ich, nur einmal geben.

    1.ich habe viele seiten gesehen welche im Link oben in der leiste, nach dem klicken auf ein link ein ? mit text hinter dem dateiname bekommen

    Z.B. So : index.html?12de

    Für was ist das?

    Das sind URL-Parameter. Diese entstehen durch die PHP und GET.

    Wenn man z.B. folgendes Formular absendet...

    HTML
    <form action="" method="get">
      <input type="text" name="name">
      <input type="submit">
    </form>

    Dann bekommt man folgende URL:

    http://example.com/index.php?name=yourname

    Wenn man mehrere GET-Daten hat, werden die mit & verknüpft.

    http://example.com/index.php?name=yourname&email=yourname@email.com


    Zur zweiten Frage:

    Wenn keine Datei angegeben wurde, dann lädt der Server einfach die Index-Seite. Standardmäßig ist das die index.html bzw. index.php. Wenn es keine davon gibt, kann man auch einstellen, dass z.b. die Datei startseite.php dann stattdessen aufgerufen wird.

    CSS
    nav.ilToolbar .btn-primary input[value="Test starten"]

    Mit deinem bisherigen Code sprichst du alle input-Elemente mit dem value "Test starten" an, die ein Element mit der Klasse .btn-primary als Parent haben und das Element mit der Klasse .btn-primary ist in einem nav-Element mit der Klasse .ilToolbar.

    Zu deinem HTML-Code passend wäre allerdings das:

    CSS
    nav.ilToolbar input.btn-primary[value="Test starten"]

    Damit sprichst du alle input-Elemente mit der Klasse .btn-primary und dem value "Test starten" an, die innerhalb der nav mit der Klasse .ilToolbar sind.

    Bin mir nicht hundertprozentig sicher, ob das funktioniert, aber probier's einfach mal aus.

    Ich habe es einmal ausprobiert und dann abgebrochen. Der damit verbundene Zeitaufwand war im Vergleich zum Nutzen einfach zu groß.

    Ich denke, vor jedem Projekt sollte man sich ein paar Sachen notieren und ein wenig planen. Das gilt insbesondere für ganze Websites. Da solltest du dir die Zeit definitiv nehmen und alles durchplanen. Da nutzt du dann aber kein Flussdiagramm.

    Bei kleinen PHP-Anwendungen ist das aber meistens eher nicht notwendig, außer du hast etwas total komplexes im Sinn, finde ich.

    Ok, erstmal eine kleine Anmerkung zu deinem HTML. Und zwar benutzt du die <br>-Tags, um für Abstand zwischen den einzelnen Feldern zu sorgen.

    Das macht man normalerweise so nicht. Für soetwas benutzt man CSS.


    Nun, zum Problem:

    So wie du dir das vorstellst, geht das nicht so einfach. Zum Glück ist das aber kein wirkliches Problem. Du kannst die Antwort der Frage 1 nämlich einfach bei der zweiten Frage entgegennehmen und dann am besten in einer Session speichern. Cookies würde ich für den Anwendungsfall nicht nutzen.

    Warum möchtest du es denn auf der ersten Seite schon speichern?

    Das, was du da verwendest, sieht mir stark nach einem Tabellen-Layout aus und ist schon lange veraltet.

    Setze bitte auf zeitgemäße Technologien, wie z.B. HTML5 und CSS3 und verwende Tabellen nicht für Design-Zwecke.


    Edit:

    Könntest du das bitte genauer erklären? :)

    Viel zu erklären gibt es da nicht. Der Pfad zum Bild, den du mit dem src-Attribut angegeben hast, führt nicht zu deinem Bild.

    Daher kann das Bild dann nicht gefunden werden und es wird nicht angezeigt.


    Edit 2: Um sicherzustellen, dass es wirklich nur am Pfad liegt, kannst du das Bild mal ins gleiche Verzeichnis, wie die HTML-Datei, schieben und dann einfach nur den Dateinamen angeben. Wenn es dann klappt, liegt es am Pfad.

    Nabend zusammen,

    ich war gerade dabei den PHP-Code meiner Seite ein wenig zu überarbeiten. Dieser sieht aktuell so aus:

    kontakt.php

    functions.php

    Das, was mir daran noch nicht gefällt, ist die Tatsache, dass ich in der kontakt.php eigentlich zweimal den selben Code habe. Nämlich von Zeile 69-101 und von 103-135.

    Die Frage wäre jetzt im Prinzip, ob es Sinn macht den Code in einer Funktion zusammenzufassen. Der Grund dafür, dass ich es bisher noch nicht gemacht habe, ist, dass ich dann in der Funktion nochmals Funktionen aufrufen müsste und da bin ich mir nicht sicher, ob das so sinnvoll ist. Außerdem wäre dies ja keine klassische Funktion, wie z.B. meine validateFormData(), die einen klaren Zweck hat und eine Aufgabe erledigt. Die Funktion, in der ich dann den doppelten Code zusammenführen würde, wäre einfach nur dazu da, fast den ganzen "Programmablauf" auszuführen und das ist doch eher nicht der Sinn einer Funktion, würde ich sagen.

    Was würdet ihr an meiner Stelle machen?

    Bin auch gerne offen für ganz andere Ideen.

    Bedanke mich schon mal für eure Ratschläge. :)

    Gruß
    JR Cologne

    Hey,

    Wie kommst du den drauf das ich die nachbaue ??? ?(

    ich baue keine Funktionen nach... Ich suche mir was ich benötige und versuche sie selbst zu erstellen und falls ich nicht mehr weiter weiß google ich oder poste hier.

    Ja, du versuchst die PHP-Funktionen selbst zu erstellen. Also baust du sie im Prinzip nach. :D

    Wo ist das Problem? Ich denke, daraus kann man durchaus viel lernen. :)

    Die in PHP eingebaute Funktion array_sum löst diese Aufgabe ohne Probleme. Vermutlich hast du die Anwendung dieser nur falsch verstanden.

    Du gibst der Funktion lediglich den ganzen Array mit und mehr nicht. Die Werte holt sich die Funktion dann selber.

    PHP
    <?php
    $array = array(5, 4, 1); // Erstellung des Arrays, Summe der Werte ist 10
    echo array_sum($array); // Ausgabe = 10
    ?>

    Edit:

    Da du anscheinend gerne PHP-Funktionen nachbaust, hier nochmal die nachgebaute Funktion. So ungefähr könnte die array_sum-Funktion aussehen:

    Nein, natürlich ist es nicht falsch, wenn du keinen Header hast. Es ist nur etwas ungewöhnlich, da eigentlich jede Seite einen Header hat. Das heißt aber nicht zwingend, dass du auch einen brauchst.

    Zum Unterschied von section und main hatten wir schon mal eine Diskussion.

    Wenn du wissen möchtest, für was man die einzelnen HTML5-Tags einsetzen sollte, kannst du diese im Mozilla Developer Network nachschlagen oder beim W3C selber vorbeischauen.

    Hier ist mal der Eintrag im MDN für den main-Tag: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/main

    Und das ist der für den section-Tag: https://developer.mozilla.org/en-US/docs/Web…Element/section

    Ok, ich habe nicht wirklich Ahnung, wo der Fehler liegt, aber wir tasten uns langsam heran. :D

    1. Gebe die Meldung "Vielen Dank" nur aus, wenn die mail-Funktion auch true zurückgegeben hat. Also entweder so:

    PHP
    if(mail($empf, $betreff, $text, $from)) {
       echo "Vielen Dank";
    }

    Oder so:

    PHP
    $mail_sent = mail($empf, $betreff, $text, $from);
    
    
    
    
    if($mail_sent) {
       echo "Vielen Dank";
    }

    Am besten fügst du natürlich noch einen else-Block hinzu, wo du dann eine Fehlermeldung ausgibst. Dann kannst du, aber auch der User, genau sehen, was passiert ist.


    Nun zu deinem eigentlichen Problem:

    Ich habe wie gesagt keine wirkliche Vorstellung, was der Fehler sein könnte, aber ich habe Folgendes gefunden, was dir vielleicht weiterhelfen könnte: http://stackoverflow.com/questions/1906…rmission-denied

    1. Ich verstehe nicht hundertprozentig, was du meinst, aber es steht fest, dass deine zahls sowie zahld immer gleich zahl1 bzw. zahl2 ist, da die Werte ja der Funktion mitgegeben werden. Das sind keine unterschiedlichen Werte, es sind nur unterschiedliche Namen.

    Hinter den Variablen, die du in der Funktion deklariert hast (also zahl1 und zahl2), hast du dann noch ein default value zugewiesen. Die Variablen bekommen immer diesen Wert, wenn bei dem Start der Funktion keine Daten mitgegeben werden, indem man die Klammern einfach leer lässt.


    Also eigentlich müsste die Funktion immer den Fehler zurückgeben, wenn zahl2 bzw. zahld gleich 3.33 sind.

    Ansonsten hätte ich noch zwei Anmerkungen:

    1. Die Fehlermeldung solltest du am Besten in der Variable ergebnis speichern und zurückgeben, nicht sofort ausgeben.

    Dann könntest du beispielsweise den return value wie bisher entgegennehmen und dann aber abfragen, ob es sich bei dem Wert um einen String oder einen Integer handelt. Wenn es ein String ist, gibst du die Fehlermeldung, also Variable ergebnis einfach aus. Falls nicht und es ein Integer ist, kannst du deinen normalen Ergebnissatz ausgeben.

    Alternativ könntest du in der Funktion natürlich auch einfach false zurückgeben, wenn die Zahl gleich 3.33 ist und dann abfragen, ob die Funktion false zurückgegeben hat. Wenn dies zutrifft, gibst du deine Fehlermeldung aus.

    2. Die Return-Funktion schreibt man, glaube ich, ohne Klammern. Kann sein, dass beides möglich ist, bin mir da aber nicht sicher. Falls es auch so geht und du die Variante mit Klammern schöner findest, kannst du es natürlich auch einfach so lassen.


    Deine zweite Frage verstehe ich leider nicht...

    Ich denke, eine Herangehensweise wäre erst den Checkboxen die verschiedenen Preise zu verpassen, indem du diese in den value einträgst.

    Also z.B. so...

    HTML
    <input type="checkbox" name="angebot1" value="10.99">

    Anschließend brauchst du entweder PHP oder JS, um den Preis zu berechnen.

    Mit PHP könntest du z.B. grob das machen:

    PHP
    if(!empty($_POST['angebot1'])) {
       $preis = $preis + $_POST['angebot1'];
    }