Re: Datum subtrahieren, vergleichen oder so :o) ENDE gut, alles gut :o) - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Robert (133 Beiträge) am Dienstag, 3.Dezember.2002, 23:38.
    Re: Datum subtrahieren, vergleichen oder so :o) ENDE gut, alles gut :o)

      Ich habe das folgendermaßen gelöst:

      In der Datei Loginverzeichnis wird das $SDatum zusammen mit einer speziellen Session_id gepeichert.
      Im folgenden Beispiel muß der Nutzer innerhalb von 300 Sekunden = 5 Minuten eine weitere Seite aufrufen, sonst wird seine Nutzerrolle auf null gesetzt. Diese Zeiteinstellung kann natürlich beliebig korrigiert werden.

      sub Registrierung
      {
      $Datum=datum("jetzt","intern");
      $A_Datum=datum("-.300","intern");
      get "Session_id==$_REMOTE_ADDR","Loginverzeichnis";
      if ($Session_id eq $_REMOTE_ADDR && $A_Datum lt $SDATUM)
        {$Nutzer=$Rolle;
        }
      }
      

      Liebe Grüße aus Karlsruhe

      Robert


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Andreas Dhein (8 Beiträge) am Dienstag, 3.Dezember.2002, 01:01. WWW: www.Lykershausen.de
    Datum subtrahieren, vergleichen oder so :o)

      Hallo...

      S I T U A T I O N:
      Ich möchte im Gästebuch erreichen, dass man nach dem Absenden des Eintrags seinen (und nur seinen!!) Eintrag noch nachträglich ändern kann.
      Das funktioniert bereits...

      IP mitloggen und bei der Ausgabe der einzelnen Beiträge auf IP überprüfen und dann den "Zauber-Ändere-Dich-Link" ausgeben.

      P R O B L E M :
      Sollte mal einer zufällig eine IP bekommen, die mit einer IP im Gästebuch übereinstimmt, so kann er den Eintrag (wahrscheinlich dann nicht mal sein eigener...) ändern und sogar löschen!!!

      Also hätte ich gern in meiner Abfrage:

      if ($IP eq $_REMOTE_ADDR){
      
      ...
      }

      berücksichtigt, dass ein Ändern nur maximal x-Minuten möglich ist...


      Hab versucht ein wenig rumzurechnen:

      $jetzt=datum('jetzt');
      $min = jetzt-$Datum+15;  
      if($min<15){..Code..}
      

      # $Datum ist die db-Variable und die 15 sollen Minuten sein

      Etwas trivial (zugegeben) aber gehen tuts sowieso nicht... :o)

      Bin für jede Hilfe dankbar...

      Grüsse Andi

      PS: Die Werbung bei dem kostenlosen Angebot finde ich berechtigt!! Allerdings könnten vor der baseportal.de Fehlermeldung 2-3 <br> nicht schaden... Sonst muss ich immer so lang warten :o(

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 3.Dezember.2002, 03:56.
    Re: Datum subtrahieren, vergleichen oder so :o)

      Mmh, wohl so:

      if($IP eq $_REMOTE_ADDR && $Datum gt datum("jetzt-15:00", "intern"))
      { ... }
      

      "Datum" mit Zeitpunkt "Erstellung+Änderung"...

      > Allerdings könnten vor der baseportal.de Fehlermeldung 2-3 <br> nicht schaden... Sonst muss ich immer so lang warten :o(
      

      Wie meinstn das? Bei welcher Fehlermeldung?

     Antworten

    Beitrag von Andreas Dhein (8 Beiträge) am Dienstag, 3.Dezember.2002, 10:37. WWW: www.Lykershausen.de
    Re: Verdeckte Fehlermeldungen in baseportal.de

      Hab mich vielleicht nicht sehr deutlich ausgedrückt. Sorry

      Wenn ich wieder mal Mist gebaut hab:
      z.B. einen Semikolon am Ende eines Perl-Befehls vergessen...

      Dann wird die baseportal-Mitteilung (die im allgemeinen doch hilfreich ist) leider durch die Einblendwerbung etwa 10 sec. verdeckt...

      Schade eigentlich, denn zu lösen wäre der Umstand doch recht einfach mit 2-3 <br>'s

      Grüsse Andi

     Antworten

    Beitrag von Andreas Dhein (8 Beiträge) am Dienstag, 3.Dezember.2002, 11:14. WWW: www.lykershausen.de
    Re: Datum subtrahieren, vergleichen oder so :o)

      Danke schon mal... Die Eweiterung der Abfrage tut...
      Oder ?! (Sind 15:00 nicht 15 Stunden ?? 00:15 geht aber auch :o) hatte die Hochkommata vergessen !!)

      Ich hätte aber gern noch eine Rechnung dazu gehabt um dem User zu sagen ... Noch ungefähr x-Minuten Zeit...

      $systime=datum("jetzt-00:15", "intern");
      $dbtime=datum("$Datum", "intern");
      $min = $systime-dbtime;
      #Probeausgabe
      out "$Id : Jetzt: $systime Uhr... Eintrag um: $Datum Uhr also noch ".datum("$min", "Minute")." min. zum ändern...";
      

      Probeausgabe:
      5 : Jetzt: 2002.12.03,10:56.40#2 Uhr... Eintrag um: 2002.12.03,11:06.00#2 Uhr also noch 00 min. zum ändern...

      Was hab ich denn jetzt schon wieder verbockt ?!

      Grüsse
      Andi

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 3.Dezember.2002, 16:06.
    Re: Datum subtrahieren, vergleichen oder so :o)

      > Sind 15:00 nicht 15 Stunden ?? 00:15 geht aber auch :o)
      

      klar, hast recht, 00:15 sind die Minuten ,-)

      du kannst mit datumsen (daten) nich einfach so im code rechnen wie mit zahlen ($x-$y), richtig müsste es so gehen:

      out "Eintrag um $Datum also noch ".datum("$Darum-00:15","intern")."Minuten...";
      

      ;-)

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 3.Dezember.2002, 16:39.
    Re: Datum subtrahieren, vergleichen oder so :o)

      äh, muss natürlich so

      out "Eintrag um $Datum also noch ".datum("$Datum-00:15","intern")."Minuten...";
      

      ("Datum" statt "Darum") aussehen ,-)

     Antworten

    Beitrag von Andreas Dhein (8 Beiträge) am Dienstag, 3.Dezember.2002, 19:46. WWW: www.lykershausen.de
    Re: Datum subtrahieren, vergleichen oder so :o) ENDE gut, alles gut :o)

      Nun ja:

      Hab mich damit abgefunden, dass selbst wenn die "Datums" die gleiche "intern" Darstellung haben, damit nicht gerechnet werden kann... Obwohl ich immer dachte: So ein Computer rechnet in Sekunden ab dem 01.01.1970!!! (-> und dann muss das doch einfach gehen!!)

      Die Abschliessende Lösung:

      Ich sag dem Eintragenden einfach bis wann
      out datum("$Datum+00:15", "Stunde:Minute");
      
      er noch Zeit hat...

      Dann is zwar der Countdownspass futsch und die Uhr bei baseportal.de geht nicht unbedingt so, wie die Systemuhr des Rechners... Aber irgendwann muss man sich mal zufrieden geben :o)

      Übrigends:
      out "Eintrag um $Datum also noch ".datum("$Datum-00:15","intern")."Minuten...";
      
      hat einen kleinen Schönheitsfehler... die Minuten werden "intern" dargestellt und wenn ich "Minute" sage, dann muss ich noch eine Ausnahmebehandlung machen... und das ist mir dann doch zu wild... Gedankt wirds einem ohnehin kaum :o)


      Grüsse
      Andreas

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 3.Dezember.2002, 19:56.
    Re: Datum subtrahieren, vergleichen oder so :o) ENDE gut, alles gut :o)

      baseportal rechnet anders mit dem Datum, eben mit dem "intern"-Format. Ja, meine vorgeschlagene Lösung klappt tatsächlich auch nich, weil ja garnich die restlichen Minuten übrigbleiben... Naja, wenn Du zufrieden bist bin ichs auch ;-)

     Antworten

    Beitrag von Robert (133 Beiträge) am Dienstag, 3.Dezember.2002, 23:38.
    Re: Datum subtrahieren, vergleichen oder so :o) ENDE gut, alles gut :o)

      Ich habe das folgendermaßen gelöst:

      In der Datei Loginverzeichnis wird das $SDatum zusammen mit einer speziellen Session_id gepeichert.
      Im folgenden Beispiel muß der Nutzer innerhalb von 300 Sekunden = 5 Minuten eine weitere Seite aufrufen, sonst wird seine Nutzerrolle auf null gesetzt. Diese Zeiteinstellung kann natürlich beliebig korrigiert werden.

      sub Registrierung
      {
      $Datum=datum("jetzt","intern");
      $A_Datum=datum("-.300","intern");
      get "Session_id==$_REMOTE_ADDR","Loginverzeichnis";
      if ($Session_id eq $_REMOTE_ADDR && $A_Datum lt $SDATUM)
        {$Nutzer=$Rolle;
        }
      }
      

      Liebe Grüße aus Karlsruhe

      Robert

     Antworten

    Beitrag von Andreas Dhein (8 Beiträge) am Mittwoch, 4.Dezember.2002, 22:27. WWW: www.lykershausen.de
    Re: Datum subtrahieren, vergleichen oder so :o) WENN DANN DOCH ?!

      @ Christoph:
      

      Wenn es doch eine Lösung geben könnte (das entnehm ich mal dem :o), dann würd die mich doch interessieren...

      Idee... Gibt es ausser dem "intern" noch ein RAW-Format ???

      Denn dann müsste das gehen...

      Vielleicht bin ich jetzt aber schon zu spät mit meinem Eintrag :o(

      Grüsse Andi

     Antworten

    Beitrag von Sander (8133 Beiträge) am Dienstag, 3.Dezember.2002, 09:51.
    Re: Datum subtrahieren, vergleichen oder so :o)

      >> Allerdings könnten vor der baseportal.de Fehlermeldung 2-3 <br> nicht schaden... Sonst muss ich immer so lang warten :o(
      

      Recht hat er ;-)

      Sander

     Antworten

    Beitrag von Roger (141 Beiträge) am Mittwoch, 4.Dezember.2002, 12:11. WWW: www.einsam-zweisam.de
    Re: Datum subtrahieren, vergleichen oder so :o)

      Nicht ganz die antwort auf Deine Frage, aber Dein Problem verstanden, da ich auch in meiner Webseite den Beutzern die Möglichkeit bieten muß, eigene Einträge zu editieren.

      Warum möchtest Du das mit der ID lösen, ist vielleicht Sinnvoll in soweit, daß er den Text nach dem Senden noch mal überprüft und dann merkt, daß er Fehler gemacht hat. Hier würde ich ihm ein "Zwischentemplate" geben:

      Eintrag_lesen

      er kann korrekturlesen und dann bestätigen, hier kannst Du zu Not eine Übernahme erzwingen, wenn er das Fenster schließt oder verläßt.

      für spätere Änderungen kannst Du ihm die Möglichkeit geben ein Passwort anzugeben.
      Jetzt wünschst Du vielleicht nicht, daß er 3 Wochen später seinen Eintrag ändert, hier, ich benutze es in einem anderem Zusammenhang, könnte man zu einem Trick greifen.

      Immer wenn ein Template für das Gästebuch aufgerufen wird, da werden Einträge, die älter als eine bestimmte Zeit sind geändert. In deinem Fall:

      mod "Datum==!$TmpDatum",["passwort",neuesPasswort],"gaestebuch";
      

      Somit ist der Eintrag mit einem nur Dir bekannten Passwort geschützt. Aber so könntest Du die IP auch verschwinden lassen.

      Liebe Grüße

      Roger

     Antworten

    Beitrag von Andreas Dhein (8 Beiträge) am Mittwoch, 4.Dezember.2002, 22:36. WWW: www.lykershausen.de
    Re: Datum subtrahieren, vergleichen oder so :o)

      Hallo Roger...

      Tja... Die Ideen sind gar nicht mal so schlecht!

      ABER: Die IP soll bleiben, da in diesem Gästebuch sehr hart getextet wird und hier Abhilfe geschaffen werden muss, da man ja nicht gezwungen werden kann Realnames anzugeben!!! Dennoch... Es gibt Dinge (oder Sprüche), gegen die "muss" vorgegangen werden!!

      Die Sache mit dem Zwischentemplate hatte ich auch kurz... Nur: lesen und korrigieren tut keiner wirklich! Wenn bei Windoof während der Installation noch mal eine Bestätigung verlangt wird klicken 90% sowieso auf JA..
      Wenn aber im richtigen Gästebuch der Eintrag zu sehen ist (und dieser eigentlich nicht mehr geändert werden kann)... erst dann machen sich die Leute Gedanken und dann macht die Korrektur auch noch Sinn...
      Ein Template werde ich vielleicht im Forum anbieten, da ich Probleme mit mod und put in einem Template habe...

      Grüsse Andi

     Antworten

    Beitrag von Roger (141 Beiträge) am Donnerstag, 5.Dezember.2002, 08:13.
    Re: Datum subtrahieren, vergleichen oder so :o)

      Hallo Andi,

      ein Zwischentemplate könntest Du auch anbieten, daß zwar alles schon eingetragen ist, aber dennoch nur in diesem Zwischentemplate ein Korrekturbutton für exakt diesen Eintrag existiert.
      Wenn Du die ID beibehalten möchtest, auch ich logge die IPs mit und zeige dem User ständig seine eigene IP an, dann kannst Du dennoch eine Passworteingabe benutzen.
      Das wissen, daß ich auch später noch an meine Einträge komme, könnte ggf. den Nebeneffekt haben, daß ein User sich eher zu Wort meldet. Hat aber den Nachteil, daß Du natürlich auch nachträglich Änderungen auf deren juristischen Risiken prüfen solltest.
      Zumindest kannst Du, wenn Du nur die IP benutzt sie einfach löschen oder ersetzen, wenn sie "abgelaufen" ist.

      Ich mache das mit einer Sessionid so:

      if ($sessionid eq $sessid)
      {
      mod "sessionid==!$sessionid",[],"idtable";
      del "TimeStamp<-0,0:10", "idtable";
      }
      else
      {
      del "TimeStamp<-0,0:10", "idtable";
      }
      

      alle Einträge, die älter als 10 Minuten sind werden gelöscht.
      In Timestamp wird Datum/Uhrzeit der Erstellung und Änderung gespeichert. Wenn Der User mit der richtigen (wird als Zugangssicherung benutzt) sessionid das Template aufruft, dann wird durch den mod-Befehl das Datum wieder neu gesetzt (in der Datenbank einstellen) und die 10 Minuten beginnen neu.

      Wenn Du das jetzt immer zu Beginn eines Templates einträgst, dann kannst Du sicher sein, daß nie ältere Einträge existieren, wenn ein User dieses Template aufgerufen hat.

      Liebe Grüße

      Roger

     Antworten


     
 Liste der Einträge von 42000 bis 42150:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!