problem mit umfrage modul: Warning: Unexpected character...

Gesperrt
pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

problem mit umfrage modul: Warning: Unexpected character...

Beitrag von pulk » Do 11. Mai 2006, 09:34

hmm...ich hab in der version 4.6.8 (original) jetzt auch das selbe problem wie hier: http://contenido.org/forum/viewtopic.php?t=9158, hab den fix eingefügt, die fehlermeldungen kommen aber immer noch.

backend:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /var/www/contenido/includes/include.tplcfg_edit_form.php(423) : eval()'d code on line 25
php version: 4.3.10-16


hier der input:

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT 
*
* Modulname   :	    Umfrage
* Author      :     Alexander Höhn
* Copyright   :     art & weise medienproduktion
	            info@auw-media.de
* Created     :     16-09-2002
* Modified    :     04-07-2003
************************************************/
 

echo " <table>";

$db = new DB_Contenido; 
switch($button1){

//-------------------------- Speichern der Daten in die Tabelle ------------------------------
  case "Speichern" : {
                      if("CMS_VALUE[3]" =="") $eintrag3 = " "; else $eintrag3 = "CMS_VALUE[3]";
                      if("CMS_VALUE[4]" =="") $eintrag4 = " "; else $eintrag4 = "CMS_VALUE[4]";
                      if($CMS_VAR[5] =="") $eintrag5 = " "; else $eintrag5 = $CMS_VAR[5];
                      if($CMS_VAR[6] =="") $eintrag6 = " "; else $eintrag6 = $CMS_VAR[6];
                      $sql = 'INSERT INTO `umfragen` (`umfragenid`, `Frage`, `zaehlung1`, `zaehlung2`, `zaehlung3`, `zaehlung4`, `zaehlung5`, `zaehlung6`, `ergebnis1`, `ergebnis2`, `ergebnis3`, `ergebnis4`, `ergebnis5`, `ergebnis6`) VALUES (\'\', \'CMS_VALUE[0]\', \'CMS_VALUE[1]\', \'CMS_VALUE[2]\', \''.$eintrag3.'\', \''.$eintrag4.'\', \''.$eintrag5.'\', \''.$eintrag6.'\', \'0\', \'0\', \'0\', \'0\', \'0\', \'0\');'; \');'; 
                      $db->query($sql);
                      break;
                     }
  case "Auswählen" :     { 

//--------------------------- Auswählen der gewünschten Frege --------------------------------
                      $db->query('SELECT * FROM umfragen WHERE `Frage` = \''.$CMS_VAR[7].'\''); 
                      $db->next_record();
                      $frage = $db->f("Frage");
                      $edit1 = $db->f("zaehlung1");
                      $edit2 = $db->f("zaehlung2");
                      $edit3 = $db->f("zaehlung3");
                      $edit4 = $db->f("zaehlung4");
                      $edit5 = $db->f("zaehlung5");
                      $edit6 = $db->f("zaehlung6");                    
                      break;
                     }
  }

echo "<tr>
        <td>&nbsp;</td>
        <td></td>
    </tr>";
echo "    <tr>
        <td>Frage :</td>
        <td><input type=\"text\" name=\"CMS_VAR[0]\" value=\"";
       if($frage=="") echo "CMS_VALUE[0]"; else echo $frage;
     echo "\"></td>
    </tr>
    <tr>
        <td>Möglichkeit 1 :</td>
        <td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"";
       if($edit1=="") echo "CMS_VALUE[1]" ; else echo $edit1; 
     echo "\"></td>
    </tr>
    <tr>
        <td>Möglichkeit 2 :</td>
        <td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"";
       if($edit2=="") echo "CMS_VALUE[2]" ; else echo $edit2; 
     echo "\"></td>
    </tr>
    <tr>
        <td>Möglichkeit 3 :</td>
        <td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"";
       if($edit3=="") echo "CMS_VALUE[3]" ; else echo $edit3; 
     echo "\"></td>
    </tr>
    <tr>
        <td>Möglichkeit 4 :</td>
        <td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"";
       if($edit4=="") echo "CMS_VALUE[4]" ; else echo $edit4; 
     echo "\"></td>
    </tr>
    <tr>
        <td>Möglichkeit 5 :</td>
        <td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"";
       if($edit5=="") echo "CMS_VALUE[5]" ; else echo $edit5; 
     echo "\"></td>
    </tr>
    <tr>
        <td>Möglichkeit 6 :</td>
        <td><input type=\"text\" name=\"CMS_VAR[6]\" value=\"";
       if($edit6=="") echo "CMS_VALUE[6]" ; else echo $edit6; 
     echo "\"></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
    </tr>

    <tr>
        <td>&nbsp;</td>
        <td><input type=\"submit\" name=\"button1\" value=\"Speichern\"></td>
    </tr>
    <tr>
        <td colspan=\"2\"><center>";

//---------------------- darstellung in einer drop-down Liste --------------------------------
$db = new DB_Contenido; 
if($db->query("SELECT * FROM umfragen")){ 
  for($i=1;$i<=$db->num_rows();$i++){
    $db->next_record();
    $tab = "tab".$i;
    $$tab = $db->f("Frage"); 
   }
 }else{
  $sql = 'CREATE TABLE `umfragen` ( `umfragenid` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `Frage` TEXT NOT NULL, `zaehlung1` TEXT NOT NULL, `zaehlung2` TEXT NOT NULL, `zaehlung3` TEXT NOT NULL, `zaehlung4` TEXT NOT NULL, `zaehlung5` TEXT NOT NULL, `zaehlung6` TEXT NOT NULL, `ergebnis1` INT(15) NOT NULL, `ergebnis2` INT(15) NOT NULL, `ergebnis3` INT(15) NOT NULL, `ergebnis4` INT(15) NOT NULL, `ergebnis5` INT(15) NOT NULL, `ergebnis6` INT(15) NOT NULL );'; 
  $db->query($sql);
 }
echo "<select name=\"CMS_VAR[7]\" size=\"1\">";
 if($CMS_VAR[7]!="")echo "<option value=\"$CMS_VAR[7]\">".$CMS_VAR[7]."</option>";
  for($i=1;$i<=$db->num_rows();$i++){
    $tab = "tab".$i;                                       
    if(!isset($CMS_VAR[7]))echo "<option value=\"".$$tab."\">".$$tab."</option>";
    if(isset($CMS_VAR[7])) if($$tab!=$CMS_VAR[7])echo "<option value=\"".$$tab."\">".$$tab."</option>";          
} 
echo "</select>" ;  

echo "  <input type=\"submit\" name=\"button1\" value=\"Auswählen\"></td>
    </tr>";    

echo "</table>"; 

und output:

Code: Alles auswählen

 
<?php

echo "<form action=\"".$auth->url()."\"  method=\"post\" >";
if($button1!="Weiter"){

//---------------------------- Umfrage aus der DB auslesen -----------------------------------
  $db = new DB_Contenido; 
  $db->query('SELECT * FROM umfragen WHERE `Frage` = \'CMS_VALUE[0]\''); 
  $db->next_record();  
  $frage = $db->f("Frage");
  $antwort1 = $db->f("zaehlung1");
  $antwort2 = $db->f("zaehlung2");
  $antwort3 = $db->f("zaehlung3");
  $antwort4 = $db->f("zaehlung4");
  $antwort5 = $db->f("zaehlung5");
  $antwort6 = $db->f("zaehlung6");                      

//--------------- Fragen und Antwortmöglichkeiten darstellen ---------------------------------
echo "<tr><td></td><td height=\"15\" colspan=\"2\" >$frage</td>
   </tr>
   <tr>
    <td width=\"25\"></td><td><input value=\"1\" type=\"radio\" name=\"Radio1\">&nbsp;&nbsp;".$antwort1."</td>
   </tr>
   <tr>
    <td width=\"25\" ></td><td><input value=\"2\" type=\"radio\" name=\"Radio1\">&nbsp;&nbsp;".$antwort2."</td>
   </tr>";

//sollte ein Feld nicht belegt worden sein wird es weggelassen, für Umfragen mit weniger als 6 Antwortmöglichkeiten
if($antwort3 !=" ") 
   echo "<tr>
    <td width=\"25\" ></td><td><input value=\"3\" type=\"radio\" name=\"Radio1\">&nbsp;&nbsp;".$antwort3."</td>
   </tr>";
if($antwort4!=" ")
   echo "<tr>
    <td width=\"25\" ></td><td><input value=\"4\" type=\"radio\" name=\"Radio1\">&nbsp;&nbsp;".$antwort4."</td>
   </tr>";
if($antwort5!=" ")
   echo "<tr>
    <td width=\"25\" ></td><td><input value=\"5\" type=\"radio\" name=\"Radio1\">&nbsp;&nbsp;".$antwort5."</td>
   </tr>";
if($antwort6!=" ")
   echo "<tr>
    <td width=\"25\" ></td><td><input value=\"6\" type=\"radio\" name=\"Radio1\">&nbsp;&nbsp;".$antwort6."</td>
   </tr>";
echo "<tr>
    <td>&nbsp;</td><td>&nbsp;</td>
   </tr>
   <tr>
    <td colspan =\"2\"><center><input type=\"submit\" name=\"button1\" value=\"Weiter\"><br>
   </tr>";
}else{

//----------------------------- Datenbank auswertung ----------------------------------------
  $db = new DB_Contenido; 
  $db->query('SELECT * FROM umfragen WHERE `Frage` = \'CMS_VALUE[0]\''); 
  $db->next_record();
  $frage = $db->f("Frage");
  $ergeb1 = $db->f("ergebnis1");
  $ergeb2 = $db->f("ergebnis2");
  $ergeb3 = $db->f("ergebnis3");
  $ergeb4 = $db->f("ergebnis4");
  $ergeb5 = $db->f("ergebnis5");
  $ergeb6 = $db->f("ergebnis6");                      
switch($Radio1){
  case 1 : {
            $ergeb1++;
            break;
           }
  case 2 : {
            $ergeb2++;
            break;
           }
  case 3 : {
            $ergeb3++;
            break;
           }
  case 4 : {
            $ergeb4++;
            break;
           }
  case 5 : {
            $ergeb5++;
            break;
           }
  case 6 : {
            $ergeb6++;
            break;
           }
}

//--------------------------- Darstellung im Balkendiagramm ----------------------------------
$gesamt = $ergeb1+$ergeb2+$ergeb3+$ergeb4+$ergeb5+$ergeb6;
echo "<h3><center>CMS_VALUE[0]</center></h3><br>";
   
if($ergeb1!="0") $farbe1= "bgcolor=\"cornflowerblue\"";
echo "<b>CMS_VALUE[1] :";
echo "<table><tr><td ".$farbe1." width=\"";
echo (300*$ergeb1)/$gesamt;
$prozent = (100*$ergeb1)/$gesamt;
echo "\">&nbsp;</td><td>".round($prozent, 2)." % </td></tr>";
echo "</table><br>";

if($ergeb2!="0") $farbe2= "bgcolor=\"skyblue\"";
echo "<b>CMS_VALUE[2] :";
echo "<table><tr><td ".$farbe2." width=\"";
echo (300*$ergeb2)/$gesamt;
$prozent = (100*$ergeb2)/$gesamt;
echo "\">&nbsp;</td><td>".round($prozent, 2)." % </td></tr>";
echo "</table><br>";

if("CMS_VALUE[3]"!=" "){
  if($ergeb3!="0") $farbe3= "bgcolor=\"lightskyblue\"";
  echo "<b>CMS_VALUE[3] :";
  echo "<table><tr><td ".$farbe3." width=\"";
  echo (300*$ergeb3)/$gesamt;
  $prozent = (100*$ergeb3)/$gesamt;
  echo "\">&nbsp;</td><td>".round($prozent, 2)." % </td></tr>";
  echo "</table><br>";
}

if("CMS_VALUE[4]"!=" "){
  if($ergeb4!="0") $farbe4= "bgcolor=\"lightblue\"";
  echo "<b>CMS_VALUE[4] :";
  echo "<table><tr><td ".$farbe4." width=\"";
  echo (300*$ergeb4)/$gesamt;
  $prozent = (100*$ergeb4)/$gesamt;
  echo "\">&nbsp;</td><td>".round($prozent, 2)." % </td></tr>";
  echo "</table><br>";
}

if("CMS_VALUE[5]"!=" "){
  if($ergeb5!="0") $farbe5= "bgcolor=\"lightsteelblue\"";
  echo "<b>CMS_VALUE[5] :";
  echo "<table><tr><td ".$farbe5." width=\"";
  echo (300*$ergeb5)/$gesamt;
  $prozent = (100*$ergeb5)/$gesamt;
  echo "\">&nbsp;</td><td>".round($prozent, 2)." % </td></tr>";
  echo "</table><br>";
}

if("CMS_VALUE[6]"!=" "){
  if($ergeb6!="0") $farbe6= "bgcolor=\"darkgray\"";
  echo "<b>CMS_VALUE[6] :";
  echo "<table><tr><td ".$farbe6." width=\"";
  echo (300*$ergeb6)/$gesamt;
  $prozent = (100*$ergeb6)/$gesamt;
  echo "\">&nbsp;</td><td>".round($prozent, 2)." % </td></tr>";
  echo "</table><br>";
}

//------------------------- Speichern der neuen Ergebnisse in der DB -------------------------
$sql = 'SELECT `umfragenid` FROM `umfragen` WHERE 1 AND `Frage` = \'CMS_VALUE[0]\' LIMIT 0, 30'; 
$db->query($sql); 
$ID = $db->f("umfragenid");

$sql = 'REPLACE INTO `umfragen` (`umfragenid`, `Frage`, `zaehlung1`, `zaehlung2`, `zaehlung3`, `zaehlung4`, `zaehlung5`, `zaehlung6`, `ergebnis1`, `ergebnis2`, `ergebnis3`, `ergebnis4`, `ergebnis5`, `ergebnis6`) VALUES (\''.$ID.'\', \'CMS_VALUE[0]\', \'CMS_VALUE[1]\', \'CMS_VALUE[2]\', \'CMS_VALUE[3]\', \'CMS_VALUE[4]\', \'CMS_VALUE[5]\', \'CMS_VALUE[6]\', \''.$ergeb1.'\', \''.$ergeb2.'\', \''.$ergeb3.'\', \''.$ergeb4.'\', \''.$ergeb5.'\', \''.$ergeb6.'\');';
$db->query($sql);
}
echo "</td></tr></table>";

?>

MichFress
Beiträge: 750
Registriert: Mo 5. Jan 2004, 22:32
Wohnort: Bochum
Kontaktdaten:

Beitrag von MichFress » Do 11. Mai 2006, 10:24

siehe Suchfunktion, 46 Treffer...
aufgrund von http://contenido.org/forum/viewtopic.ph ... ter++input
würde ich auf die Schnelle mal empfehlen, die SQL-Querys zu überdenken

Code: Alles auswählen

');'; \');'; 
könnte ungünstig sein...
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)

pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk » Do 11. Mai 2006, 10:34

MichFress hat geschrieben:siehe Suchfunktion, 46 Treffer...
aufgrund von http://contenido.org/forum/viewtopic.ph ... ter++input
würde ich auf die Schnelle mal empfehlen, die SQL-Querys zu überdenken

Code: Alles auswählen

');'; \');'; 
könnte ungünstig sein...
hab ich ja extra geposted das ich das so wie dort beschrieben ausgebessert hab.
nachdem der fehler dort nur im output bereich beschrieben wurde, dachte ich eigentlich nicht das das selbe problem auch im input bereich liegt. aber offensichtlich ist das so, hab es dort geändert und jetzt klappts. danke.

Gesperrt