Beiträge von Sören

    strlen gibt nur die Länge des eingegebenen Strings wieder, d.h. wenn der Benutzer 1234 eingibt, ist strlen 4, da 1234 4 Zeichen sind.
    Damit kann man bei dir als gültige Kartenanzahl etwas eingeben, dass 1 bis 100 Zeichen hat.


    Um zu prüfen, ob die Anzahl der Karten (die eingegebene Zahl) stimmt musst du also direkt $anzahl mit 1 und 100 vergleichen und nicht strlen($anzahl). :D


    Zitat von "22_111"

    P.s Der Cast Operator (string), bedeutet Zeichenkette nur Buchstaben oder heisst zeichenkette gemischt, kann alles sein. In meinem Buch steht:


    Beispiel aus meinem schlauen Buch, obwohl manchmal zweifle ich an der Richtigkeit der Infos. Da es nun mal nicht tut

    Code
    $name = (string) $name;


    Allerdings lässt er die Zahlen in der Variable Name bestehen, daher wollte ich wissen ob zeichenkette gemischt bedeutet oder wie das wort ausdrückt Zeichen?!


    Ich weiß jetzt nicht genau, was du damit meinst, was du wissen willst.

    Um diese Notizen zu vermeiden, kannst du am Anfang alle Post-Variablen anderen Variablen zuweisen, wenn sie nicht gesetzt sind, weist du ihnen einfach einen Leerstring zu.
    Damit sollten zumindest keine Notizen mehr mit Post-Variablen kommen.
    Beispiel:


    Andere Variablen am Besten am Anfang initialisieren, damit keine Notizen kommen, ist außerdem auch besserer Programmierstil und kann dir bei der Fehlersuche helfen.


    Edit:
    die Fehlermeldung kommt daher, dass $bereitsaufgerufen nicht definiert ist, wenn das Formular nicht abgesendet wurde, daher einfach prüfen, ob $bereitsaufgerufen gesetzt ist (außerdem habe ich noch eine Prüfung bei der Zuweisung von Nachname eingebaut):


    Nur mal so als Hinweis:
    weder bei isset(), noch bei empty() wird eine Notiz generiert, wenn die Variable undefiniert ist.


    Genau zu diesem Zweck gibt es ja isset(): um zu prüfen, ob eine Variable existiert.

    Hm, vielleicht irgendwo ein Schreibfehler bei den Dateinamen?
    Hast dus mal in anderen Browsern als Firefox ausprobiert?


    Sarkkan
    OK, daran hab ich nicht gedacht.
    Ich handhabe das normalerweise mit Variablen, je nachdem, ob localhost oder nicht, aber bei reinem CSS geht das ja schlecht.

    Ich hab dir schon Vorschläge gemacht:

    Zitat von "Sören"

    Das Submenü solltest du besser als Popout machen oder einfach dauerhaft anzeigen lassen, so stört das gewaltig.


    Zweitere Variante wirst du wohl selber hinbekommen.

    Hm, ich dachte erst, du hättest Basiiis zweiten Code ohne den Teil von CyberGirl versucht.


    Finde ich sehr eigenartig, dass das nicht funktioniert.

    So, dann fang ich mal an:


    Für diese Methode braucht man kein JavaScript, es funktioniert ausschließlich mit CSS3 und dementsprechend nicht in älteren Browsern.
    Der Nachteil ist natürlich, dass auch kein IE8 (IE9 dagegen schon) unterstützt wird und somit viele Besucher quasi ausgeschlossen werden.


    Diese Variante basiert hauptsächlich auf der CSS3 Pseudo-Klasse :target.
    Diese bewirkt, dass, wenn per Link die Id des Elements ausgewählt ist (z.B. wenn die id background ist, wenn in der Url am Ende #background steht), der enthaltene CSS-Code "ausgeführt" wird.



    Der HTML-Code besteht, wie Philipps Variante aus zwei Containern:

    Code
    <div id="background">
        <div>
        <a href="#">Schließen</a>
        <!-- Inhalt des Fensters -->
        </div>
    </div>
    <p><a href="#background">Öffnen</a></p> <!-- Öffnet das Fenster -->


    Der äußere Container ist für den halbdurchsichtigen Hintergrund, wofür keine Grafik benötigt wird und der innere zur Formatierung des eigentlichen Fensters.


    Damit das ganze funktioniert, wird noch ein Link benötigt, welcher das Fenster öffnet (muss als Ziel die id des äußeren Containers haben, z.B. href="#background") und ein Link zum Schließen des Fensters innerhalb des Fensters (mit href="#").



    Der CSS-Code sieht folgendermaßen aus:


    Sollte eigentlich alles ausreichend erklärt sein.



    Das ist erstmal das wichtigste, um das ganze noch hübscher zu gestalten, kann man sich den CSS3-Transitions bedienen und den Einblendvorgang animieren.
    Hierzu sind nur kleine Änderungen am CSS-Code erforderlich, als animierte Eigenschaft wird die Transparenz (opacity) genutzt, das Fenster wird vollständig durchsichtig in die Mitte geschoben und dann eingeblendet.



    Mit dieser Methode kann man schöne Fenster alá fancybox gestalten, ohne irgendetwas mit JavaScript machen zu müssen.
    Wenn ihr Fragen dazu habt, dann scheut euch nicht diese auch zu stellen. :D

    Das Submenü solltest du besser als Popout machen oder einfach dauerhaft anzeigen lassen, so stört das gewaltig.


    Der Header-Schriftzug ist meiner Meinung nach auch in kleinen Browserfenstern viel zu groß.


    Mal überlegt zwischen Navi und Inhalt mehr Abstand zu machen? Die jetzigen 1-2px fallen kaum auf.

    Mit CSS3 kann man das ganze auch einfacher realisieren, dann klappt auch das mit dem dynamisch aus- und einklappen.


    Wenn ich dazu ein wenig Zeit finde (spätestens morgen), werd ich das ganze mal als CSS3-Tutorial hier drunter schreiben.


    Ein Beispiel des ganzen: http://soeren-thomas.de/ (unten rechts auf Login klicken).
    Das Fenster ist komplett ohne JavaScript realisiert und funktioniert nicht im IE <= 8.

    Der blaue Farbverlauf gefällt mir jetzt nicht so, die untere Farbe ist zu grau, sieht mit dem Text darauf eigenartig aus.
    Ich würd dei untere Farbe kräftiger machen, mit weniger grau darin.


    Zu dem Rest:
    Telefonnummer und E-Mail Adresse solltest du da wegnehmen und ins Impressum packen und den Websitenamen, naja eigentlich weiss man auf welcher Seite man sich grad befindet und muss die URL nicht so groß auf der Seite stehen haben, würd ich da also auch wegnehmnen.
    Insgesamt solltest du die Leiste sehr viel kleiner machen, vielleicht auch auf eine Ecke beschränken.

    Ich hatte aber eher gedacht, den Text oder die Abstände zwischen den Navigationspunkten breiter zu machen, damit an den Seiten in der Navigation nicht so viel Luft ist.


    PS: willst du auch was zum Rest der Seite hören?

    Sieht vernünftig aus, aber kannst du nicht erstmal die komplette Seite machen und uns dann fragen, wie das Gesamtdesign aussieht?
    Erstens sieht man die einzelnen Elemente dann im Zusammenhang und zweitens musst du dann nicht für jedes Element ein neues Thema aufmachen.


    Mir fällt so nämlich auch nichts viel zu verbesserndes auf, vielleicht die Abstände links und rechts zwischen Menüpunkt und Navi-Rand kleiner machen, aber da muss man dann halt sehen, wies im Gesamtdesign aussieht und die selektierten Menüpunkte dunkler und mit besser sichtbarem Farbverlauf machen, damit sich das in die Navi einpasst.


    PS: Es heißt die Navigation.