Beiträge von Nitamud

    Hallo,


    mich würde interessieren wie man bei einem Type Hint den Fehler abfangen kann.


    "Catchable fatal error: Argument 2 passed to Test::__construct() must be an instance of irgendetwas, integer given"


    Die Fehlermeldung gibt an das es abfangbar ist. Aber was wirft der Type Hint? Eine normale Exception ist es nämlich scheinbar nicht,
    da bei einem Code wie unterem , trotzdem der Fehler auftritt:



    mfg Nita

    Mach einmal ein:


    PHP
    1. echo '<pre>';
    2. print_r($result);
    3. echo '</pre>';


    Und zeig uns die Ausgabe.


    Deine Idee mit dem if ist grundsätzlich richtig,
    nur vermute ich das in $result nicht das von
    dir erwartete steht. Oder aber auch durch die Abfrage
    an betreffender Stelle immer dieses Ergebnis steht.
    (Toxik CC) ist der Index für?


    Mfg Nita

    Ja es war natürlich eine Exception gemeint.(errinert mich gerade schmerzlich daran, dass ich wegen diesem Wort vor absehbarer Zeit in einem Test eine schlechtere Note hatte :D )
    Du lagst mit deiner Vermutung gut, das Problem was aber ein bisschen anders. Durch einen früheren Testversuch ist da noch
    ein <pre>-Tag ungeschlossen herumgelaufen , dass dieses komische Verhalten ausgelöst hat, ist somit erledigt Danke :)

    So ich habe wieder mal eine kleinere Frage, bei der ich im Vorfeld ein wenig grübeln musste
    ob sie unter PHP/HTMl richtig aufgehoben ist. Bitte einfach falls nötig in den richtigen Bereich verschieben.



    Es geht um folgendes:


    Durch eine Datenbankklasse erhalte ich bei Fehlern verschiedene Expections mit einer teilweise recht langen Message.
    Da ensteht bei mir aber dann bei der Ausgabe auf der Seite das Problem, das die Browser nicht automatisch umbrechen
    und deshalb ein vertikaler Scrollbalken entsteht, den ich aber unbedingt loswerden möchte.


    Im erste Gedankengang habe ich geglaubt das vermutlich keine wirklichen Leerzeichen in der Message enthalten sind,
    sondern diese nur ein \s enthalten und habe versucht, dies mittels PHP zu ersetzen, was aber leider fehlgeschlagen ist.


    Bild dazu:


    [Blockierte Grafik: http://img4.fotos-hochladen.net/uploads/fehlerpdotf35wkvhlx.png]


    Ich hoffe jemand von euch kann mir hier auf den richtigen Pfad führen:)

    Am Besten einen eigenen Parameter für die query übergeben. Du kannst dir auch bei den Tutoritals hier im Forum die query-Functionen, mal anschauen und schauen, wie das ganze dort gelöst wird.


    http://www.html-seminar.de/htm…atenbankklasse-erstellen/


    http://www.html-seminar.de/htm…-objects-erweiterung-pdo/


    Zweiters ist zwar eigentlich für die PDO-Anbindung gedacht, die Methode dort lässt sich aber auch leicht an mysqli anpassen :)

    Ach du willst abgelaufene Projekte auch noch anzeigen lassen?


    die Dauer selbst ermittelst du so


    SQL
    1. SELECT TIMESTAMPDIFF(hours,NOW(),endzeit)


    Dort ggf. noch den Parameter anpassen , falls du was genaueres als Stunden brauchst :)

    Doch, da das Startdatum dann ja irreleveant ist.


    Du musst im Grunde dann beim auslesen ein where-Klausel dranhängen:


    ungefähr so:


    SQL
    1. WHERE NOW() > endzeitpunkt



    bzw in welchem Format speicherst du die Zeit denn? könnte eventuell auch CURDATE() statt NOW() nützlich sein :)

    Ich würd hier in diesem Fall immer noch bevorzugen das ganze direkt SQl erledigen zu lassen.
    Zudem finde ich es logischer , ein Enddatum zu speichern statt dem Zeitraum vom Startdatum aus und das Startdatum.
    In so einem Fall empfiehlt es sich vielleicht anfangs nur das Enddatum zu speichern und mit dem jetztigen
    zu vergleichen, was sehr viel arbeitet spart.


    z.B. Start + Laufzeit direkt anfangs berechnen und das als Datetime in die Datenbank schreiben
    Dann die Differenz zwischem dem heutigen Tag und dem Ablauf direkt von SQl berechnen lassen
    und per php nur noch formatieren.


    Wozu denn PHP nutzen , für etwas das MySQL auch kann ^^

    Möglich ja, wobei du das schon genauer ausführen musst.
    Eine Zahl? Was gibt diese Zahl an? (Sekunden, Minuten, Stunden, Tage, Jahre, Birnen, Äpfel...)


    Ich würd statt einer Zahl dort das Enddatum angeben , und ebenfalls im gleichen Zeitformat speichern.
    Dann kannst du dir die Differenz bequem per SQL ausrechnen lassen
    und dann nur noch eine Ausgabart per PHP definieren.


    Am feinsten wird es vermutlich durch einen Timestap-Diff
    in Minuten bei dem du erst prüfst ob er größer als ein Tag ist und dann das Ganze in ein schönes Format bringst :)


    Edit: GIbt es eine maximale Länge für Projekte? , den bei unter 900 Stunden dürfte sich noch TIMEDIFF anbieten.

    Wolf meinte das ganze so, dass du die textarea überall gleich ansprechen kannst,
    nur die jeweiligen spezifischen Browserstylesheets diese standardmäßig anders darstellen.


    Darum solltest du die Schriftart und die Breite selbst im CSS definieren , um eine gleiche
    Darstellung in den Browsern zu bekommen :)

    So mal grob eine Ansatz dazu:


    Die Elemente des Dropdowns musst du aus dem Textfluss nehmen und nicht nur unsichtbar machen:



    Zudem die Elternlistelemente relativ positionieren, damit sich die Dropdownliste daran ausrichtet:


    CSS
    1. nav ul li {
    2. position: relative;
    3. }


    Und beim Hover dann eben wieder sichtbar machen:


    CSS
    1. nav ul li:hover ul {
    2. /* When list item is hovered, display UL nested within. */
    3. display:block;
    4. }


    Live-Beispiel: http://codepen.io/Nitamud/pen/qEYepo


    Hoffe, jetzt hab ich dich verstanden :)

    Finde dein Beispiel oben sehr interessant und hilfreich, sowas kam mir bisher noch nie unter :)
    Intressehalber würde mich interessieren was bei deinem vtcha bei deaktiviertem JavaScript passiert,
    kann man das ganze dadurch umgehen, oder wird das Formular für diese Leute dann unbenutzbar?


    Edit:



    Da du oben davon redest das die Bots langsam intelligent werden, glaubt ihr das ein serverseitiger
    Honeypot-Schutz nicht mehr ausreicht, oder sind diese derzeit noch relativ sicher?