Re: pflichtfelder definieren - 2 HELP - 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 hempelr (1976 Beiträge) am Freitag, 11.Juli.2003, 10:47.
    Re: pflichtfelder definieren - 2 HELP

      mhm - das ist nun ein kleines Problem... ich war bisher immer zu faul, das selbst zu proggen...
      Wie machst du die Datenbankausgabe, mit do_all oder mit <do action> ?

      Versuch mal das db=neutzer aus dem Link rauszunehmen und namerein=$namerein sowie pwrein=$pwrein einzusetzen.
      Ich vermute ja, du hast das Passwort-Template aus der Bib genommen, da heissen ja die Variablen im Formular für die Anmeldung namerein und pwrein.
      Ausserdem musst du dann als Filterbedingung in die Ausgabe der Daten-DB ein Benutzer==!$namerein reinsetzten, damit nur die Datensätze des angemeldeten Benutzers angezeigt werden.
      Also der Link müsste m.E. wie folgt aussehen (Parameter immer hintenran, nach htx=irgendwas !):
      <a href="http://domain.de/baseportal?htx=/domain.de/verz/templatea&cmd=do_search&namerein=$namerein&pwrein=$pwrein">Suchen</a>
      


      Wird nur etwas verzwickter, wenn du bei Neuanlage von Datensätzen den Nutzername mit abspeichern willst - da musst du wieder über ne Abfrage des $cmd - Wertes den Wert von $_put{Benutzer} mit dem Nutzername belegen, damit der dann mit abgespeichert wird - musst dich noch mal melden, wenn dus brauchst.....

      HTH
      Ruben


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von sascha (539 Beiträge) am Donnerstag, 10.Juli.2003, 23:01.
    pflichtfelder definieren - 2 HELP

      hallo,

      dank des denkanstosses von ruben habe ich mein problem zum teil gelöst.

      durch nachfolgendes <perl> wird ein hinweis ausgegben, welche definierten pflichtfelder noch nicht ausgefüllt wurden.

      folgende probleme habe ich noch:
      - der eintrag wird trotzdem abgespeichert - soll nicht :-(
      - es wird nur ausgeben, wenn <option>felder nicht ausgewählt wurden,
        aber nicht wenn es sich um ein <text> oder <textarea> feld handelt.
      


      HELP !!!

      sascha



      <perl>
      

      if ($cmd eq "add") {
      $err.="<font face=arial,helvetica size=2 color=#FF0000>
       -Benutzer<br>" if ($Benutzer eq "");
      $err.="<font face=arial,helvetica size=2 color=#FF0000>
       -Hotelname<br>" if ($Hotel eq "");
      $err.="<font face=arial,helvetica size=2 color=#FF0000> -Kategorie<br>" if ($Kategorie eq "");
      $err.="<font face=arial,helvetica size=2 color=#FF0000> -Hotelgröße<br>" if ($Hotelgroesse eq "");
      $err.="<font face=arial,helvetica size=2 color=#FF0000> -Region<br>" if ($Region eq "");
      $err.="<font face=arial,helvetica size=2 color=#FF0000> -Bundesland<br>" if ($Bundesland eq "");
      $err.="<font face=arial,helvetica size=2 color=#FF0000> -Land<br>" if ($Land eq "");
      $err.="<font face=arial,helvetica size=2 color=#FF0000> -Programm<br>" if ($Bundesland eq "");
      $err.="<font face=arial,helvetica size=2 color=#FF0000> -Zeitraum<br>" if ($Zeitraum eq "");
      $err.="<font face=arial,helvetica size=2 color=#FF0000> -Titel<br>" if ($Angebot eq "");
      $err.="<font face=arial,helvetica size=2 color=#FF0000> -Angebot" if ($Angebot eq "");
      
        if ($err ne "") {    out "<b>Folgende Felder wurden nicht ausgefüllt:</b> <br>$err";   } else {    put;   }  }
      </perl>

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 11.Juli.2003, 07:45.
    Re: pflichtfelder definieren - 2 HELP

      hallo, sascha,
      mhm - das könnte damit zusammenhängen, dass in deinem Template
      1. nur auf die Variablen, nicht aber auf den Inhalt des jeweiligen put-hash-Elements abgefragt wird.
      Mach mal bei jeder if-Abfrage statt if ($Feldname eq "") ein if $_put{Feldname} eq "" rein - denk mal dann fragt er erst mal richtig auf übergebene Werte ab.
      2. eventuell musst du den put-hash noch leeren, wenn in Fehlermeldungs-Var was drin steht, da wäre dann die Sicherheit gegeben, dass auch wirklich nichts abgespeichert wird (weil ja nix mehr da ist zum Speichern und bp nix mehr mitkriegt, dass was gespeichert werden soll). In den Zweig für die Fehlermeldung noch ne zusätzliche Abfrage auf Ihnalt von $err und dann leeren von %_put:
      ....
      if ($err ne "" && ){
      undef %_put;
      }
      
      ....
      evtl. reicht auch $_put{_amount} zu leeren, wenn das nämlich nicht vorhanden ist, dann macht bp auch keine Aktionen auf eine db....
      HTH
      Ruben

     Antworten

    Beitrag von sascha (539 Beiträge) am Freitag, 11.Juli.2003, 09:33.
    Re: pflichtfelder definieren - 2 HELP

      guten morgen ruben,

      super - ein teil klappt schon.

      es werden jetzt alle festgelegten felder, die nicht ausgefüllt wurden angezeigt und der eintrag wird auch nicht abgespeichert.

      problem:
      obwohl der eintrag nicht abgespeichert wird, kommt die info
      "Eintrag hinzugefügt" ???


      außerdem habe ich versucht den nachfolgenden teil bei mir einzubauen, bekomme aber dann immer eine fehlermeldung.

      if ($err ne "" && ){
      undef %_put;
      }
       
      
      gruß
      sascha

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 11.Juli.2003, 09:46.
    Re: pflichtfelder definieren - 2 HELP

      sorry - muss heißen:
      if ($err ne ""){
      undef %_put;
      }
      
      Ruben

     Antworten

    Beitrag von sascha (539 Beiträge) am Freitag, 11.Juli.2003, 09:56.
    Re: pflichtfelder definieren - 2 HELP

      hi ruben,

      :-))))) - super, so langsam verstehe ich auch, was ich da mache.


      ich habe in dem template noch ein problem - hast du vielleicht einen tipp?

      ich möchte die selectbrowse-leiste nur mit NEU,ALLES und SUCHEN haben.
      sander hatte mal gepostet, daß dies nur mit "normalen" links geht.
      bei "normalen" seiten funktioniert das auch, ABER

      jetzt hab ich ein passwortbereich und krieg das ums verrecken nicht hin.


      der user loggt sich mit benutzer und passwort ein, was in der db nutzer
      gespeichert ist.
      das feld benutzer gibt es in der db daten, wodurch er user nur seine einträge zu sehen bekommt.

      meine versuche laufen aber immer ins leere??
      hier ein beispiel:

      <a href="http://domain.de/baseportal?namerein==$Benutzer&pwrein==$Passwort&db=nutzer&htx=/domain.de/verz/templatea&cmd=do_search"><center>Suchen</center></a>
      

      ????
      danke
      sascha

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 11.Juli.2003, 10:47.
    Re: pflichtfelder definieren - 2 HELP

      mhm - das ist nun ein kleines Problem... ich war bisher immer zu faul, das selbst zu proggen...
      Wie machst du die Datenbankausgabe, mit do_all oder mit <do action> ?

      Versuch mal das db=neutzer aus dem Link rauszunehmen und namerein=$namerein sowie pwrein=$pwrein einzusetzen.
      Ich vermute ja, du hast das Passwort-Template aus der Bib genommen, da heissen ja die Variablen im Formular für die Anmeldung namerein und pwrein.
      Ausserdem musst du dann als Filterbedingung in die Ausgabe der Daten-DB ein Benutzer==!$namerein reinsetzten, damit nur die Datensätze des angemeldeten Benutzers angezeigt werden.
      Also der Link müsste m.E. wie folgt aussehen (Parameter immer hintenran, nach htx=irgendwas !):
      <a href="http://domain.de/baseportal?htx=/domain.de/verz/templatea&cmd=do_search&namerein=$namerein&pwrein=$pwrein">Suchen</a>
      


      Wird nur etwas verzwickter, wenn du bei Neuanlage von Datensätzen den Nutzername mit abspeichern willst - da musst du wieder über ne Abfrage des $cmd - Wertes den Wert von $_put{Benutzer} mit dem Nutzername belegen, damit der dann mit abgespeichert wird - musst dich noch mal melden, wenn dus brauchst.....

      HTH
      Ruben

     Antworten

    Beitrag von sascha (539 Beiträge) am Freitag, 11.Juli.2003, 11:04.
    Re: pflichtfelder definieren - 2 HELP

      hallo ruben,

      die sache funktioniert - aber...

      bei neuanlage eines datensatzes muss der user auch das
      feld benutzer ausfüllen.

      der datensatz wird auch angelegt, obwohl er folgende fehlermeldung zeigt:

      [ Fehler: init: /usr/local/httpd/baseportal/wh/ot/domain.de/verz/template.fields konnte nicht geöffnet werden ]
      Eintrag hinzugefügt...

      ???
      sascha

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 11.Juli.2003, 11:45.
    Re: pflichtfelder definieren - 2 HELP

      mhm - nu is guter Rat teuer :-( ....
      Schreibt er den Benutzername in die DB daten mit rein?
      Ich glaube mich zu erinnern, dass ich ein ähnliches Problem hatte, und deshalb die Schlüsselfelder für die Relation der DBs unterschiedlich genannt habe, dann gings (bin mir aber nicht ganz sicher, ob das hier das Problem ist....)
      Heisst also als Versuch:
      Feld Benutzer in db nutzer so lassen, in db daten umbenennen meinetwegen in "Nutzername"; dann natürlich nicht vergessen, alle Abfragen und Filtereinstellungen für Anzeigen aus db daten umzuändern.....
      HTH
      Ruben

     Antworten

    Beitrag von sascha (539 Beiträge) am Freitag, 11.Juli.2003, 13:45.
    Re: pflichtfelder definieren - 2 HELP

      hallo ruben,

      wenn ich das feld umbenenne kann ich mich aber nicht mehr einloggen.
      folgende fehlermeldung:

      [ Fehler: sel: Feld (Benutzer) in /domain.de/verz/db_daten nicht vorhanden

      Ursache: Das Feld Benutzer wurde in der Datenbank nicht definiert. Vielleicht haben Sie sich bei der Abfrage auch nur verschrieben?

      Lösungen: 1. Korrigieren Sie Ihre Abfrage. 2. Gehen Sie in Ihren privaten Bereich (Anmelden), wählen Sie die entsprechende Datenbank aus, klicken Sie auf 'Felder' und fügen Sie das gewünschte Feld hinzu. ]
      Keine Einträge vorhanden.

      hier das verursachende perl im template:
      <perl>
      if($namerein ne "")
      {
        get "Benutzer==!$namerein", "nutzer";
      
        if($Passwort ne "" && $Passwort eq $pwrein)   {     do_all "Benutzer==!$namerein action=all db=db_daten databack=FFFFFF headback=D9D9D9 headbold=1 headalign=left border=D9D9D9 spacing=1 padding=2 gridcolor=0C2545 datasize=-2 dataface=arial,helvetica sort^=Hotel range^=0,5 pagebrowse=top buttonbrowse=no listtype=list searchfields=Programm,Zeitraum formfields=-EMail allfields=-EMail listfields=-EMail,Angebot,Anmerkungen,Id input=link" , "namerein", "pwrein";   } else   {     out "<b>Anmeldung fehlgeschlagen!</b>";     $namerein="";   }
      }
      </perl>
      

      sascha

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 11.Juli.2003, 13:56.
    Re: pflichtfelder definieren - 2 HELP

      jo - das meinte ich ja mit ändern der Filterbedingungen.
      muss jetzt heissen:
      ---schnipp
      ....
      if($Passwort ne "" && $Passwort eq $pwrein)
        {
          do_all "neuerfeldname==!$namerein action=all db=db_daten databack=FFFFFF headback=D9D9D9 headbold=1 headalign=left border=D9D9D9 spacing=1 padding=2 gridcolor=0C2545 datasize=-2 dataface=arial,helvetica sort^=Hotel range^=0,5 pagebrowse=top buttonbrowse=no listtype=list searchfields=Programm,Zeitraum formfields=-EMail allfields=-EMail listfields=-EMail,Angebot,Anmerkungen,Id input=link" , "namerein", "pwrein";
        } else
      
      ....
      ----schnapp
      wobei für neuerfeldname der Feldname aus der db daten für den Nutzernamen stehen muss
      HTH
      Ruben

     Antworten

    Beitrag von sascha (539 Beiträge) am Freitag, 11.Juli.2003, 14:36.
    Re: pflichtfelder definieren - 2 HELP

      hi ruben,

      habe den benutzer in der db_daten geändert und auch im template.

      trotzdem kommt folgende fehlermeldung bei neueingabe ???!!

      Fehler: init: /usr/local/httpd/baseportal/wh/ot/domain.de/verz/tempalte.fields konnte nicht geöffnet werden ]
      Eintrag hinzugefügt...

      das template:

      <perl>
      if($namerein ne "")
      {
        get "Benutzer==!$namerein", "gi_nutzer";
      
        if($Passwort ne "" && $Passwort eq $pwrein)   {     do_all "Hotel_ID==!$namerein action=all db=d_gi_arr1 databack=FFFFFF headback=D9D9D9 headbold=1 headalign=left border=D9D9D9 spacing=1 padding=2 gridcolor=0C2545 datasize=-2 dataface=arial,helvetica sort^=Hotel range^=0,5 pagebrowse=top buttonbrowse=no selectbrowse=top listtype=list searchfields=Programm,Zeitraum formfields=-EMail allfields=-EMail listfields=-EMail,Angebot,Anmerkungen,Id input=link" , "namerein", "pwrein";   } else   {     out "<b>Anmeldung fehlgeschlagen!</b>";     $namerein="";   }
      }
      </perl>
      


      sascha

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 11.Juli.2003, 15:47.
    Re: pflichtfelder definieren - 2 HELP

      mhm - fehlt der Parameter db=dbname noch im do_all, als erstes:
      {
          do_all "db=deindbname Hotel_ID==!$namerein action=all db=d_gi_arr1 databack=FFFFFF headback=D9D9D9 headbold=1 headalign=left border=D9D9D9 spacing=1 padding=2 gridcolor=0C2545 datasize=-2 dataface=arial,helvetica sort^=Hotel range^=0,5 pagebrowse=top buttonbrowse=no selectbrowse=top listtype=list searchfields=Programm,Zeitraum formfields=-EMail allfields=-EMail listfields=-EMail,Angebot,Anmerkungen,Id input=link" , "namerein", "pwrein";
        } else
      
      ...
      dann sollte es aber hoffentlich gehen...
      HTH
      Ruben

     Antworten

    Beitrag von sascha (539 Beiträge) am Samstag, 12.Juli.2003, 22:17.
    Re: pflichtfelder definieren - 2 HELP

      hi ruben,

      erstmal danke für die buch-tipps.

      was deinen hinweis mit dem fehlenden db-namen betrifft,
      der ist drin und die fehlermeldung kommt trotzdem!

      fehlermeldung:

       Fehler: init: /usr/local/httpd/baseportal/wh/ot/domain.de/verz/tempalte.fields konnte nicht geöffnet werden ]
      

      temlate-auschnitt:

      <perl>
      if($namerein ne "")
      {
        get "Benutzer==!$namerein", "nutzer";
      
        if($Passwort ne "" && $Passwort eq $pwrein)   {     do_all "Hotel_ID==!$namerein action=all db=db_namen databack=FFFFFF headback=D9D9D9 headbold=1 headalign=left border=D9D9D9 spacing=1 padding=2 gridcolor=0C2545 datasize=-2 dataface=arial,helvetica sort^=Hotel range^=0,5 pagebrowse=top buttonbrowse=no selectbrowse=no listtype=list searchfields=Programm,Zeitraum formfields=-EMail allfields=-EMail listfields=-EMail,Angebot,Anmerkungen,Id input=link" , "namerein", "pwrein";   } else   {     out "<b>Anmeldung fehlgeschlagen!</b>";     $namerein="";   }
      }
      </perl>
      

      sascha

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Sonntag, 13.Juli.2003, 09:34. WWW: hempelr@gmx.de
    Re: pflichtfelder definieren - 2 HELP

      mhm - hab ich schon gesehn, dass das drin steht, aber halt nicht an erster Stelle (aber das isses aber wahrscheinlich nicht)
      Krach mir mal das ganze Template und ein Screenshot der Datenbank-Feldstrukturen per mail durch - ich guck mirs mal an. Da ist irgendwo der Wurm drin - es gibt offensichtlich einen Konflikt bei den Namenskonventionen der DBs und des Templates.
      Die Fehlermeldung besagt, dass er auf die Datenbank Namens template nicht zugreifen kann.
      Hast du die db_daten vielleicht in nem anderen Verzeichnis stehen als das Login-Ausgabetemplate?
      Nimm mal das do_all temporär raus und mach nur ne Ausgabe rein - da ist dann erst mal klar, ob das erste get (auf die Nutzerdb) oder das do_all für den Fehler verantwortlich sind.
      Dann ist es auf alle Fälle nie verkehrt, beim get noch nen Ergebnis-Hash anzugeben, also so:
       get "Benutzer==!$namerein", "nutzer", "logincheck";
      
      Kleiner Tipp noch am Rande, wo du dir das Leben etwas leichter machst:
      bei allen BasePortal interenen Befehlen mit Parametern angewöhnen, erst die wichtigen, für die Datensatz-Bereichsauswahl und -Filterung anzugeben, dann die cfür die Feld-Ansichten und dann für das Aussehen.
      So überschaut man das ganze etwas besser und Fehler sind einfacher zu finden.

      CU
      Ruben

     Antworten

    Beitrag von sascha (539 Beiträge) am Sonntag, 13.Juli.2003, 14:37.
    @ruben - pflichtfelder

      hi ruben,

      screenshot und template habe ich dir gemailt.
      die templates und db`s sind alle im selben verzeichnis.

      du hast gerade meinen groschen fallen lassen:
      ...Fehlermeldung besagt, dass er auf die Datenbank Namens template nicht zugreifen kann. Hast du die db_daten vielleicht in nem anderen Verzeichnis stehen als das Login-Ausgabetemplate...

      die fehlermeldung hat immer den namen meines 2. login-templates angezeigt, aber immer eine db erwartet!!
      durch den login komme ich ins template "eingabe".
      da aber meine db_daten nicht "eingabe" heißt, kommt die fehlermeldung!

      jetzt habe ich dem "eingabe" template den namen der db_daten gegeben.
      jetzt kommt zwar nicht mehr die fehlermeldung, doch die datensätze werden 2x in die db geschrieben.

      gruß
      sascha

     Antworten

    Beitrag von sascha (539 Beiträge) am Freitag, 11.Juli.2003, 13:56.
    Re: pflichtfelder definieren - 2 HELP

      hi ruben,

      sorry, bin heute echt nervig.

      mir ist noch etwas bei den pflichtfeldern aufgefallen.

      das funzt nur bei neuanlage.
      gibt es auch einen trick, damit das grundsätzlich gefragt wird, d.h.
      auch bei änderungen?

      dank dir
      sascha

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 11.Juli.2003, 15:54.
    Re: pflichtfelder definieren - 2 HELP

      jo - musst du die Abfragebedingungen des if-zweiges für $cmd um weitere erweitern, mit "oder" (||) verknüpft.
      Weiss jetzt nicht genau die Werte, schau sie dir mal in den Links an, wenn du auf Ändern gehst, glaub $cmd heisst "mod" wenn geändert werden soll; also
      .....
      if ($cmd eq "add" || $cmd eq "mod") {
      $err.="<font face=arial,helvetica size=2 color=#FF0000>
      
      ....
      hth
      Ruben

     Antworten

    Beitrag von sascha (539 Beiträge) am Freitag, 11.Juli.2003, 17:26.
    a special thanx to ruben :-)

      hi ruben,

      erstmal vielen dank, daß du mir so umfangreich und auch schnell geholfen hast - the best support i ever had :-)

      ich glaube, jetzt sind alle bretter, die mir vorm kopf hingen, weg.
      hab`s zwar noch nicht live testen können, aber von der logik her müßte es passen.

      eine frage noch was perl betrifft:
      gibt es eine buchempfehlung für perl-neulingen?
      ich bin zwar kein fan von büchern, doch für den einstieg
      wäre sowas vielleich doch nicht schlecht.

      danke
      sascha

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Samstag, 12.Juli.2003, 13:37.
    Dank gilt allen - Re: a special thanx to ruben :-)

      hey - gern geschehn - ohne die vielen Helfer hier im Forum würde ich auch manches nicht hingekriegt haben und wissen - Dank an alle Forumshelfer.

      Zu deiner Frage Literatur:
      1. für den schnellen Einstieg - sehr informativ und für vielleicht 75% aller hier in BP möglichen Dinge geeignet:
      http://www.tekromancer.com/perl/inhalt.html
      Habs mir gelcih als Büchlein ausgedruckt - liegt eigentlich immer auf dem Arbeitsplatz....
      2. Auch für Anfänger und unterdessen bei mir ziemlich zerfleddert, weil oft gebraucht vom knowware-Verlag Das HEft CGI & Perl für Einsteiger, ISBN87-90785-62-2 von Dirk Ammelburger - serh schön geschrieben, gute Erklärungen
      http://www.knowware.de/cgiperl.htm
      3. Perl - Das Einsteigerseminar vom bhv-Verlag ISBN 3-8266-7051-5 bzw. 3-8287-1032-8 mit gutem Befehlsreferenzteil, auch immer griffbereit.
      http://www.amazon.de/exec/obidos/ASIN/3826670515/qid=1058009425/sr=2-1/ref=sr_aps_prod_1_1/302-5442369-5636818

      Und last but not least ist das Perl-Kochbuch ein Fundus ohnesgleichen - nur halt leider etwas schwierig zu einem gegebenen Problem ne Lösung zu finden (naja - da ist soviel drin, dass man auch eine ganze Menge eh nicht richtig kapiert, bevor mans nicht braucht - ist ausserdem auch nicht ganz billig, aber fehlen sollte es eigentlich ab einer bestimmten Erfahrungsstufe nicht....) (siehe auch Link auf Homepage von BP ( http://baseportal.de/buecher.html )

      CU
      Ruben

     Antworten


     
 Liste der Einträge von 36300 bis 36450: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!