andy: ersten login erkennen

hallo und schönen guten abend,

hat einer eine idee, wie ich nachdem sich der benutzer angemeldet hat und seine daten ordnungsgemäß in die mysql übertragen sind, seinen ersten login erkennen kann, um ihn evtl. dann eine spezielle seite ( oder inhalte auf der eingeloggten seite )zu präsentieren, mit erklärungen usw. die darauffolgenden logins sind nicht interessant.

vielen dank für eure hilfen

andy

  1. du kannst bei der registration des users in einer textdatei (oder datenbank) speichern, dass der user sich noch nicht eingeloggt hat,
    nach dem ersten login wird die datei/der mysql-eintrag wieder gelöscht so dass danach nicht die anleitungssite angezeigt wird.

    tobias - http://toweter.de - http://source-code.de - http://forum-php.de - http://php.de - http://selfphp.info

  2. hat einer eine idee, wie ich nachdem sich der benutzer angemeldet hat und seine daten ordnungsgemäß in die mysql übertragen sind, seinen ersten login erkennen kann, um ihn evtl. dann eine spezielle seite ( oder inhalte auf der eingeloggten seite )zu präsentieren, mit erklärungen usw. die darauffolgenden logins sind nicht interessant.

    Hi Andy,
    Du koenntest einen Eintrag in die User-DB machen, á la 'isNewHere' und den entsprechend abfragen. Das hat nur dann Sinn, wenn die Moeglichkeit besteht, dass der User sich zwar anmeldet, aber erst Tage spaeter tatsaechlich vorbeikommt. Ich hab bei mir z.B. einen Eintrag 'hasAcceptedTermsOfUse'. Abhängig davon bekommt er Nutzungsbedingungen angezeigt, solange, bis er sie annimmt.

    Oder Du machst nach erfolgtem Eintrag eine Weiterleitung zur User-Startseite und übergibst einfach eine Variable per URL, also z.B.

    header ('Location: ./user.php?m=firstVisit');

    Das passiert bei mir, nachdem der User die Nutzungsbedingungen akzeptiert hat.

    Gruss, Eddie

    1. hat einer eine idee, wie ich nachdem sich der benutzer angemeldet hat und seine daten ordnungsgemäß in die mysql übertragen sind, seinen ersten login erkennen kann, um ihn evtl. dann eine spezielle seite ( oder inhalte auf der eingeloggten seite )zu präsentieren, mit erklärungen usw. die darauffolgenden logins sind nicht interessant.

      Hi Andy,
      Du koenntest einen Eintrag in die User-DB machen, á la 'isNewHere' und den entsprechend abfragen. Das hat nur dann Sinn, wenn die Moeglichkeit besteht, dass der User sich zwar anmeldet, aber erst Tage spaeter tatsaechlich vorbeikommt. Ich hab bei mir z.B. einen Eintrag 'hasAcceptedTermsOfUse'. Abhängig davon bekommt er Nutzungsbedingungen angezeigt, solange, bis er sie annimmt.

      Oder Du machst nach erfolgtem Eintrag eine Weiterleitung zur User-Startseite und übergibst einfach eine Variable per URL, also z.B.

      header ('Location: ./user.php?m=firstVisit');

      Das passiert bei mir, nachdem der User die Nutzungsbedingungen akzeptiert hat.

      Gruss, Eddie

      danke, ja das war der richtige denkanstoß ;) ich werde beim ersten login abfragen, ob im feld neu welches standard auf ja steht immer noch ja steht, nachdem er die erklärungen und inhalte für neue gesehen hat, gibts ne variable die ja in nein ändert. super

      danke

    2. Hi,

      header ('Location: ./user.php?m=firstVisit');

      http erfordert beim Location-Header eine absolute URL, keine relative.

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      1. Hi Andreas,

        http erfordert beim Location-Header eine absolute URL, keine relative.

        Ehrlich? Das waer verdammt schlecht, denn bisher mache ich das immer so. Meinst Du, ich kann damit Probleme bekommen?
        Besser gefragt: Gibt es definitiv User, die damit Probleme bekommen, oder ist es "nur" ein Verstoß gegen den Standard, funzt aber trotzdem?

        Danke,
        Eddie

        1. Hallo,

          http erfordert beim Location-Header eine absolute URL, keine relative.
          Ehrlich? Das waer verdammt schlecht, denn bisher mache ich das immer so.

          Dann machst Du es immer falsch.
          RTFM - lies das Handbuch, in dem Fall zur Funktion header():
          http://www.php.net/manual/de/function.header.php
          <ZITAT>
          "Anmerkung:  HTTP/1.1 verlangt einen absoluten URI inkl.
          dem Schema, Hostnamen und absoluten Pfad als Argument
          von Location:"
          </ZITAT>

          Auf der Seite findest Du auch einen Link zur HTTP/1.1 Specification (RFC 2616)
          und eine Beschreibung, wie Du mit PHP eine vollstaendige URL zusammenbauen kannst.

          Besser gefragt: Gibt es definitiv User, die damit Probleme bekommen, oder ist es "nur" ein Verstoß gegen den Standard, funzt aber trotzdem?

          Es spielt keine Rolle, ob es bei 1% oder 5% der Benutzer nicht "funzt".
          Es ist einfach falsch.

          Aendere es ueberall, und gut ist.
          Wo es bei Dir ueberall vorkommt, findest Du mit einer
          dateiuebergreifenden Suche nach "header(" ja schnell heraus.

          Da Du jetzt ja weisst, dass es falsch ist, warum willst Du es dann
          unbedingt immer wieder falsch machen?
          Und nein, Faulheit ist kein guter Grund.

          Gruesse,

          Thomas

          1. Und nein, Faulheit ist kein guter Grund.

            ABER DOCH MEIN LIEBLINGSGRUND (Quengel ...) !!!

            Danke Dir Thomas, ich mach's gleich, sonst mach ich's nie.
            Eddie

          2. Tja, hallo Thomas,
            jetzt bin ich's nochmal.

            warum willst Du es dann
            unbedingt immer wieder falsch machen?
            Und nein, Faulheit ist kein guter Grund.

            Weil das System unter 3 verschiedenen Domains laeuft:

            • localhost
            • englische Seite
            • deutsche Seite
              Und die Weiterleitung soll natuerlich stimmen.

            Wenn ich das jetzt ueberall anpasse, werde ich wahnsinnig, bei insgesamt 53 Funden.
            Drum traue ich mich, jetzt nochmal die Frage zu wiederholen: was muss ich fuer Konsequenzen befuerchten, wenn ich es doch so lasse?

            Eddie

            1. Moin!

              Drum traue ich mich, jetzt nochmal die Frage zu wiederholen: was muss ich fuer Konsequenzen befuerchten, wenn ich es doch so lasse?

              Dass die Weiterleitung nicht funktioniert und der HTTP-Client so im Niemandsland hängenbleibt.

              Mit anderen Worten: Es passiert das Schrecklichste, was man sich vorstellen kann: Deine Seite geht kaputt!

              Was die unterschiedlichen Hostnamen angeht: PHP weiß in $_SERVER['HTTP_HOST'], welchen Hostnamen der Browser beim Aufruf verwendet hat. Den kannst du 1:1 übernehmen.

              Außerdem weiß PHP in $_SERVER['REQUEST_URI'] und anderen Werten (mußt du mal gucken, was für dich zutrifft), welche absolute URL angefordert wurde, um dein Skript aufzurufen, welches dann die Weiterleitung senden soll.

              Mit anderen Worten: Du kannst dir aus deiner bisherigen, relativen Angabe der URL und diesen beiden Werten eine absolute URL basteln, die sich dynamisch an die tatsächlichen Verhältnisse anpasst. Am sinnvollsten machst du da eine eigene Funktion draus, die du "redirect('../relative/url.html')" nennst und eben relativ fütterst. Diese Funktion kann dann erstmal prüfen, ob die header schon gesendet wurden (das gibt immer so unschöne Fehlermeldungen), und dann die absolute URL zusammenbasteln und mit header() wegschicken. Ein abschließendes exit(); könnte das Skript davor bewahren, nachträglich noch Unsinn an den Browser zu senden, ist aber wirklich optional.

              - Sven Rautenberg

              --
              ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|