Re: Neue Community im Beta-Test - 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 Stefan Skalla (86 Beiträge) am Donnerstag, 31.Mai.2001, 08:51. WWW: www.WhatsOnMyMind.net
    Re: Neue Community im Beta-Test

      Hi Oliver,
      also der Nickname wird vom Formular an das Template übergeben und dort mit $nick=$_get{nick} abgefragt. Anschließend kann man's mit out $nick; natürlich auch wieder anzeigen...
      Außerdem wird hier der gewünschte Nickname auch gleich in die User-Datenbank eingetragen, damit nicht zufälligerweise ein anderer User ebenfalls diesen Namen reservieren kann, während der erste gerade dabei ist, die zweite Seite der Registrierung auszufüllen.
      Gruß,
      Stefan


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Stefan Skalla (86 Beiträge) am Mittwoch, 30.Mai.2001, 18:49. WWW: www.WhatsOnMyMind.net
    Neue Community im Beta-Test

      Hallo Leute,
      wenn Ihr Lust habt, könnt Ihr ja mal bei http://www.WhatsOnMyMind.net vorbeischauen und alles auf Herz und Nieren prüfen. Soll eine Community werden, in der man z.B. Online-Tagebuch führen, Geschichten oder Gedichte veröffentlichen oder einfach alles schreiben kann, was einem unter den Nägeln brennt. Natürlich alles auf BP-Basis, Englisch/Deutsch auswählbar, jeder Account mit eigener Messagebox, und, und, und...
      In ca. 2-4 Wochen soll - wenn nichts dazwischen kommt - aus "Beta 1" dann "Final 1" werden. Ein paar Kleinigkeiten laufen noch nicht so ganz rund...
      Viel Spaß,
      Stefan

     Antworten

    Beitrag von Oliver (172 Beiträge) am Mittwoch, 30.Mai.2001, 19:09.
    Re: Neue Community im Beta-Test

      Hallo Stefan,

      gefällt mir ziemlich gut. Allerdings habe ich mich noch nicht so viel getestet.

      Kannst du mir verraten, wie du das Suchergebnis von der Nicknamen-Überprüfung auf die zweite Anmeldeseite bekommst?

      Oliver ;-)

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Donnerstag, 31.Mai.2001, 08:51. WWW: www.WhatsOnMyMind.net
    Re: Neue Community im Beta-Test

      Hi Oliver,
      also der Nickname wird vom Formular an das Template übergeben und dort mit $nick=$_get{nick} abgefragt. Anschließend kann man's mit out $nick; natürlich auch wieder anzeigen...
      Außerdem wird hier der gewünschte Nickname auch gleich in die User-Datenbank eingetragen, damit nicht zufälligerweise ein anderer User ebenfalls diesen Namen reservieren kann, während der erste gerade dabei ist, die zweite Seite der Registrierung auszufüllen.
      Gruß,
      Stefan

     Antworten

    Beitrag von Oliver (172 Beiträge) am Donnerstag, 31.Mai.2001, 09:14.
    Re: Neue Community im Beta-Test

      Guten morgen Stefan,

      kannst du mir noch verraten, wie dein Suchtemplate aussieht? Ich kann mir das noch nicht so richtig vorstellen.

      Und was passiert, wenn der Nickname schon vorhanden ist?

      Ist das nicht gefährlich, den gewünschten Nicknamen direkt in die User-Datenbank einzutragen? Wenn der User auf der zweiten Seite abbricht, hast du einen unvollständigen Datensatz.

      Grüße
      Oliver ;-)

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Freitag, 1.Juni.2001, 15:06. WWW: www.WhatsOnMyMind.net
    Re: Neue Community im Beta-Test

      Hi Oliver,
      1. Zum Suchtemplate: Du meinst die Suche nach Artikeln, richtig? Ich versuche mal, das Prinzip zu beschreiben:
      Die Artikeldatenbank enthält u.a. die Felder "kategorie", "nickname", "erstellungsdatum", "sprache".
      Die Suchwerte, die der Nutzer im Formular in die Felder "kategorie=", "nickname=" ,..., eingibt, stehen im Template über $_get{kategorie}, $_get{nickname} etc. zur Verfügung. Man könnte jetzt über
      get "nickname==$_get{nickname} and kategorie==$_get{kategorie} and ..." 
      

      die Suche starten. Probleme gibt's aber dann, wenn der Nutzer nur z.B. das Feld "nickname" mit "Oliver" ausgefüllt hat. Der get-Befehl würde dann keinen Artikel finden, weil er nach Artikeln sucht, bei denen nickname=="Oliver" und kategorie=="" ($_get{kategorie} ist in diesem Fall leer). Ich habe das so umgangen, dass die Suchwerte vor der Durchführung des get-Befehls entsprechend aufbereitet werden:
      $suchnickname=$_get{nickname};
      $suchnickname="*" if ($suchnickname eq "");
      $suchkategorie=$_get{kategorie};
      $suchkategorie="*" if ($suchkategorie eq "");
      
      usw. Das heißt, für jedes Feld, das durchsucht werden soll, wird eine gesonderte Suchvariable eingeführt. Diese enthält dann entweder den übergebenen Suchwert aus dem Formular oder einen "*".
      Der Befehl
      get "nickname==$suchnickname and kategorie==$suchkategorie ..." 
      

      liefert dann das gewünschte Ergebnis.
      So. Ach ja, das Datum... Das hat Nerven gekostet. Ich hab erst gestern wieder gemerkt, dass irgend etwas nicht funktioniert und noch ein paar Fehler ausgemerzt. Mittlerweile läufts aber richtig - hoffe ich.
      Im einfachsten Fall, dass ein Nutzer alle Felder ausfüllt, also Tag, Monat, Jahr für Start- und Ende-Datum, kann man die Einzelwerte zu einem Datumswert zusammenfügen und die Suche starten.
      Für den Fall, dass jemand aber Felder offen lässt, habe ich die Einzelwerte vor der Suche auch aufbereitet.
      @maxdays=(31,28,31,30,31,30,31,31,30,31,30,31); 
      # das Feld enthält die maximale Anzahl von Tagen in den einzelnen Monaten (Schaltjahr ist  
      # noch nicht berücksichtigt, weil bisher kein Bedarf besteht)
      #im Folgenden steht "a" für Anfang und "e" für Ende:
      $atag=$_get{atag};$amonat=$_get{amonat};$ajahr=$_get{ajahr};
      $etag=$_get{etag};$emonat=$_get{emonat};$ejahr=$_get{ejahr};
      #Anfangs-Datum
      #wenn kein Tag eingegeben, nimm den 1.:
      $atag=1 if ($atag eq "");
      #wenn kein Monat eingegeben, nimm Januar:
      $amonat=1 if ($amonat eq "");
      #wenn kein jahr eingegeben, nimm 2001:
      $ajahr=2001 if ($ajahr eq "");
      #Ende-Datum
      #wenn kein Jahr eingegeben, nimm das aktuelle:
      $ejahr=datum(jetzt,"Jahr") if ($ejahr eq "");
      #wenn kein Monat eingegeben, nimm Dezember:
      $emonat=12 if ($emonat eq "");
      #Wenn kein Tag eingegeben, nimm den letzten Tag des Monats:
      $etag=$maxdays[$emonat-1] if ($etag eq "");
      #zu einem Datum-String zusammensetzen:
      $adatum=$atag.".".$amonat.".".$ajahr;
      $edatum=$etag.".".$emonat.".".$ejahr;
      
      Sollte diese Belegung zu einem Datumsbereich führen, den der Nutzer nicht gewollt hat, dann hat er halt Pech gehabt und muss seine Datumsangaben genauer machen.
      Jetzt kann es natürlich noch passieren, dass durch diese Belegungen das Endedatum VOR dem Startdatum liegt. In diesem Fall müssen die beiden Werte vertauscht werden:
      if (datum($edatum,"Jahr.Monat0.Tag0") lt datum($adatum,"Jahr.Monat0.Tag0"))
      {	
       $tempdatum=$edatum; 
       $edatum=$adatum; 
       $adatum=$tempdate;
      }
      

      So. Jetzt muss man noch folgendes bedenken: Es soll nach Artikeln gesucht werden, für die gilt: erstellungsdatum>=$adatum und erstellungsdatum<=$edatum. Das >=$adatum funktioniert auch so. Bei der Abfrage <=$edatum gibts aber das Problem (war jedenfalls bei mir so), dass z.B. im Fall $edatum=1.6.2001 nur alle Artikel bis einschließlich 31.5.2001 gefunden werden. In der Doku ist - glaube ich - auch erklärt, weshalb das so ist. Demzufolge habe ich also noch über
      $edatum=datum("$edatum+1");
      
      einen Tag angehängt.
      Und jetzt kann endlich gesucht werden. Hurra.

      get "nickname==$suchnickname and kategorie==$suchkategorie and ... and erstellungsdatum>=$adatum and erstellungsdatum<=$edatum", "articles";
      

      Über while (get_next "articles") erfolgt die Auflistung.

      Ich hoffe, das war ausführlich genug. Hab schon Blasen an den Fingern.

      2. Zur Eintragung in die Userdatenbank: Wenn der User über den Abbruch-Button auf der zweiten Seite wieder zurückgeht, wird der Nickname wieder gelöscht.
      Klar, wenn ein User den Browser zumacht, ohne die Registrierung abzuschließen, ist der Datensatz unvollständig. Der Nickname steht dann nicht mehr zur Verfügung, obwohl er nicht genutzt wird. Hier gibt's verschiedene Möglichkeiten, sich aus der Patsche zu helfen: Entweder man schreibt sich ein kleines Tool, das die Userdatenbank nach solchen "Kartei-Leichen" durchforstet und diese löscht, oder man bindet eine Subroutine ein, die das automatisch macht - z.B. dann, wenn mal wieder ein User die Registrierung vollständig durchführt. Die Suche nach solchen verwaisten Datensätzen kann ja über das Erstellungsdatum laufen. Das wird sowieso automatisch mit angelegt.

      Sorry für diesen langen Aufsatz.

      Ciao, Stefan

     Antworten


     
 Liste der Einträge von 61500 bis 61650: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.46s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!