Beiträge von tk1234

    Es soll dazu führen, dass ein Video startet, sobald es auf dem Bildschirm beim Scrollen sichtbar wird.

    Nein, soll es nicht. Du hättest das vielleicht gerne, aber dein Benutzer eher nicht - und für die ist die Seite ja schließlich. Ich bin mir jetzt nicht sicher, meine aber mich zu erinnern dass zumindest einige Browser das von dir gewünschte Autoplay unterbinden.

    Inline-style versuchen zu vemeiden

    richtig. Klassennamen nach der damit gesetzten Eigenschaft zu benennen ist auch nicht wirklich besser … Die Klassen sollten immer nach dem Einsatzzweck benannt werden, nie nach der Darstellung - die kann sich auch ändern.

    Die Codefetzen schau ich mir jetzt nicht genauer an (v.a. bastel ich mir nicht alles so zusammen dass ich es testen kann - das wäre deine Aufgabe das zu ermöglichen ohne x Dateien händisch anlegen zu müssen), eines ist mir aber aufgefallen:

    if (strlen($ean) == 13 AND is_numeric($ean) AND !strpos($ean, '.') AND !strpos($ean, 'e')) {

    du suchst die Funktion ctype_digit() (statt is_numeric()), damit kannst du die beiden strpos() rauswerfen.

    Außerdem: gewöhn dir an das ?> wegzulassen wenn anschließend kein HTML kommt - dann riskierst du nicht dass dir irgendwelche Leerzeichen vielleicht mal in die Suppe spucken.

    Wie bringe ich der Funktion bei, dass sie ab 13 stoppt?

    Einfach im Ausdruck nur die Zahlen 1-12 erlauben: »\b([1-9]|1[0-2])\b«. Alternativ abfragen ob numberWordMap[nr] existiert:

    JavaScript
    '13'.replace(/(\d+)/g, (_, nr) => numberWordMap[nr] ? numberWordMap[nr] : nr

    (ob das wirklich korrekt so ist muss jemand beurteilen der in JS besser ist als ich, gibt es evtl. einen ??-Operator wie in PHP?)

    ich möchte ein Popupfenster erstellen welches ich über einen Desktoplink aurfufe.

    Was hast du genau vor? Was soll das --ssb im Kommando bewirken? Firefox kennt zwar eigentlich den Parameter --headless - der scheint aber aktuell einen Bug zu haben und Firefox startet mit dem Parameter garnicht.

    Mint kennt Webapps was wohl genau das machen würde was du vor hast - ob es für Windows sowas auch gibt weiß ich nicht.

    Wenn man diesen Code … so machen würde … der bessere Weg

    Nein. $variable existiert nur wenn das Formular abgeschickt wurde, die Daten sollen aber ja auch bei späteren Aufrufen der Seite noch existieren weswegen die erste Variante schon richtig ist, nur eben ohne htmlspecialchars (bzw. erst im zweiten if-Block bei der Ausgabe).

    Und warum eigentlich $_SESSION['ausgabe']='true'; und nicht $_SESSION['ausgabe']=true;?

    Es gebe auch noch eine möglichkeit mit Php.

    Da kommen zwar gleich wieder blöde Kommentare , aber was solls.

    Einfach einmal auf der gleiche Seite umleiten.

    Die Idee ist durch auch ok, gleich GET zu verwenden ist aber imho sinnvoller: die Abfrage verändert keine Daten, damit ist GET die Methode der Wahl - es wird schon seinen Grund haben dass Google (andere aber auch) GET-URLs verwenden.

    $_SESSION['ausgabe']=htmlspecialchars($_POST['textfeld']);

    *das* aber ist auch Käse: das Speichern des Wertes in der Session ist kein Kontextwechsel (einer nach HTML schon gleich garnicht) womit htmlspecialchars() hier falsch ist - die Funktion darf erst verwendet werden wenn der Wert tatsächlich im HTML an den Browser geschickt wird.

    __construct( $dsn = 'mysql:host=127.0.0.1;dbnameshop,charset=UTF8', $username = 'DB_USERNAME', $password = 'DB_PASSWORD' )

    Die Fehlermeldung passt nicht zum Code und der dsn ist immer noch Käse. Einer der drei Fehler darin ist das falsche charset (richtig wäre utf8mb4), den Rest siehst du hoffentlich selbst - wenn nicht solltest du überlegen ob das Programmieren wirklich das richtige für dich ist, simple Syntaxfehler sollte man auch selbst finden, dafür sind Foren nicht da.

    Ich habe mein Projekt gerade ohne jegliche Änderungen auf mein Webserver hochgeladen und über den Browser aufgerufen. Nun kommt der gleiche Fehler wie zu Beginn: Die Klasse kann nicht gefunden werden, obwohl der Pfad zur PHP-Datei stimmt.

    Da der Webserver vmtl. unter Linux läuft könnte es an einem Klassiker liegen: Groß- und Kleinschreibung bei Dateinamen und Verzeichnissen nicht konsequent beachtet (Linux unterscheidet hier, Windows nicht) - mehr lässt sich so völlig ohne Kenntnis von Code und Datenstruktur nicht sagen.

    Zum Thema Dateien außerhalb vom document-root ablegen muss ich auch noch was nachtragen: dass große Shop-System alle ihre Dateien innerhalb des Root-Verzeichnisses hätten (-> #9) stimmt nicht: Shopware z.B. hat da mit der Version 6 umgestellt, wenn die Domain nicht auf das public-Verzeichnis zeigt sondern auf die Ebene darüber, bekommt man lediglich eine Fehlermeldung. Das muss natürlich nicht repräsentativ sein, oft wird es aber historische Gründe haben da eine Umstellung der Verzeichnisstruktur immer einen gewissen Aufwand mitbringt.

    Das funktioniert so weit auch alles ganz toll, allerdings möchte ich gerne die 5 Hauptpunkte in fetter Schrift hervorheben und dabei habe ich das Problem, dass das dazugehörige Aufzählungszeichen (also 1., 2., etc.) nicht fett dargestellt wird.

    Du sagst dem Browser ja nicht dass die Zahlen fett sein sollen, du musst ol oder li schon fett formatieren (für ul dann wieder zurücksetzen). Und lass die style-Attribute weg, die sollten die absolute Ausnahme sein.

    gibt es eine Möglichkeit eine bestimmte Session zu beenden?

    Nein. Du kannst in einem Script nur die eigene Session bearbeiten, fremde Sessions kannst du natürlich nicht beeinflussen. Dir bleibt nur mit Flags zu arbeiten anhand derer bei jedem Seitenabruf abgefragt wird ob die Session noch weiterlaufen darf oder nicht. Aber was hast du eigentlich wirklich vor? Warum pfuscht der Admin im Passwort eines Benutzers rum? Bei einem vergessenen Passwort ist es ok wenn ein temporäres(!) Passwort gesetzt wird - in deinem Fall kennt der Benutzer aber ja sein Passwort (sonst wär er nicht angemeldet).

    Habe das mit diesem Code versucht:

    unset($_SESSION[$benutzer_id])


    leider funktioniert dies nicht. Ich erhalte auch keine Fehlermeldungen.

    "Funktioniert nicht" ist keine Fehlerbeschreibung und eine Fehlermeldung bekommst du nur wenn $benutzer_id oder $_SESSION[$benutzer_id] nicht existieren - außerdem änderst du damit ohnehin nur deine eigene Session.

    Beachte auch den obersten Beitrag unter "User Contributed Notes".

    Nur als Hinweis: da die Anmerkungen im Handbuch abhängig von der Bewertung sortiert sind, kann sich die Reihenfolge verändern - sinnvoller ist es also direkt auf den Eintrag zu verweisen den man meint (einfach auf die E-Mailadresse klicken).

    Das wird ja dann übergeben und in den ssh2 Befehl eingefügt. Der dann rein theoretisch so aussehen müsste:

    (Habe $folder mal ersetzt)

    $output1 = ssh2_exec($connection, 'rm -r ' . escapeshellarg('/media/Mitarbeiter/../../../../media/Mitarbeiter/Admin/Test/'));


    Das macht ja irgendwie wenig sinn.

    Jein. Der Pfad wird vom System dann entsprechend übersetzt und es wird das richtige Verzeichnis gelöscht. Aber warum übergibst du überhaupt eine vollständigen Pfad wenn du eigentlich nur einen Teil brauchst? Und warum die ganzen »../« davor wenn »/media/Mitarbeiter/Admin/Test« das gleiche bewirken würde ohne dass die Gefahr bestünde dass man sich mit den Ebenen (und damit den »../«) verzählt?

    Aber unabhängig davon, ich habe es dir schon mal in einem anderen Thread geschrieben (warum hat in diesem niemand darauf hingewiesen?!): du hast immernoch eine gravierende Sicherheitslücke in deinem Code wenn du relative Pfadangaben zulässt und den kompletten Pfad angibst. Die Gefahr dass dir jemand das komplette System platt macht besteht durch das weglassen von sudo nicht mehr, du darfst aber trotzdem nur den Pfad unterhalb von »/media/Mitarbeiter« übergeben und darfst in dem übergebenen Wert auf keinen Fall »../« zulassen, damit nicht beliebige Verzeichnisse gelöscht werden können (halt alle die der verwendete Benutzer löschen darf).

    Evtl. wäre es auch sinnvoll bei der SSH-Verbindung (bei der mir ohnehin nicht ganz klar ist wofür die notwendig ist, liegen die Daten nicht auf dem Rechner auf dem der Apache läuft?) keine Verbindungen mit Passwort zuzulassen sondern nur welche über Public Keys.

    Wenn ich mal was einwerfen darf: mit Pixel-Angaben für die Breakpoints in den media-Querys seid ihr auf dem völlig falschen Dampfer. Die richtige Einheit hier ist em, löst euch von der Vorstellung dass x Pixel der Breite von Gerät y entsprechen!