Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] PHP-MySQL-Freischaltung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema [Erledigt] PHP-MySQL-Freischaltung.

    [Erledigt] PHP-MySQL-Freischaltung

    Ich habe folgende Frage!

    Jeder kennt das du registrierst dich auf einer Webseite und bekommst dann eine Email zugeschickt, erst wenn du die Emailadresse über einen Link bestätigt hast wirst du freigeschaltet.

    Die große Frage ist: WIE GEHT DAS?

    Den das steht in keinem Buch wo man das lernen kann, also kann mir da jemand ein paar tipps geben?


    BItte danke

  • Gast-Avatar
    Ein Gast antwortete
    jo so hab ichs bisher gemacht aber bei rund 8 spalten aber wenns doch auch so funktioniert dann is es ja egal

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Wenn sich einer einloggt, dann gibt's diesen Namen ja nur einmal. LIMIT 1 sorgt dafür dass nur ein Datensatz ausgelesen wird. Da es den ja eh nur einmal gibt, funktioniert alles.
    Du kannst das LIMIT 1 auch weglassen, ich bau's aber ein, weil ich dann sehe, dass ich danach keine Schleife beginnen muss.
    Beim Löschen kann es auch unschöne Fehler vermeiden. z.B wird bei einer falschen Abfrage nur ein Datensatz und nicht alle gelöscht.
    Ach ja, zum Sternchen: schreib lieber die ganzen Namen der Felder untereinander (beim letzten kein Komma!):
    Code:
    name,
    passwort,
    date,
    ...
    Dann weist du genau was du auslesen und weiterverarbeiten musst.
    mfg RudiS

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    hey super hat geklappt viele thx an dich das * brauch ich im mom schon für das einloggen und status anzeigen aber wenn ichs nichmehr brauche dann weis ichs wenigstens

    und das LIMIT 1 sorgt dafür das nur 1 datensatz ausgelesen wird aber trotzdem klappt der login warum das?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Also das LIMIT 1 sorgt dafür das nur ein Datensatz ausgelesen wird, ist nicht unbedingt nötig, verwende ich aber zur Übersicht.
    Du solltest * nicht verwenden, da er da alle Felder ausliest, du diese aber nicht unbedingt benötigst. Außerdem ist es übersichtlicher, denn dann weist du, welche Werte du verarbeiten musst.
    Hier musst du aber nur date auslesen, da ich ja nur das Datum prüfen will.
    mfg RudiS

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    ui so allerlei nicht verständliches zeugs hast du da drin

    also wofür brauch ich denn jetzt LIMIT 1;

    und wenn ich alle datensätze aus der datenbank lesen will brauch ich ja ein SELECT * ... oder?

    ok ich stell die spalte wieder auf DATE und probiers schnell aus

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Nur damit ich das richtig verstehe, dieser Code funktioniert also nicht:
    Code:
    $sql = "SELECT
              date
            FROM
              userarea
            WHERE
              name = '".$name."'
            LIMIT 1;
           ";
    $result = mysql_query($sql) or die(mysql_error());
    if (mysql_num_rows($result) == true)
     {
      $row = mysql_fetch_assoc($result);
      // ausgelesenes Datum ungleich jetziges Datum:
      if ($row['date'] != date('Y-m-d'))
       {
        $sql = "UPDATE
                  userarea
                SET
                  date = NOW()
                WHERE
                  name = '".$name."'
                LIMIT 1;
               ";
        $result = mysql_query($sql) or die(mysql_error());
       }
     }
    Ich bin jetzt davon ausgegangen, dass du den Spaltentyp von date auf DATE gesetzt hast. Du müsstest nur noch $name anpassen.
    Ich hoffe das hilft dir jetzt weiter.
    mfg RudiS

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    also

    hab da ein problem mit der if-abfrage normal sollte da rauskommen false aber komischerweise wird true ausgegeben
    Code:
    	  if ($get["date"] <> $nowdate) {
    naja aber das hab ich überbrückt indem ich die else anweisung rumgedreht habe

    jetzt hab ich aber das problem das da nicht 2004-07-17 eingetragen wurde sondern 1980

    also reinschreiben tut er was aber leider das falsche

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Also ich versteh das nicht. Bei mir geht's problemlos.
    Hast du noch weitere Probleme die ich aber noch nicht entdeckt hab?
    mfg RudiS

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    jop bis eben war es DATE jetzt ist es VARCHAR im anderen thread hab ich acuh schon gesagt das irgendwas mit der if abfrage nich stimmt (und dem einfügen)

    mfg wing

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Welchen Spaltentyp hat den dein Feld. Es müsste DATE sein.
    mfg RudiS

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von Wing
    bei dir oben is das doch auch einfach mit NOW() oder?!

    hab sogar mal versucht 2012-04-05 anstatt $nowdate bzw. NoW() einzufügen aber das ging auch nich
    was hast du eigentlich in der Datenbank eingestellt?
    Denn normal würde es 20120405 gespeichert werden. Also ohne den Strichen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    bei dir oben is das doch auch einfach mit NOW() oder?!

    hab sogar mal versucht 2012-04-05 anstatt $nowdate bzw. NoW() einzufügen aber das ging auch nich

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Was heißt denn es funzt nicht?
    Wird eine Fehlermeldung ausgegeben?
    Passiert einfach nichts?
    Also bei mir geht das, aber du musst es genauso schreiben wie bei mir als nicht 'NOW()', weil er es sonst einfach als Text einfügen will.
    mfg RudiS

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    hmm also eigentlich is alles richtig bis auf das was der einsetzen muss

    mit NOW() funzts nich und alles andere was ich rumprobiert habe auch nich aber der username is schon richtig hab ich etwas oben bei sql SELECT auch

    Einen Kommentar schreiben:

Lädt...
X