Helpdesk
Menschen Wissenschaft Politik Mystery Kriminalfälle Spiritualität Verschwörungen Technologie Ufologie Natur Umfragen Unterhaltung
weitere Rubriken
PhilosophieTräumeOrteEsoterikLiteraturAstronomieHelpdeskGruppenGamingFilmeMusikClashVerbesserungenAllmysteryEnglish
Diskussions-Übersichten
BesuchtTeilgenommenAlleNeueGeschlossenLesenswertSchlüsselwörter
Schiebe oft benutzte Tabs in die Navigationsleiste (zurücksetzen).

Programmieren: Hilfe & Austausch

920 Beiträge ▪ Schlüsselwörter: Programm, Code, Html ▪ Abonnieren: Feed E-Mail
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

13.03.2013 um 16:22
@alliswrong

Die Demo soll mit den Daten des Gastes laufen, nicht mit Demo-Daten. Die Daten sollen nur für den Gast zugänglich sein.


melden

Programmieren: Hilfe & Austausch

13.03.2013 um 16:28
Ich bräuchte mal euren Rat. Wie würdet ihr folgendes per Datenbank realisieren:

In meinem Blog will ich zu Themen wie Java, C, Python, Rails etc. etwas schreiben. Der Aufbau sollte z. B. so aussehen:

Thema: Java
-- Netzwerkprogramming
--- Sockets
--- ...
Thema: C
-- Pointer
--- ...

Das Problem ist, ich will nicht für jedes Thema einen eigenen Controller und Model aufbauen, das widerspricht auch dem DRY-Prinzip. Wie würdet ihr es lösen?
Ich hab mir gedacht, das man es in einer einzigen Datenbank speichert, wo man beim Erstellen eines Beitrags die Themen per Drag-Drop auswählen kann.
Da ich später noch eine Suchfunktion einbauen will, kann ich so leicht nach Themen oder Tags suchen.


melden

Programmieren: Hilfe & Austausch

13.03.2013 um 16:57
@AnGSt
es ist schwer zu sagen wie man es in deinem fall am besten macht.
das musst du wissen. es gibt halt die möglichkeit das ganze nur über die session zu machen, und allgemeine daten aus der datenbank für jeden nichtregistrierten zu ziehen.
oder aber man macht es so wie du wolltest. oder man erstellt ein demo-user der wiederum über cookies/session personalisiert wird. es führen viele wege nach rom, die frage ist nur wie aufwändig das ganze ist und werden soll.


melden

Programmieren: Hilfe & Austausch

13.03.2013 um 17:00
@alliswrong
Ich verstehe gar nicht wo der Sinn eines Demo-Users sein soll. Es reicht doch wenn der Gast weiß, was er als nicht Registrierter User so alles verpasst. :D


melden

Programmieren: Hilfe & Austausch

13.03.2013 um 17:02
@Repulsor
wenn aber bestimmte daten aus der datenbank benötigt werden und alles über eine userverwaltung läuft wäre das der einfachste weg.


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

13.03.2013 um 17:02
@Repulsor

Könnte sein, dass der potentielle Benutzer sich garnicht anmelden will, aber alles genau ausprobieren.


melden

Programmieren: Hilfe & Austausch

13.03.2013 um 21:04
@AnGSt
@alliswrong
Ok dann macht es sinn.

AGS, ich würde es auch so machen wie du es vorgeschlagen hast, ein Dummy-Konto für jeden Gast, der die Demo ausprobieren will, automatisch erzeugen und in die Datenbank eintragen + Cookies. Dann am Ende der Session entweder löschen oder was anderes machen ...


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

13.03.2013 um 21:25
@Repulsor

Ok, die Session ist erst zu Ende (mit session_destroy() ) wenn sich jemand aus loggt. Wenn der Gast zwar schon in der DB ist, sich aber noch nicht richtig ein geloggt hat, wie kann ich dann wissen wann die Session zu Ende ist?


melden

Programmieren: Hilfe & Austausch

13.03.2013 um 21:31
@AnGSt
indem du per ajax alle paar minuten einen request an den server schickst und die zeit protokollierst.
ein cronjob script geht dann durch die db und löscht alle, die seit x minuten kein update mehr erhalten haben.


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

13.03.2013 um 21:44
@alliswrong

Versteh ich nicht. Ajax kenne ich nur als etwas, das vom javascript auf der html seite zum server gesendet wird und dann ein echo zurückbekommen kann. an sonsten hab ich jetzt das ganze mal so programmiert, dass eben je nach ausmaß der reinen Testnutzung mehr oder weniger viele verlassene Tempuser da rum liegen. Wie ich die weg bekomme ist ein ganz anderes Problem.


melden

Programmieren: Hilfe & Austausch

13.03.2013 um 21:56
@AnGSt
ich würde es so machen:

Der nicht-registrierte user wird in der db angelegt. Das temp-user objekt braucht in der datenbank ein datumsfeld, nennen wir es lastupdate.

Wenn der user das erste mal die seite besucht, wird ein temp-user objekt in der db gespeichert, inkl. des lastupdate felds.

Sobald dein User nun eine seite wechselt (auf deinem server), wird ein ajax-request an e updatetempuser.php gesendet. In der updatetempuser.php wird das datumsfeld in der temp-user tabelle aktualisiert (passend zum user natürlich, nicht alle ;))

Gleichzeitig wird alle, sagen wir mal 2 Minuten, per ajax ein request vom client browser an den server geschickt (updatetempuser.php).

Nun lässt du einmal täglich oder stündlich ein cronjob laufen, der ein script ausführt. Dieses script löscht alle temp-user aus der db, die länger wie 2 minuten kein update mehr hatten.
fertig ;)


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

14.03.2013 um 19:38
Frage wegen der allgemeinen Benutzerverwaltung,

ist es sicher, wenn ich jemand, der ein Passwort vergessen hat, zwar eine Mail mit einem Code sende, dann aber bei der Eingabe dieses Codes (muss mit Code in der Session übereinstimmen) in die Website gleich wieder vollen Zugriff gebe? Ich meine, wenn ich ihm dann nur erlauben will, ein neues Passwort zu wählen und sonst nichts, dann kommt er ohne weiteres auch wieder ganz rein. Also warum nicht durch die eMail gleich rein lassen, mit dem Hinweis ein neues Passwort zu wählen? Was meint Ihr?

ps: der Code wird beim ersten Seitenaufruf nach der Versendung der Mail gleich wieder aus der Session gelöscht.


melden

Programmieren: Hilfe & Austausch

14.03.2013 um 21:40
@AnGSt
das ist pot wie deckel, da derjenige der den code hat, sowieso ein neues passwort setzen und somit zugriff erlangen kann. um das ganze aber etwas sicherer zu machen, sollte der code nur eine bestimmte zeit gültig sein, etwa 2 stunden oder sowas. weiterhin haben viele portale zusätzlich noch eine sicherheitsfrage, bevor sie ein neues passwort verschicken oder erstellen lassen.


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

14.03.2013 um 21:43
Ahja, also das mit der Sicherheits-Geheim-Frage und Antwort baue ich ein. :)


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

15.03.2013 um 22:00
Sicherheitsfrage: eingebaut
Timeout: eingebaut

was will man mehr


melden

Programmieren: Hilfe & Austausch

15.03.2013 um 22:12
@AnGSt
Vielleicht noch wie bei Google? :)


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

15.03.2013 um 22:13
was google?


melden

Programmieren: Hilfe & Austausch

15.03.2013 um 22:17
@AnGSt
Wenn du es nicht kennst, ist eh egal.

Kurz: Google hat offensichtlich noch paar zusätzliche Algorithmen die erkennen sollen ob es sich wirklich um den User handelt oder ob es doch nur ein Hacker ist. Kannst es ja mal selbst ausprobieren, wenn du ein Google-Acc hast, einfach auf Passwort vergessen. ;)


melden

Programmieren: Hilfe & Austausch

16.03.2013 um 19:30
@AnGSt
das reicht aus. ein cracker müsste erst mal den user email account hacken und dann auch noch die sicherheitsantwort kennen. bei gut gewählter frage nahezu unmöglich, es sei denn ein guter bekannter knackt sein mail postfach :D


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

16.03.2013 um 22:01
@alliswrong

Ich habe mir allerdings gespart, dass der User seine Sicherheitsfrage selber stellen muss, sondern frage allgemein immer nach dem "ersten lehrer/chef". Denn sonst müsste ich einen extra turn machen und vorher schonmal die frage aus dem account lesen und dann nochmal ein formular an zeigen. außerdem habe ich die frage nur optional gemacht, falls ein user keine sicherheit wünscht.


melden