Archiv verlassen und diese Seite im Standarddesign anzeigen : PhP[User auslesen] und MySql[3D Array]
BobZero
2007-01-24, 08:36:50
Bin grad am basteln einer kleine Skript sache... aber irgendwie hängst bissel durch... ich würde gern in meinem Skript den User der eingeloggt ist auslesen...hab mir dazu auch schon verschiedene Sysvars anzeigen lassen, aber die Zeigen nur alle die IP an... kann ich die Auflösen? Bzw den Rechner-Name herrausfinden? Brauche irgendwas womit ich das Ding identifizieren kann. Dann noch was und Zwar möchte ich gern sowas wie ein Forum skripten und brauche quasi ein 3D Array wo ich immermehr einträge möglich mache... quasi welches in einem Feld Array eigenschaften hat das nach hinten bzw in die 3. Dimension unendlich dehnbar ist...
Ja, Stimmt mit dem 3D Array ding hab ich auch schon an ne 2. Tabellen mit Key gedacht aber das finde ich umständlicher als ein Arraymäßiges Feld in ner Table...
Meine Probleme sind sehr strange... selbst für mich aber vielleicht kennt jmd ne lösung?
Danke im Vorraus
MfG BobZero
Bin grad am basteln einer kleine Skript sache... aber irgendwie hängst bissel durch... ich würde gern in meinem Skript den User der eingeloggt ist auslesen...hab mir dazu auch schon verschiedene Sysvars anzeigen lassen, aber die Zeigen nur alle die IP an... kann ich die Auflösen? Bzw den Rechner-Name herrausfinden? Brauche irgendwas womit ich das Ding identifizieren kann.
Identifizieren geht per IP oder Cookie. Irgendwelche verwertbaren Namen oder gar den eingeloggten User kriegst du so aber nicht raus, zum Glück.
Dann noch was und Zwar möchte ich gern sowas wie ein Forum skripten und brauche quasi ein 3D Array wo ich immermehr einträge möglich mache... quasi welches in einem Feld Array eigenschaften hat das nach hinten bzw in die 3. Dimension unendlich dehnbar ist...
Ja, Stimmt mit dem 3D Array ding hab ich auch schon an ne 2. Tabellen mit Key gedacht aber das finde ich umständlicher als ein Arraymäßiges Feld in ner Table...
Ich empfehle dir DRINGEND, dir mal ein bißchen Wissen über Datenbankdesign anzulesen. Was du hier machen willst, widerspricht nämlich gleich mal einigen Grundsätzen ;)
-huha
BobZero
2007-01-24, 08:59:24
Nicht gleich so böse... ich hatte da mal "Wissen", doch die Zeit...
Aber schön das du nörgeln kannst!
Da du anscheinend dieses Wissen hast... bitte klär mich auf? Was mach ich Falsch? Hilfe Forum steht, dachte ich für "Hilfe" und nicht für "Du kannst nichts"...
Cookies sind nicht so drin... Account verteilung wäre auch shice! Daher ist Windows Logon eigentlich der einzige Weg, da man nicht Rechner bezogen sonder Abteilungsbezogen arbeiten soll, und da eine Abteilung einen Login hat ist das sehr sehr sinnvoll.Sollte vielleicht noch erwähnen das es sich um ein Intranet handelt...
MfG BobZero
Nicht gleich so böse... ich hatte da mal "Wissen", doch die Zeit...
Aber schön das du nörgeln kannst!
Ich will ja nicht nörgeln, aber da du in deinem Beitrag ausdrückst, daß du selber nicht so recht weißt, was du willst, halte ich es für sinnvoll, dir den Rat zu geben, dir zuerst grundlegendes Wissen anzueignen.
Cookies sind nicht so drin... Account verteilung wäre auch shice! Daher ist Windows Logon eigentlich der einzige Weg, da man nicht Rechner bezogen sonder Abteilungsbezogen arbeiten soll, und da eine Abteilung einen Login hat ist das sehr sehr sinnvoll.Sollte vielleicht noch erwähnen das es sich um ein Intranet handelt...
Der Spaß mit dem Windows-Logon ist wohl nicht möglich. Werden die IP-Adressen Abteilungsbezogen vergeben? Wenn ja, kannst du die Abteilung ja aus der IP-Adresse schließen.
Alternativ wäre es natürlich möglich, auf den Rechnern beim Login über das Loginscript eine Seite aufzurufen, der du z.B. per URL den Benutzernamen übergibst. Wirklich sicher ist das aber natürlich nicht, also ist gegebenenfalls ein Login mit Paßwort und Cookies vorzuziehen--kommt eben ganz darauf an, was da gemacht werden soll und welcher Grad an Sicherheit benötigt wird.
Zur Datenbank: Normalerweise sagt man, daß Daten atomar sein sollen. Arrays sind das selbstverständlich nicht. (Gegebenenfalls ist die Lösung dennoch sinnvoll, allerdings nur unter ganz bestimmten Designkriterien)
Da du leider auch nicht angibst, was du genau machen willst, weiß ich auch nicht, was dort wie gespeichert werden soll und kann dir keine weiteren Hinweise geben.
-huha
BobZero
2007-01-24, 12:53:07
Es geht darum eine Art Helpdesklösung zu bauen, dh jeder Trägt ein was kaputt ist oder sonstwie nicht geht. Das wichtige ist eben das er quasi erkannt wird, dh es muss fälschungssicher seine Anmeldung erkannt werden, da bei uns in der Firma die EDV nicht selten sinnlos und wüst beschimpft wird. Es ist eben nicht mit den IPs machbar da die leute auch an anderen Rechnern arbeiten aber nur den Login ihrer Abteilung haben.
Das ding mit der Tabelle werd ich jetzt so umsetzten das ich zu jedem Fall ne Tabelle, mit namen der Fall-ID, mache wo ich dann die entsprechenden einzelnen Posts einfüge... also ich denke das ist quasi die Richtige Umsetzung... und bei Problemlösung bzw nach einer gewissen Zeit die Tabelle wieder lösche um unnötigen Datenmüll zu verhindern.
Was hältst du davon?
MfG BobZero
PS. :Ich weiß schon was ich will, bloß es umzusetzten ist nicht immer so easy wie sich ne alternative zu überlegen deshalb hab ich mehrer ansätze verfolgt um zugleichen zu können welche Möglichkeiten mir jede Variante bietet....
Du willst quasi ein Forum programmieren. Eventuell kannst du dir ja bereits vorhandene einfache Forenlösungen ansehen und sie so abändern, daß sie dem entsprechen, was du brauchst (dabei aber auf die Lizenz achten!)
Beispiel für die Umsetzung:
Die Tabelle requests enthält die Felder
id, user
Die Tabelle postings enthält die Felder
id, request_id, user, text
Dann mußt du eben noch die entsprechenden queries basteln und die Sache funktioniert prächtig ;)
-huha
Gil-galad
2007-01-24, 19:16:22
Das wichtige ist eben das er quasi erkannt wird, dh es muss fälschungssicher seine Anmeldung erkannt werden, da bei uns in der Firma die EDV nicht selten sinnlos und wüst beschimpft wird. Es ist eben nicht mit den IPs machbar da die leute auch an anderen Rechnern arbeiten aber nur den Login ihrer Abteilung haben.
Läuft PHP auf nem Apache oder nem IIS?
Bei Apache würde ich es mit mod_auth_sspi bzw. mod_auth_ntlm probieren. Damit müsste sich sich der User aus $_SERVER["LOGON_USER"] auslesen lassen (Domäne\Benutzername). Bei IIS funktioniert das von Haus aus. Da muss man lediglich die Anonyme Authentifizierung ausschalten, dann kann man auch aus $_SERVER["LOGON_USER"] die Domäne und den Benutzernamen auslesen. Das probier ich grad auf Arbeit, allerdings ist $_SERVER["LOGON_USER"] nach nem Reload der php-Datei leer und ich weiss noch nicht wieso :confused:
Läuft PHP auf nem Apache oder nem IIS?
Bei Apache würde ich es mit mod_auth_sspi bzw. mod_auth_ntlm probieren. Damit müsste sich sich der User aus $_SERVER["LOGON_USER"] auslesen lassen (Domäne\Benutzername). Bei IIS funktioniert das von Haus aus. Da muss man lediglich die Anonyme Authentifizierung ausschalten, dann kann man auch aus $_SERVER["LOGON_USER"] die Domäne und den Benutzernamen auslesen. Das probier ich grad auf Arbeit, allerdings ist $_SERVER["LOGON_USER"] nach nem Reload der php-Datei leer und ich weiss noch nicht wieso :confused:
weil es mit php nicht so einfach funktioniert wie du dir das vorstellst ;)
wäre schön, wenn es so einfach ginge. die lösung ist mehr als kompliziert. deswegen verwendet man php für sowas unter windows normalerweise nicht, einfach nicht geeignet (machen nur so linux-superfreaks ;) )
An den Threadsteller. Habe bereits ein Intranet mittelgroßen Ausmaßes programmiert und falls du unbedingt über Win-Logons arbeiten willst, musst du mir einfach glauben, dass du mit ASP.NET viel viel besser dran bist, eigentlich fast nicht rundum kommst. Es ist hundert mal einfacher. Habe es auch extra für diesen Zweck gelernt, konnte allerdings .NET schon, ASP war mir aber neu. Und es hat sich gelohnt. Mit PHP kommst du nicht weit, da müsste schon einiges da sein.
Die Lösung mit den IP's oder Cookies ist doch totaler Pfusch wenn das auch sicher sein soll. Das Schlüsselwort heisst nach wie vor integrierte Windowsauthentifizierung. Das gute daran ist, dass auch die Passwörter nicht über das Netzwerk übertragen werden (vgl. win-anmeldeverfahren), und das ist auch eine Sicherheit, die nicht unbedingt zu verachten ist, auch wenn es sich nur um ein Intranet handelt. Alles andere ist eher umständlich oder überflüssig.
Wenn du IIS und ASP verwendest, dann benötigst du keinerlei Wissen über Datenbanken, sondern brauchst eigentlich nur if/else und user.name, das sind genau zwei zeilen, dürfte in rein php etwa >100 zeilen ausmachen einschl. konfiguration.
So nen Helpdesk hast du quasi mit relativ wenig Lernaufwand in nem halben Tag zusammengebastelt, wenn du die Datenbanktools von MS Web Developer Express nutzen kannst.
BobZero
2007-01-25, 08:15:32
Das mit dem ASP hab ich jetzt auch schon mehrfach gehört, die IP bekomm ich mittlerweile und auch den Rechnernamen, aber das bringt mich nicht zum User. Deshalb würde ich eventuell das Ding mit ASP probieren, aber da ich damit auch noch nix gemacht habe würde mich das wieder zeit kosten, was ist mit MySQL anbindung in ASP? Wie sind da die möglichkeiten? Genauso easy wie in PHP? Das ist mir sehr wichtig! Was gibt es für SDKs? Freeware? Hab dieses Quartal mein Budget für Software schon ausgenutz (PhotoShop CS2 + Premiere), mal sehen was mein Chef sagt aber eigentlich wäre mir ne FreewareSDK schon sehr lieb. Kannst du paar tolle Seiten linken mit Tutorials etc?
Danke für den tip.
MfG BobZero
Gil-galad
2007-01-25, 13:22:34
weil es mit php nicht so einfach funktioniert wie du dir das vorstellst ;)
Komisch, auf Arbeit funktioniert das recht einfach. Anonyme Authentifizierung ausschalten, Windows Authentifizierung einschalten und schon kann man per PHP die Domäne und den Nutzer auslesen :P
BobZero
2007-01-25, 14:08:03
wie machst du das bitte? Ich rede von Nutzer nicht vom Rechnername. Rechnername ist kein Problem... beim angemeldeten Nutzer hängts raus!
MfG Bob
BobZero
2007-01-25, 15:38:10
So Jungs... Problem gelöst...
hab ein ASP script gebaut das eine form macht und an ein PHP Script den User übergibt...bin überglücklich und danke den tollen ideen der anderen...
MfG BobZero
Gil-galad
2007-01-25, 17:07:16
wie machst du das bitte? Ich rede von Nutzer nicht vom Rechnername. Rechnername ist kein Problem... beim angemeldeten Nutzer hängts raus!
MfG Bob
Ich rede auch vom Nutzer. In der $_SERVER["LOGON_USER"] steht bei mir zum Beispiel: Domäne\Nachname.Vorname
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.