+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Probleme mit mosGetParam bei Joomla 1.0.15

  1. #1
    Neu an Board Avatar von ruzima
    Registriert seit
    17.02.2006
    Ort
    Eisenstadt
    Beiträge
    99
    Bedankte sich
    7
    Erhielt 21 Danksagungen
    in 12 Beiträgen

    Standard Probleme mit mosGetParam bei Joomla 1.0.15

    Hallo,

    ich habe leider ein Problem bei Joomla 1.0.15
    folgendes Script funktioniert bei Joomla 1.0.12 ohne Probleme, bei Joomla 1.0.15 funktioniert es leider nicht.

    Code:
    global $my;
    if (mosGetParam( $_REQUEST, 'einstreudatum', '' ) != '')
    	$datum = mosGetParam( $_REQUEST, 'einstreudatum', '' );
    if (mosGetParam( $_REQUEST, 'tierarztdatum', '' ) != '')
    	$datum = mosGetParam( $_REQUEST, 'tierarztdatum', '' );
    if (mosGetParam( $_REQUEST, 'desinfektiondatum', '' ) != '')
    	$datum = mosGetParam( $_REQUEST, 'desinfektiondatum', '' );
    if (mosGetParam( $_REQUEST, 'heizungdatum', '' ) != '')
    	$datum = mosGetParam( $_REQUEST, 'heizungdatum', '' );
    if (mosGetParam( $_REQUEST, 'stromdatum', '' ) != '')
    	$datum = mosGetParam( $_REQUEST, 'stromdatum', '' );
    if (mosGetParam( $_REQUEST, 'wasserdatum', '' ) != '')
    	$datum = mosGetParam( $_REQUEST, 'wasserdatum', '' );
    if (mosGetParam( $_REQUEST, 'qgvdatum', '' ) != '')
    	$datum = mosGetParam( $_REQUEST, 'qgvdatum', '' );
    if (mosGetParam( $_REQUEST, 'probiotikadatum', '' ) != '')
    	$datum = mosGetParam( $_REQUEST, 'probiotikadatum', '' );
    if (mosGetParam( $_REQUEST, 'versicherungdatum', '' ) != '')
    	$datum = mosGetParam( $_REQUEST, 'versicherungdatum', '' );
    if (mosGetParam( $_REQUEST, 'amortisationdatum', '' ) != '')
    	$datum = mosGetParam( $_REQUEST, 'amortisationdatum', '' );
    if (mosGetParam( $_REQUEST, 'sonstigesdatum', '' ) != '')
    	$datum = mosGetParam( $_REQUEST, 'sonstigesdatum', '' );
    
    
    //$datum = mosGetParam( $_REQUEST, 'datum', 0 );
    $text1 = mosGetParam( $_REQUEST, 'text1', '' );
    $text2 = mosGetParam( $_REQUEST, 'text2', '' );
    $text3 = mosGetParam( $_REQUEST, 'text3', '' );
    $netto = mosGetParam( $_REQUEST, 'netto', 0 );
    $bezahlt = mosGetParam( $_REQUEST, 'bezahlt', 0 );
    $kostentyp = mosGetParam( $_REQUEST, 'kostentyp2', '' );
    $anteil = mosGetParam( $_REQUEST, 'anteil', 0 );
    echo $kostentyp;
    $netto = str_replace(",", ".", $netto);
    $bezahlt = str_replace(",", ".", $bezahlt);
    
    $query = "INSERT INTO `#__hm_kosten` (
    `id` ,
    `user` ,
    `datensatz` ,
    `datum` ,
    `text1` ,
    `text2` ,
    `text3` ,
    `preisnetto` ,
    `preisbezahlt` ,
    `anteil` ,
    `typ`
    )
    VALUES (
    NULL , '" .$my->id ."' , '" .$id ."', '".$datum ."', '" .$text1 ."', '" .$text2 ."','" .$text3 ."', '" .$netto ."', '" .$bezahlt ."', '" .$anteil ."', '" .$kostentyp ."'
    );";
    
    echo $query;
    Das Formular enthält nicht alle Felder, da ich mehrere Formulare für die Eingabe habe die nicht alle Felder benötigen. Bei Joomla 1.0.12 hat das Script keine Probleme.
    Joomla 1.0.15 setzt mir aber manche Felder auf 0 oder '' (Standardwert)
    Das Datum funktioniert aber. Die Zahlen werden ohne Probleme übernommen.

    Ich habe es schon mit Standardwert 0 und '' ausprobiert. Gleiche Ergebnisse, der Wert fehlt immer.

    Code:
    INSERT INTO `#__hm_kosten` ( `id` , `user` , `datensatz` , `datum` , 
    `text1` , `text2` , `text3` , `preisnetto` , `preisbezahlt` , 
    `anteil` , `typ` ) VALUES ( NULL , '87' , '3', '2007-08-29', '0', '100',
    '0', '10', '12', '0', '0' );
    Das Datum wird ohne Probleme übernommen, bei text1 sollte aber test stehen, hier wird 0 eingetragen (nach dem Datum).
    Im letzten Feld (typ) soll der Kostentyp z.B. Einstreu eingetragen werden. der fehlt immer da es ein Text ist. Wenn ich bei den anderen eine Zahl eintrage wird diese Übernommen, Text fehlt aber.

    An was kann das liegen?
    Bei anderen Formularen (Scripten) ist mir das Problem noch nicht aufgefallen. Dort wird der Text ohne Probleme übernommen.

    mfg Manfred

  2. #2
    Neu an Board Avatar von ruzima
    Registriert seit
    17.02.2006
    Ort
    Eisenstadt
    Beiträge
    99
    Bedankte sich
    7
    Erhielt 21 Danksagungen
    in 12 Beiträgen

    Standard

    Hallo,

    durch die Überprüfung, ob ein Parameter nicht lehr ist konnte ich das Problem beheben:

    Code:
    if (mosGetParam( $_REQUEST, 'text1', '' ) != '')
    	$text1 = mosGetParam( $_REQUEST, 'text1', '' );
    if (mosGetParam( $_REQUEST, 'text2', '' ) != '')
    	$text2 = mosGetParam( $_REQUEST, 'text2', '' );
    if (mosGetParam( $_REQUEST, 'text3', '' ) != '')
    	$text3 = mosGetParam( $_REQUEST, 'text3', '' );
    if (mosGetParam( $_REQUEST, 'netto', '' ) != '')
    	$netto = mosGetParam( $_REQUEST, 'netto', 0 );
    if (mosGetParam( $_REQUEST, 'bezahlt', '' ) != '')
    	$bezahlt = mosGetParam( $_REQUEST, 'bezahlt', 0 );
    if (mosGetParam( $_REQUEST, 'kostentyp2', '' ) != '')
    	$kostentyp = mosGetParam( $_REQUEST, 'kostentyp2', '' );
    if (mosGetParam( $_REQUEST, 'anteil', '' ) != '')
    	$anteil = mosGetParam( $_REQUEST, 'anteil', 0 );
    Weshalb er nicht anders auch übernommen wird ist mir aber unklar.
    Die Standardwerte sind vorhanden, deshalb war es für mich irgendwie unlogisch die Überprüfung einzubauen und bei Joomla 1.0.12 hat es auch ohne die funktioniert.

    Seltsam ist auch, dass das bei den anderen Formularen nicht notwendig war.
    Vielleicht kennt jemand von euch den Grund, so aus Interesse.

    mfg Manfred

  3. #3
    Kommt häufiger vorbei
    Registriert seit
    09.09.2007
    Beiträge
    294
    Bedankte sich
    62
    Erhielt 26 Danksagungen
    in 24 Beiträgen

    Standard

    Auf die Schnelle vermute ich mal, dass das der selbe Grund ist, wie bei mir:
    http://www.joomlaportal.de/joomla-in...tml#post616180

    Hab dort eine Erklärung für mein Problem geschrieben, Du musst entscheiden, ob's das bei Dir auch ist.

  4. #4
    Gehört zum Inventar
    Registriert seit
    18.02.2005
    Beiträge
    8.841
    Bedankte sich
    85
    Erhielt 2.269 Danksagungen
    in 1.936 Beiträgen

    Standard

    Warum nutzt du nicht die mosDBTable Klasse, du schreibst dir ja einen Wolf.

    Zudem - keine Ahnung, ob das schon produktiv Code ist - "SQL Injection" gegeben.

    Gruß
    ec

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein