Beiträge von Stef

    Hey,

    Zitat

    Gibt es eine Möglichkeit, irgend etwas leeres zu übergeben, damit das Eingabefeld für den Abflughafen bei Nichtauswahl leer bleibt? Ehrlich gesagt, weiß ich nicht, wie ich Dein angegebenes Beispiel einfügen soll.

    Ja du kannst dem ersten <option> eine Value geben oder nicht. Dann überprüfst du was rein kam und stellst so den Link zusammen.


    Dies ist ein sehr langer Code. Gehe mal bitte in Zeile 5632 zur function f(). Diese ermittelt, meiner Ansicht nach, die Values von der Anzahl der Kinder und der Erwachsenen.

    Ändere diese mal bitte so ab und teste es bitte:

    JavaScript
    function f() {
                var b = null,
                    c = null,
                    d = "";
                  b = a("#adults").val();
                  c = a("#children").val();
                if ("0" !== c)
                    for (var e = 1; e <= c; e++) d += a("#children-age" + e).val() + "k/";
                return b + "Erw/" + d
            }

    Wer hat denn dieses Script geschrieben? Bzw. woher hast du es?


    Grüße,

    Stef

    Hey,


    Zitat

    Das mobile Menü funktioniert nur auf der mobilen Startseite nicht. Weshalb, habe ich bisher noch nicht rausfinden können und leider hier auch noch niemand. Also, wenn Du eine Lösung hast, nur raus damit. :)


    Ich denke es liegt am Javascript. Denn wenn da die entsprechende JS-Function sowie Aktion genutzt wird, sollte sich wenigstens das Menü zeigen.

    Um dir dort besser helfen zu können brauche ich den Code.

    Zitat

    Was meinst Du bitte mit:

    Sorry, bin nicht fit in Javascript.

    Wie verarbeitest du die Formulardaten? Mit PHP oder Javascript ?

    Generell ist es so. Wenn du einer Variable einen Wert zuweisen möchtest. Dieser Wert aber nur optional ist. Dann ist der Wert der Vairable ungesetzt. Und somit wird immer undefined (undefiniert ausgegeben).

    Beispiel:

    https://jsfiddle.net/fxykajqt/2/

    Grüße,

    Stef

    Ich habe nun meine Ideen umgesetzt und deine Vorschläge mit den beiden Funktionen.

    Nun funktioniert alles soweit wie es sein soll, auch wenn der User den Browser schließt. Aber was jetzt sehr komisch ist, ist dass beim Browser Firefox der Logout klappt und beim Google Chrome nicht. Ich habe auch schon die ganzen Daten bereinigt.

    So führe ich den Logout aus:

    In die Variable Result wird dann die Zahl der geupdateten Reihen gespeichert. Wenn alles erfolgreich war ist diese 1. Somit überprüfe ich ob $result gleich 1 ist und wenn ja führe ich die weiteren Logoutaktionen aus.

    Bei Google Chrome kommt bei $result immer 0 raus obwohl die Tabellenreihe geupdatet wird. Ich weiß nicht warum.

    Desweiteren habe ich noch eine Frage zur JS-Function onbeforeunload. Wenn ich jetzt doch den Browser komplett schließe, wie kann denn trotzdem der Status dann im Update-Statement auf offline gesetzt werden? Weil es sollte doch eigentlich keine Session mehr vorhanden sein?

    Dies ist die Lösung:

    Grüße,

    Stef

    Aber bei PHP-Sessions hast Du doch schon einen SessionCookie, wofür brauchst Du denn noch einen?

    Wenn sich ein User einloggt erhält er eine Session. In dieser wird dann die userId gespeichert. Nun wenn der User sich aber ausloggt oder den Browser komplett schließt wird die Session ja sofort gelöscht. Das heißt die ganzen Abfragen, bei denen man diese Id aus der Session benötigt, fehlschlagen.

    Bei einem Logout kann man es ja so machen, dass man erst wenn das Update zum Status "offline" erfolgreich war die Session zerstört. Denn solange noch ein weiterer Tab geöffnet ist bleibt die Session erhalten.

    Beim sofortigen Fenster löschen wird die Session ja sofort gelöscht/zerstört. Dazu brauche ich noch eine andere Quelle die die ID als Value besitzt.

    Ich versuche es mal mit den beiden, von dir genannten Funktionen, onbeforeunload/unload. Diese werden, so wie ich es verstanden habe, erst ausgeführt, wenn etwas nicht ladbar ist.

    Ich melde mich dann nochmal später.

    Hey,

    Rainer Schmidt :

    Meinst du in der URL das undefined?

    http://www.preiswerterbuchen.de/test/pauschalreisen/?https://1000001260000000.reisesuche.de/pauschalreise/regionen/220518-050618/7t/undefined2Erw/1k/1k/

    Wenn man auf der Startseite Kinder hinzufügt ohne Abflughafen dann passiert auf der Seite nichts. Erst wenn man auf Suchen klick wird in der URL undefined angegeben.

    Undefined kann auftreten wenn eine Varibale nicht definiert ist. Schau nochmal ob du die Variable in der du den Abflughafen speicherst vorher definierst und dieser als Value einen leeren String gibst. Denn dann ist diese Vairable auch, wenn kein Flughafen ausgewählt ist definiert. Generell würde ich empfehlen das Feld auch auf required zu setzen.

    Desweiteren funktioniert bei mir das responsive Menü nicht.

    Grüße,

    Stef

    Hey,

    hast du denn alle 3 Schritte auch richtig ausgeführt ?

    Es kann sein, dass du da ein Fehler drin hast, denn der Code, welchen du gepostet hast, ist der gleiche wie auf der verlinkten Seite.

    Desweitern sind die einfachen sowie doppelten Anführungszeichen falsch gesetzt und sehe richtig komisch aus.

    Versuche es mal mit diesem Code (Habe die Fehler mit den Anführungszeichen behoben):

    JavaScript
    <script>
    if (localStorage.getItem("fboptout")) {
    document.write("<span>Das Tracking über das Facebook Pixel auf dieser Website ist deaktiviert. <a href='#' onclick='dataLayer.push({event: removefboptout});'>Hier klicken um das Tracking zu aktivieren</a></span>");
    } else {
    document.write("<span>Das Tracking über das Facebook Pixel auf dieser Website ist aktiviert. <a href='#' onclick='alert(Sie haben sich erfolgreich von der Erfassung über das Facebook Pixel ausgeschlossen.);dataLayer.push({event: fboptout});'>Hier klicken um das Tracking zu deaktivieren</span>");
    }
    </script>

    Grüße,

    Stef

    Hey,

    Arne Drews :

    Zitat

    Setz doch den Cookie ohne Expiration Angabe, dann ist das ein Session-Cookie und sollte beim Schließen des Browsers wech sein.

    Ob das auch für Tabs gilt, weiß ich adhoc nicht, musst Du mal versuchen.

    Das bringt aber auch nicht viel. Denn ich brauche ja die ID aus der Session für das Updaten der DB-Reihe. Siehe Code.

    Meine Überlegung ist, dass ich einen Cookie für eine bestimmte Zeit erstelle und eine Session. Wenn die Session zerstört wird läuft der Cookie je nach dem wie lange der User im Chat ist noch weiter. Wenn der User aber länger im Chat ist als die Laufzeit des Cookies wird es überprüft und dann wird der Cookie neu gesetzt. Die SESSION und der COOKIE haben dann den gleichen Inhalt.

    Was meinst du dazu?

    Ich habe jetzt nochmal nachgedacht.

    Ich erhalte die Id des Users über die Session. Mit dieser update ich dann die Tabellenreihen. Da ja dann bei dem schließen vom Browserfenster die Sessions zerstört werden ist diese Id undefined und daher wird das Statement nicht ausgeführt, da keine Session vorliegt.

    Daher wäre eine Möglichkeit beim Login die Id des Usernames als hidden feld mitzugeben. Dann hat man definitiv die Id des Users auch ohne Session.

    Das weitere Problem ist dann aber, dass ich diese Id nicht nur auf einer Seite brauche. Dann müsste ich die Daten trotzdem in eine Session speichern weil in den anderen Scripten dann keine Id vorhanden ist. Und dann kommt es wieder zum vorigen Problem, dass keine Session beim ausloggen oder Browser schließen vorliegt.

    Ist ziemlich kompliziert.

    Hey,

    okay. Ich habe nun ein Logoutformular erstellt und führe dann bei click auf den Button ein Request aus. Das Problem dabei ist, dass wenn ich die Response an eine andere Datei sende, null rauskommt. Wenn ich jedoch die Response zur chat.php (Hauptseite) sende, dann ist es vorhanden.

    Bei dem besteht aber das Problem, dass im responseText ja die ganze Ausgabe des Scripts chat.php enthalten ist. Das heißt nicht nur mein gewünschtes sondern auch der ganze HTML-Quellcode. Nun funktioniert jede Abfrage auf $_POST['aktion'] == logout nicht, da meiner Meinung nach die ganze Response ein Teil ist und ich es erst zurecht splitten muss. Daran scheitere ich.

    Meine Idee war es, die Daten an eine, nur php-datei, zu senden aber da kommt wie gesagt nichts an, was ich nicht nachvollziehen kann.

    Wenn ich nun es ohne Weiterleitung teste funktioniert der Logout nur zeitweise im Firefox. Mal wird der grüne Kreis rot und mal nicht. Desweiteren wird trotz Fenster schließen, der User nicht auf offline gesetzt. Dies kann ich auch nich nachvollziehen, weil die Sessions ja alle dabei zerstört werden.

    Zitat


    Wie kann man den auslesen ob ein User den Browser geschlossen hat.

    Wie kann ich den noch rausfinden ob der User überhaupt noch das browserfenster auf hat bzw wenn es auf ist und er es schliest .


    Beim Schließen des Browser werden nach meinem Wissen die ganzen Sessions zerstört. Dann überprüft man ob die Session noch vorhanden ist und wenn nein, dann wird der User offline gesetzt. Aber dies funktioniert bei mit aus unerklärlichen Gründen auch nicht.

    Stef

    Hey,

    ich baue grad ein Chat und möchte anzeigen lassen ob die User online, offline sind oder etwas schreiben. Dies funktioniert auch soweit. Dafür lasse ich bei Events HTTP-Requests ausführen. In der PHP-Datei führe ich dann die Überprüfung und das Update aus.

    Mit den Anzeige online und schreiben funktioniert alles ohne Probleme, auch beim Firefox. Die Anzeige, bzw. das Update vom Logout wird nur beim Google Chrome ausgeführt und nicht beim Firefox. Ich weiß nicht warum. Desweiteren ist es ja so, dass wenn ein Chatuser den Browser komplett schließt, dass dann die Session zerstört wird und nicht mehr existiert. Es wird aber nie richtig erkannt. Der User bleibt dann trotzdessen online, was ich auch nicht verstehen kann, weil ich explizit im Code darauf überprüfe.

    Hier sind die Codes:

    Code: Ausloggen
    <header class="container">
            <h1 class="text-center mb-5">Chat</h1>
            <ul>
                <li><a href='?aktion=ausloggen' id='logout'>Ausloggen</a></li>
            </ul>
        </header>

    Ich hoffe ihr könnt mir dabei helfen und erklären.

    Grüße,

    Stef

    Hey,

    ist 127.0.0.1 nicht das selbe wie localhost ?

    Zitat

    Wie müsste die den heissen?


    Code

    1. $dbv = new PDO("mysql:host=localhost;dbname=sebastian1012;charset=utf8", "sebastian1012", "****" );

    So ?

    Jetzt bin ich verwirrt8o

    Ja genau so sollte es dann sein.

    Hey Arne,

    Okay. Vielen Dank für deine wirklich sehr gute Erklärung.

    Ich habe das nun so umgesetzt:

    Was sagtst du dazu ?

    Grüße,

    Stef

    Hey,

    Zitat

    Jetzt nicht wieder rum meckern wegen SQL Injektion das ist in meinen Code schon bedacht ,das habe ich jetzt hier nur so gemacht um es einfacher zu sehen.

    Wenn man sowas programmiert dann auch richtig und nicht erst so um es dann zu ändern. Also bitte benutze zu deiner Sicherheit, zur Sicherheit vor Datenlecks und zur Sicherheit deiner Besucher/Chatteilnehmer, Prepared Statements.

    Zu deinem Problem:

    Es können folgende Faktoren dafür verantwortlich sein:

    - $suchwort ist leer

    - falscher Spaltenname

    - Die ' ' umrum der Variablen


    Kannst du bitte den Codeschnipsel sowie den Inhalt von der Variable $suchwort hier in deinem nächsten Beitrag posten.

    Grüße,

    Stef

    Hey,

    nach langem ausprobieren und Tutorials durchmachen, welche zum Teil nicht so ganz gut sind, habe ich es geschaft.

    Jedoch was ich nicht gut finde ist, dass Javascript keine Tage und Monate mit einer 0 vornedran supportet. Also 06 zum Beispiel.

    Habe dies jedenfalls nicht gefunden.

    Ich verstehe aber dieses Polling noch nicht so richtig.

    Dies ist der Code:

    Ich möchte mal versuchen es zu erklären, wenn ich wo falsch liege, dann bitte ich um Korrektur.

    Über Ajax wird die aktuelle Datetime an das PHP-Script übergeben. Wenn dies erfolgreich war oder ein Fehler auftrat wird die Funktion wieder von neu gestartet. Im PHP-Script überprüfen wir ob diese übergebende Variable auch vorhanden ist und weißen diese einer Variable zu. Zum Ausführen des Pollings benötigen wir die Datetime des letzten Datensatzes in der DB sowie eine Abfrage ob neue Datensätze dazu kamen. Diese 2 Abfragen werden in Funktionen aufgeteilt. Dann wird eine while-schleife erstellt und es wird solange die datetime des letzen Datensatzes kleiner, gleich der Datetime, welche durch Ajaxx übergeben wird, der Cache geleert, und die Funktion um den letzten Datensatz zu erhalten ausgeführt. Davor wird die Funktion usleep ausgeführt, damit da auch etwas Pause dazwischen ist und die Datenbank nicht dauerhaft arbeitet. Darüberhinaus wird überprüft ob es ein neuer Datensatz gibt und wenn ja wird die while schleife abgebrochen. Und dann wird die beim Funktionaufruf der refresh Funktion in Javascript wieder gestartet.

    Trotzdem verstehe ich ehrlich gesagt nicht wie es auch andere angezeigt bekommen.

    Warum gibt die Funktion newItem() immer true zurück? Auch wenn created_at kleiner als die aktuelle Datetime ist.

    Grüße,

    Stef

    Hey,

    danke für deine Antwort.

    Aso okay. Du hast recht. Jetzt funktioniert das automatische aktualisieren. Ich rufe die Funktion außerhalb nochmal auf, weil sonst erst beim Klick auf den Button die Nachrichten angezeigt werden.

    So sieht mein JS-Code nun aus:

    Ich habe nun aber ein weiteres Problem, welches mir gerade aufgefallen ist. Die Nachrichten werden zwar, wenn ich was poste, bei mir aktualisiert, aber beim anderen User der auf der gleichen Seite ist nicht. Erst wenn dieser die Seite neu ladet sieht er es. Warum ist das so?

    Es wird doch alles geladen ?

    Stef

    Hey,

    ich baue mir grad ein Chat.

    Nun möchte ich, dass die Nachrichten mittels Ajax geladen und ausgegeben werden. Dies funktioniert auch soweit. Diese Funktion möchte ich aber auch gerne ausführen wenn der Button geklickt wird, sodass die neue Nachricht auch angezeigt wird. Daran scheitere ich aber. Ich habe bereits versucht die Funktion in der anderen Funktion mitaufzurufen. Da ist das Problem, dass erst nach dem click auf den Button, alle Nachrichten angezeigt werden, da wird aber alles sofort aktualisiert. Wenn ich die Funktion dann zusätzlich außerhalb aufrufe, dann habe ich wieder das Problem, dass ich die Seite 2 mal laden muss, damit ich die ganzen Nachrichten sehe.

    Ich bin gerade wirklich ratlos. Habe auch viel gegoogelt. Aber leider nicht so viel nützliches dabei gewesen.

    Das sind meine Codes:

    Grüße,

    Stef

    Guck dir einfach seine Seite an, dann weißt du Bescheid. Und ich kann mir ja viel vorstellen, aber dass irgend jemand ihm hinterher rennt, um schnell Hilfe zu bekommen, halte ich für sehr unwahrscheinlich. Spätestens bei Ansicht seiner Seite wäre ich ganz schnell weg.

    Was ich noch so denke, halte ich besser für mich, da sonst jemand beleidigt sein könnte.

    Ich selbst finde seine Seite auch nicht schön und habe die selbe Meinung wie du dazu. Ich würde dort als Besucher auch nicht bleiben.

    Jemand rennt ihm hinterher? Das sehe ich nicht so wie du. Er möchte einen Chat erstellen, welcher für Personen die Hilfe brauchen, geeignet ist. Kann er gerne machen.

    Jeder hat seine ganz eigene Vorstellung von Punkten. Einer hält dies für nötig, der andere nicht. Usw.

    Wenn dies sein Wunsch ist dann kann er dies selbstverständlich so umsetzen wie er es haben möchte. Ob es späterhin dann was wird, wird derjenige sehen.

    Auf diesem Wege kommen wir zurück zum Thema.

    Grüße,

    Stef