zufalls Userid-Script so ok?

  • Ich habe nur eine ganz kleine kurze Frage:
    Ist das nachfolgende Script geeignet zum userid erstellen? Oder ist die Wahrscheinlichkeit doch noch sehr hoch das die entstehende Zahlen gleich sind? Ich habe es ca. 100 mal getestet und keine gleichen Zahlen gefunden!

    MfG

  • ähm.. nur so als gedanke... warum der aufwand. die user werden doch in
    eine datenbank geschrieben, oder ? warum nimmst nicht einfach dann diese id ?

  • Ja aber das Problem ist das ich die Userid für die Profile von den Leuten brauche (http://URL?userid=...) und da dann nur die db id ist etwas kurz und lässt außerdem eine direkte Einsicht auf die Anmeldereihenfolge zu!
    Und ich wollts nur wissen ob das schon reicht!? Ansonsten setz ich noch ein db Abgleich dahinter.

    Code
    while (userid = dbuserid)
    {
    userid++
    }

    MfG

    Aber danke für den Hinweis die Idee hatte ich auch schon aber fand sie für mich halt bissel unpassend!^^

  • Also es gibt Leute die das intressiert!^^
    Und sry das ich das vergessen habe ...
    Ich brauch die Userid noch um Beiträge und so den Usern zu zu Ordnen und da ist nur die db id dann mit der Beitrags id kollidierend(?)

    @bandit600: Danke ...

    Aber ich hab gerade ein anderes Problem bekommen!^^
    ...
    Weiß nicht ob das hier rein kann ... letztens sollt ichs alles in einem Thread lassen!
    Ich bin grad völlig ratlos weil ich ein Serverseitigen Countdown brauche! Ein bloßer php Countdown reicht nicht weil er Seitenaufruf-unabhängig sein soll. Sprich User meldet sich an Countdown läuft! Wenn User Seite aktualisiert oder Seite wechselt fängt Countdown von vorn an. Und wenn Countdown = 0 dann soll der User ausgeloggt werden!
    Das Problem ist ich habe schon ein refresh drin! Kann ich davon 2 auf eine Seite basteln?

    HTML
    <meta http-equiv="refresh" content="60; URL=originalseite"> 
    <meta http-equiv="refresh" content="1800; URL=logout">

    MfG

  • Wieso machst du das nicht einfach mit PHP z.B. so:

    Gruß crAzywuLf :D

  • Wieso machst du das nicht einfach mit PHP z.B. so:

    Aber dann prüft er das doch immer nur wenn die Seite aktualisiert wird und wird bis er das das nächste mal tut als online angezeigt!?
    Sprich ich müsste es ja wenn dann über JS machen!? oder halt mit einem refresh?
    Weil es geht hauptsächlich darum das der User für alle anderen nach z.B. 10min inaktivität als offline angezeigt wird!

  • Also darauf kannste selber kommen. Mit JS & Ajax, siehe dazu evtl. die jQuery API für ajax, stichwort $.ajax();
    Du rufst mit JS z.B. jede sekunde den server, der schaut nach, ob der nutzer schon als offline angezeigt werden soll, wenn ja speichert php das und schikt entsprechendes ans JS zurück. JS kann das ja dann verwenden und location.href einsetzen. Und nein, es gibt keine Möglichkeit das bei usern ohne JS zu machen.
    P.S.:
    Deine vielen ! sind für mich fehl am platz, das wirkt sehr unhöflich auf mich. Nur als kleiner Tipp am rande ;)

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Einfach per Js einen Countdown, per Cookie kannst du das auch Seitenübergreifend speichern

  • Naja dann schalt ich halt Javascript aus und dann? :roll:

    Zitat


    Weil es geht hauptsächlich darum das der User für alle anderen nach z.B. 10min inaktivität als offline angezeigt wird!

    Jo dann schreibst halt einen Timestamp bei jedem Seitenaufruf in die Datenbank und liest den dann aus und prüfst ob er schon älter als 5 min ist.

    Gruß crAzywuLf :D

  • des hatten wir shon 3 mal. Dann kann ich einfach nix machen und erst wenn ich wieder da bin wecheslt dann mein modus erstaml zu offline. Sehr sinnvoll. Warum wilslt du das überhaupt? Man braucht des eig. nicht, ausser in nem Chat, aber da haste ja eh JS/Flash.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Wenn du einen "echten" countdown machst (nur!) per javascript, machst du dir das leben unnötig schwer.
    Und es interessiert nun wirklich den Fuchs, ob jemand nun seit 10 Minuten nich mehr da ist oder seit 20. Crazywulfs Lösung ist die einfachste.

    Aber: hier wäre noch eine Idee. Speichere alle User bei Anmeldung in eine Tabelle oder Textdatei, zusammen mit dem Zeitpunkt der Anmeldung. Die Datei/Tabelle wird dann bei jedem Aufruf JEDES Users zweierlei benutzt:
    1. User aktualisiert seinen Eintrag (Zeitpunkt letzter Request)
    2. Alle User, deren letzter Request so und so lange her ist, werden als offline markiert.

    Somit umgehst du dein Problem. Wobei man obiges dann auch schon wieder per cronjob machen könnte, dann wirds noch genauer.


  • Die Abfrage macht es dann ja harr genau, das Löschen dient nur zur erleichterung der Tabelle

    Besser wäre es alle 10 Minuten nur die DB upzudaten sprich den Query erst alle 10 Minuten freigebenlassen (steuerbar per Cache)

    mfg

  • auch wenns etwas ins offtopic geht, aber warum zum Geier sollte ich für einen Query, den ich in bestimmten intervallen abfeuern will, den cache bemühen? Zumal ich bezweifle, dass der TE eine soo große Seite hat, das sich der Cache überhaupt lohnt.
    Für solche Zwecke wurden cronjobs erfunden


  • Ich brauch das weil es eine "Community" ist und es da schon praktisch ist zu wissen wer online ist!
    ...
    Wie machen das denn so Websites wie Schueler.cc , Dampfer, ... bei denen gibt es ja auch einen auto Logout und die haben weder cronjobs drin noch ein JS welches bei onclose ein Logout noch ausübt!
    ...
    Wäre das eigentlich eine Möglichkeit? Für alle inaktivitäten aber Fenster offen habe ich jetzt was zwar auf JS basis aber es geht!
    Sprich es geht nur noch um Fenster zu ohne Logoutbutton vorher betätigt.
    Irgendwie muss das ja mit onclose gehen ... aber ich bekomms ni ganz hin ...

    HTML
    <body style="background-color: #000000" onselect="ResetTimer()" onmousedown="ResetTimer()" onsubmit="ResetTimer()" onkeypress="ResetTimer()" onfocus="ResetTimer()" ondblclick="ResetTimer()" onclick="ResetTimer()" onchange="ResetTimer()" onabort="ResetTimer()" onload="ResetTimer()" onmousemove="ResetTimer()" onkeydown="ResetTimer()"
    onclose="Logout()">

    Im Oroginal ist alles auf einer Zeile ... wollte nur den wichtigen Teil etwas extra stellen.
    was ist daran falsch?

  • Zitat


    Wie machen das denn so Websites wie Schueler.cc , Dampfer, ... bei denen gibt es ja auch einen auto Logout und die haben weder cronjobs drin noch ein JS welches bei onclose ein Logout noch ausübt!

    Woher willst du dass denn bitte wissen?


  • auch wenns etwas ins offtopic geht, aber warum zum Geier sollte ich für einen Query, den ich in bestimmten intervallen abfeuern will, den cache bemühen? Zumal ich bezweifle, dass der TE eine soo große Seite hat, das sich der Cache überhaupt lohnt.
    Für solche Zwecke wurden cronjobs erfunden


    Cache lohnt sich immer!!!

    Woher weist der Cronjob bei welchen User nun die Zeit updaten darf ? ;)

    Einmal editiert, zuletzt von Pion (23. Juli 2010 um 14:11)