!!!@CB oder Experten: chg-mod doch Fehler in BP? - 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 Mittwoch, 26.Februar.2003, 15:40.
    !!!@CB oder Experten: chg-mod doch Fehler in BP?

      Hallo,
      nachdem ich nun heute ne Mütze Schlaf genommen habe und wieder klare Bilder sehe doch nochmal folgendes Problem:
      Ich habe ein Mastetermplate, das die Zugangskontrolle macht und dann Subs je nach Zugangstatus aufruft, u.a. auch eigene Formulare zum Ändern von Datensätzen.
      Nach Zugangskontrolle über die URL-Parameter (die im Form nochmal mitgegeben werden) $uid (ID des Userdatensatzes d. angem. Users), $SID (Session-ID, die mit dem beim Einloggen abgespeicherten Wert im Datenbankfeld n_sid verglichen wird) und $use (für Datenbankname der zu bearbeitenden Datenbank) sowie dem Parameter $act (für die Aktionen) wird nach Zugangskontrolle die jeweilige Aktion ausgeführt.
      Nun werden aber bei "chg" alle Felder, die nicht im eigenen HTML-Eingabe-Formular stehen, einfach geleert - u. a. auch das für den Zugang wichtige Feld n_sid und lastin (übrigens Datumsfeld, das wird ratzeputz leer gemacht!).
      Wenn ich den DS mit "mod" ändere, werden die vorhandenen Feldinhalte nicht angetastet, dafür werden aber die Datenfelder, wo vorher Inhalt drin war nicht geändert, wenn im HTML-Eingabeform der Feldinhalt gelöscht wird - das ist auch wieder "mist"....

      Nachdem ich nun den dritten Tag die Ursache dafür gesucht habe und Experimente mit einfachen Formularen gemacht habe, ist dieses Verhalten m.E. klar BP "zuzuschreiben" -
      Bitte helft mit einem "einfachen" Workaround - ich kann nicht nochmal alles unstricken - da wären reichlich volle 14 Tage Arbeit futsch......
      Hier mal der entscheidende Code:#
      --- schnipp ----
      ################################################################
      # Aktionen je nach Übergabeparametern und Werten von _chk_zugang
      #################################################################
      $a_debug.= "<b>DB-Aktionen - Subroutinen f.\$use ($use) dyn. aufbauen</b><br>";
      if ($use ne "" && $zug == 4)
      {$a_debug.=".\$use($use) vorhanden - Aktionsauswahl:<br>";
          # -------- Aktionen in Datenbanken je nach $act ------- #
         my $db_name = substr($use, 2);
         if ($act eq "n")
            {
            put undef ,"$db_name";
            $act = "n";   # zurücksetzen, damit Form geleert wird
            # $act = "c" if $db_name eq "$db1";
            $a_actiontext = "Datensatz hinzugefügt...";
            $a_actionalert = "alert('Datensatz gespeichert !');";
            $a_debug.=".. put (in db $db_name) ausgeführt<br>";
            }elsif ($act eq "c" && $dsn ne "")
            {
            mod "Id==!$dsn", undef, "$db_name";
            $act = "n";    # zurücksetzen, damit Form geleert wird
            $a_actiontext = "Datensatz geändert...";
            $a_actionalert = "alert('Datensatz geändert !');";
            $a_debug.=".. chg (in db $db_name) ausgeführt<br>";
            }elsif ($act eq "d" && $dsn ne "")
            {
            del "Id==!$dsn", "$db_name";
            $act = "n";  # zurücksetzen, damit Form geleert wird
            # $act = "c" if $db_name eq "$db1";
            $a_actiontext = "Datensatz gelöscht...";
            $a_actionalert = "alert('Datensatz gelöscht !');";
            $a_debug.=".. del (in db $db_name) ausgeführt<br>";
            }
      }elsif ($use ne "" && $act eq "r")  # "Eingangszweig" f. Registrierungsaktionen
      
      ....
      ----schnapp
      Hoffe auf kurzfristige Hilfe.
      Danke
      Ruben


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 26.Februar.2003, 15:40.
    !!!@CB oder Experten: chg-mod doch Fehler in BP?

      Hallo,
      nachdem ich nun heute ne Mütze Schlaf genommen habe und wieder klare Bilder sehe doch nochmal folgendes Problem:
      Ich habe ein Mastetermplate, das die Zugangskontrolle macht und dann Subs je nach Zugangstatus aufruft, u.a. auch eigene Formulare zum Ändern von Datensätzen.
      Nach Zugangskontrolle über die URL-Parameter (die im Form nochmal mitgegeben werden) $uid (ID des Userdatensatzes d. angem. Users), $SID (Session-ID, die mit dem beim Einloggen abgespeicherten Wert im Datenbankfeld n_sid verglichen wird) und $use (für Datenbankname der zu bearbeitenden Datenbank) sowie dem Parameter $act (für die Aktionen) wird nach Zugangskontrolle die jeweilige Aktion ausgeführt.
      Nun werden aber bei "chg" alle Felder, die nicht im eigenen HTML-Eingabe-Formular stehen, einfach geleert - u. a. auch das für den Zugang wichtige Feld n_sid und lastin (übrigens Datumsfeld, das wird ratzeputz leer gemacht!).
      Wenn ich den DS mit "mod" ändere, werden die vorhandenen Feldinhalte nicht angetastet, dafür werden aber die Datenfelder, wo vorher Inhalt drin war nicht geändert, wenn im HTML-Eingabeform der Feldinhalt gelöscht wird - das ist auch wieder "mist"....

      Nachdem ich nun den dritten Tag die Ursache dafür gesucht habe und Experimente mit einfachen Formularen gemacht habe, ist dieses Verhalten m.E. klar BP "zuzuschreiben" -
      Bitte helft mit einem "einfachen" Workaround - ich kann nicht nochmal alles unstricken - da wären reichlich volle 14 Tage Arbeit futsch......
      Hier mal der entscheidende Code:#
      --- schnipp ----
      ################################################################
      # Aktionen je nach Übergabeparametern und Werten von _chk_zugang
      #################################################################
      $a_debug.= "<b>DB-Aktionen - Subroutinen f.\$use ($use) dyn. aufbauen</b><br>";
      if ($use ne "" && $zug == 4)
      {$a_debug.=".\$use($use) vorhanden - Aktionsauswahl:<br>";
          # -------- Aktionen in Datenbanken je nach $act ------- #
         my $db_name = substr($use, 2);
         if ($act eq "n")
            {
            put undef ,"$db_name";
            $act = "n";   # zurücksetzen, damit Form geleert wird
            # $act = "c" if $db_name eq "$db1";
            $a_actiontext = "Datensatz hinzugefügt...";
            $a_actionalert = "alert('Datensatz gespeichert !');";
            $a_debug.=".. put (in db $db_name) ausgeführt<br>";
            }elsif ($act eq "c" && $dsn ne "")
            {
            mod "Id==!$dsn", undef, "$db_name";
            $act = "n";    # zurücksetzen, damit Form geleert wird
            $a_actiontext = "Datensatz geändert...";
            $a_actionalert = "alert('Datensatz geändert !');";
            $a_debug.=".. chg (in db $db_name) ausgeführt<br>";
            }elsif ($act eq "d" && $dsn ne "")
            {
            del "Id==!$dsn", "$db_name";
            $act = "n";  # zurücksetzen, damit Form geleert wird
            # $act = "c" if $db_name eq "$db1";
            $a_actiontext = "Datensatz gelöscht...";
            $a_actionalert = "alert('Datensatz gelöscht !');";
            $a_debug.=".. del (in db $db_name) ausgeführt<br>";
            }
      }elsif ($use ne "" && $act eq "r")  # "Eingangszweig" f. Registrierungsaktionen
      
      ....
      ----schnapp
      Hoffe auf kurzfristige Hilfe.
      Danke
      Ruben

     Antworten

    Beitrag von Claus Christmeier (598 Beiträge) am Mittwoch, 26.Februar.2003, 15:57.
    Re: !!!@CB oder Experten: chg-mod doch Fehler in BP?

      Hallo Ruben,

      wie sieht denn eigentlich Dein "%_put" vor dem "chg" aus?
      Hast Du das mal überprüft?
      Steht da auch "$_put{_amount} = 1" drin?

      Gruß
      Claus

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 26.Februar.2003, 16:41.
    !!!!Re: !!!@CB oder Experten: chg-mod doch Fehler in BP?

      Hallo, Claus
      ja - _amount ist mit 1 belegt, ich schmeiß mal die Debugausgabe des betreffenden Teils unten rein...
      (sind wirklich nur die Felder die in der DB stehen; kann man die fehlenden Werte nicht irgendwie vor dem Absenden des Forms in den Hash schreiben? - ich hab das schon mittels $_put{feldname} = $Wert versucht, aber der machts einfach nicht)
      Irgendwie muß das was damit zu tun haben, daß Script-Technisch folgendes abläuft:
      Sub ruft Formularsub auf - ID wird in URL übergeben, Datensatz (Id==!$uid) wird aus "Arbeits"-DB geholt, Datenbank n.fields wird geöffnet, Daten geholt, gecheckt und je nach Bedingung hidden-Fields generiert u. mit Inhalt aus "Arbeits"-DB gefüllt, Formular aufgebaut (in Variable geschrieben), "Arbeits"-DB wieder geöffnet, je nach Nutzer-Rechten best. Anzahl DS geholt, in der While-get-next-Schleife wird dann für jeden DS eine Sub zum Generieren der Einzeldatensatzausgabe zum Füllen ner "Ausgabesammel-Variablen" abgearbeitet, die wiederum in ihrem Geltungsbereich für jeden DS nochmal die "Arbeits-DB" öffnet, um Vergleichswerte und Ausgabewerte in Bezug auf den aktuell angemeldeten Nutzer erzeugen zu können (bspw. wenn DS von anderem Nutzer angelegt wurde den Namen des entspr. Nutzers holen und in var schreiben, damit Hinweis auf Fremdeigentum erfolgen kann - das aber auch nur für angemeldete User mit den entsprechenden Rechten).
      Ich komm absolut nicht weiter - seh schon die Felle davon schwimmen.....
      Hier Debug-Ausgabe:
      Wichtige Var-Belegung nach sub &_chk_zugang
      Zugangsparameter: $SID =(747541376.745503605.379736971) / $uid =(1)/ $dsn(1) / $userlevel(3
      Nutzerwerte: $art_admin() /$a_kalender(1) / $a_nutzer(2)
      $namerein =() / $pwrein =() / $nick =(admin)
      Statusvariablen: $logout =(0) / $zug =(4)
      Aktionsparameter: $use =(a_nutzer) / $act =(c) / $act1=()
      
      ________________________________________________________________________________
      DB-Aktionen - Subroutinen f.$use (a_nutzer) dyn. aufbauen
      .$use(a_nutzer) vorhanden - Aktionsauswahl:
      1. Paar von $_put: key-n_mod_Name / Wert-admin
      2. Paar von $_put: key-a_kalender / Wert-1
      3. Paar von $_put: key-_amount / Wert-1
      4. Paar von $_put: key-Nachname / Wert-Nachname
      5. Paar von $_put: key-Mobiltelefon / Wert-0174 9101 851
      6. Paar von $_put: key-name / Wert-admin
      7. Paar von $_put: key-PLZ / Wert-
      8. Paar von $_put: key-Telefon / Wert-03733 429203
      9. Paar von $_put: key-Ort / Wert-Adminisdorf-Bergring
      10. Paar von $_put: key-a_nutzer / Wert-2
      11. Paar von $_put: key-Fax / Wert-03733 2192
      12. Paar von $_put: key-a_frei / Wert-1
      13. Paar von $_put: key-passwort / Wert-admin
      14. Paar von $_put: key-Strasse / Wert-Adminstraße 21
      15. Paar von $_put: key-eMail / Wert-main@hempelr.de
      16. Paar von $_put: key-Vorname / Wert-Admin
      17. Paar von $_put: key-a_art_admin / Wert-2
      .. chg (in db nutzer) ausgeführt
      Quelltext f. Sub $use(a_nutzer) aus DB-Feld holen
      Quelltext f. Sub $use(a_nutzer) holen (db-feld code1 in $db_name() mit Inhalt)
      Ende SUB $use(a_nutzer) in $code1 dynamisch einbauen

      Und nachdem dann das Template wieder aufgerufen wird und in die Sub chk-zugang gesprungen wird, wo u.a. die n_sid für den Datensatz mit der id==!uid, abgefragt wird, ist dann dort kein Wert drin (übrigens, alle nicht explizit im Form mittels name="feldname:=" angegebenen Werte sind in der DB nach chg leer; nach mod nicht, aber dafür halt das vor beschriebene Phänomen......
      Danke für weitere Hilfe
      Ruben

     Antworten


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