заполнение бд из формы

Discussion in 'PHP' started by barnaki, 8 Jul 2010.

  1. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    почему форма
    <form name="fehlerformular" action="/mallorca/php/fehlermelden.php" method="post"> расположеная на строке 209 не заполняет базу. вроде через $_REQUEST все приходит .
    $vorname = $_REQUEST["vorname"];
    $nachname = $_REQUEST["nachname"];
    $email = $_REQUEST["email"];
    $telefon = $_REQUEST["telefon"];
    $fax = $_REQUEST["fax"];
    $nachricht = $_REQUEST["nachricht"];
    $xMap = $_REQUEST["xMap"];
    $yMap = $_REQUEST["yMap"];
    $scaleMap = $_REQUEST["scaleMap"];
    $typeMap = $_REQUEST["typeMap"];
    и запрос $lSqlCmd вроде правильный
    вот код всего файла .
    PHP:
    <?

      
    // ?xMap=115450&yMap=192080&scaleMap=4&typeMap=1

      
    if(isset($_REQUEST["xMap"]) && ctype_digit($_REQUEST["xMap"])) {
        
    $xMap round($_REQUEST["xMap"]);
      } else {
        
    $xMap 118590;
      }

      if(isset(
    $_REQUEST["yMap"]) && ctype_digit($_REQUEST["yMap"])) {
        
    $yMap round($_REQUEST["yMap"]);
      } else {
        
    $yMap 196850;
      }

      if(isset(
    $_REQUEST["scaleMap"]) && ctype_digit($_REQUEST["scaleMap"])) {
        if(
    <= $_REQUEST["scaleMap"] && $_REQUEST["scaleMap"] <= 10) {
          
    $scaleMap round($_REQUEST["scaleMap"]);
        } else {
          
    $scaleMap 3;
        }
      } else {
        
    $scaleMap 3;
      }

      if(isset(
    $_REQUEST["typeMap"]) && ctype_digit($_REQUEST["typeMap"])) {
        if(
    $_REQUEST["typeMap"] == || $_REQUEST["typeMap"] == 1) {
          
    $typeMap round($_REQUEST["typeMap"]);
        } else {
          
    $typeMap 0;
        }
      } else {
        
    $typeMap 0;
      }

    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xml:lang="de" lang="de" id="inselferien-de" xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    <title></title>
    <meta name="Description" content=""/>
    <meta name="Keywords" content=""/>
    <link rel="shortcut icon" href="/mallorca/img/fav.ico"/>
    <link rel="stylesheet" type="text/css" href="/mallorca/css/style.css"/>
    <!--[if IE]><link rel="stylesheet" type="text/css" href="/mallorca/css/style_ie.css" /> <![endif]-->
    <script type="text/javascript" src="/mallorca/library/prototype.js"></script>
    <script src="/mallorca/js/only-map.js" type="text/javascript"></script>
    <script type="text/javascript">
    /* <![CDATA[ */

    var map;

    window.onload = function(){
            //init();
            //slideDown();

      var MAP_WIDTH = 415;
      var MAP_HEIGHT = 259;

      map = new Map("mapDivChild", MAP_WIDTH, MAP_HEIGHT);

      map.setMoveManager(<?= $xMap ?><?= $yMap ?><?= $scaleMap ?><?= $typeMap ?>);

      map.setMoveByCallbackMoveManager(function(xMap, yMap) {
        document.fehlerformular.xMap.value = xMap;
        document.fehlerformular.yMap.value = yMap;
      });
    }

    /* ]]> */
    </script>
    <style type="text/css">
    body {background:transparent url(/mallorca/img/bg/popup.jpg)}
    </style>
    </head>
    <body>

    <?php
    if (isset ($_REQUEST["lSpeichern"])){

      
    $lSpeichern $_REQUEST["lSpeichern"];}
      else 
    $lSpeichern "";

      if(
    $lSpeichern == 'speichern')
      {
      
    // TODO htmlspecialchars для всех параметров приходящих черз request.
        
    $vorname   $_REQUEST["vorname"];
        
    $nachname  $_REQUEST["nachname"];
        
    $email     $_REQUEST["email"];
        
    $telefon   $_REQUEST["telefon"];
        
    $fax       $_REQUEST["fax"];
        
    $nachricht $_REQUEST["nachricht"];
        
    $xMap      $_REQUEST["xMap"];
        
    $yMap      $_REQUEST["yMap"];
        
    $scaleMap  $_REQUEST["scaleMap"];
        
    $typeMap   $_REQUEST["typeMap"];

        
    $lFehler          false;
        
    $lFehlerNachricht false;
        
    $lFehlerEmail     false;

        if(
    strlen($nachricht) < 10)
        {
          
    $lFehler          true;
          
    $lFehlerNachricht true;

          
    $lFehlerText 'Bitte geben Sie eine Beschreibung des von Ihnen gefundenen Fehlers an!<br /><br />';
        }

        if(
    $email != '')
        {
          if(!
    ereg("^([[:alnum:]])([[:alnum:]]|\.|\-|\_)+@([[:alnum:]])([[:alnum:]]|\.|\-|\_)+\.[[:alnum:]][[:alnum:]]+$",$email))
          {
            
    $lFehler      true;
            
    $lFehlerEmail true;

            
    $lFehlerText .= 'Die angegebene E-Mail Adresse ist keine gьltige E-Mail Adresse!';
          }
        }

        if(
    $lFehler == false)
        {
          
    // keine Fehler in der Eingabe --> Speicherung in DB

          
    require_once($_SERVER['DOCUMENT_ROOT']."/mallorca/global/inselferien.inc.php");

          
    $lDbFehler  false;
          
    $lDbEintrag false;

          
    $lDBopen connect($lPutMessage);

          if(
    $lDBopen == '0')
          {
            
    $lTimestamp date("U");

            
    $lSqlCmd  "INSERT  fehlermelden ";
            
    $lSqlCmd .= "(vorname, nachname, email, telefon, fax, nachricht, xmap, ymap, scalemap, typemap, status, timestamp )";
            
    $lSqlCmd .= " values ";
            
    $lSqlCmd .= "('$vorname', '$nachname', '$email', '$telefon', '$fax', '$nachricht', '$xMap', '$yMap', '$scaleMap', '$typeMap', 'neu', '$lTimestamp' )";

            
    $lErg mysql_db_query($gDB,$lSqlCmd);
            
    //if (!lErg){echo "ne vstavlyaet";}

            
    $lRet puterror($gPutMessage);

            if(
    $lRet==0)
            {
              
    $lDbEintrag true;

              
    $lDbEintragText 'Vielen Dank fьr Ihre Fehlerbeschreibung. Wie werden uns bemьhen, den von Ihnen gemeldeten Fehler so schnell als mцglich zu beheben.';
            }
            else
            {
              
    $lDbFehler true;

              
    $lFehlerTextDb .= 'Datenbankfehler: Bitte versuchen Sie es zu einem spдteren Zeitpunkt erneut.<br /><br />';
            }

            
    disconnect($lPutMessage);
          }
          else
          {
            
    $lDbFehler true;

            
    $lFehlerTextDb .= 'Datenbankfehler: Bitte versuchen Sie es zu einem spдteren Zeitpunkt erneut.<br /><br />';
          }
        }
      }

    ?>

    <div id="popup_container">
        <div id="popup_fehler" class="clearfix">
            <div class="popup_fehler-links">
                <h1>Fehlermeldung</h1>
                <p>Wir legen grцЯten Wert auf die Richtigkeit und Aktualitдt unserer Karten und Datenbankeintrдge. Wenn Sie einen Fehler entdecken, teilen Sie ihn uns bitte mit, damit wir ihn verbessern und allen Nutzern die bestmцgliche Qualitдt liefern kцnnen.</p>
                <h2>Nutzung und Weitergabe der personenbezogenen Daten</h2>
                <p> Die von dem Nutzer zur Verfьgung gestellten personenbezogenen Daten werden ausschlieЯlich zum Zweck der technischen Administration der Webseiten und zur Erfьllung der Wьnsche und Anforderungen, also in der Regel zur Korrektur der vom Nutzer gemeldeten Fehler verwendet. Eine Weitergabe der personenbezogenen Daten des Nutzers an Dritte erfolgt nicht.</p>
                <?php
                $lDbEintrag 
    "true";
                
    $lDbEintragText ="";
                  if(
    $lDbEintrag == true)
                  {
                    echo 
    "<br /><br /><font color='#00A61E'>$lDbEintragText</font>\n";

                        
    $vorname   '';
                        
    $nachname  '';
                        
    $email     '';
                        
    $telefon   '';
                        
    $fax       '';
                        
    $nachricht '';
                  }
                   
    $lFehler "true";
                  if(
    $lFehler == true)
                  {
                  
    $lFehlerText " ";
                    echo 
    "<br /><br /><font color='#FF0000'>$lFehlerText</font>\n";
                  }
                  
    $lDbFehler "true";
                  if(
    $lDbFehler == true)
                  {
                  
    $lFehlerTextDb "";
                    echo 
    "<br /><br /><font color='#FF0000'>$lFehlerTextDb</font>\n";
                  }
                
    ?>
                <form name="fehlerformular" action="/mallorca/php/fehlermelden.php" method="post">
                <fieldset>
                    <label class='obligatory'>Vorname:*</label><br/>
                    <input name="vorname" type="text" value="<?php echo "$vorname"?>" size="40" maxlength="100" />
                    <label class='obligatory'>Nachname:*</label><br/>
                    <input name="nachname" type="text" value="<?php echo "$nachname"?>" size="40" maxlength="100" />
                    <?php
                    $lFehlerEmail 
    "true";
                        if(
    $lFehlerEmail == true)
                        {
                        echo 
    "<font color='#FF0000'><label class='obligatory'>E-Mail Adresse:*</label></font><br/>\n";
                        }
                        else
                        {
                        echo 
    "<label class='obligatory'>E-Mail Adresse:*</label><br/>\n";
                        }
                    
    ?>
                    <input name="email" type="text" value="<?php echo "$email"?>" size="40" maxlength="100" />
                    <label class='obligatory'>Telefon:*</label><br/>
                    <input name="telefon" type="text" value="<?php echo "$telefon"?>" size="40" maxlength="100" />
                    <label class='obligatory'>Fax:*</label><br/>
                    <input name="fax" type="text" value="<?php echo "$fax"?>" size="40" maxlength="100" />
            </div>
            <div class="popup_fehler-rechts">
                <?php
                $lFehlerNachricht 
    "true";
                    if(
    $lFehlerNachricht == true)
                    {
                    echo 
    "<font color='#FF0000'><label class='obligatory'>Bitte beschreiben Sie den gefunden Fehler:</label></font>\n";
                    }
                    else
                    {
                    echo 
    "<label class='obligatory'>Bitte beschreiben Sie den gefundenen Fehler:</label>\n";
                    }
                
    ?>
                <textarea name="nachricht" cols="40" rows="10"><?php echo "$nachricht"?></textarea>
                <div id="mapDivChild" style="opacity: 1.0; overflow: hidden;position: relative; border: 1px solid; width: 0px; height: 0px;"></div>
                <div class="popup_fehler-karte">
                    <p>*= Die Angabe Ihrer persцnlichen Daten ist freiwillig</p> <input class="submit" type="submit" value="" name="submit" />
                </div>
                </fieldset>
                <input name="xMap" type="hidden" value="<?= $xMap ?>" />
                <input name="yMap" type="hidden" value="<?= $yMap ?>" />
                <input name="scaleMap" type="hidden" value="<?= $scaleMap ?>" />
                <input name="typeMap" type="hidden" value="<?= $typeMap ?>" />
                <input name="lSpeichern" type="hidden" value="speichern" />
                </form>
            </div>
        </div>
    </div>

    </body>
    </html>
     
    #1 barnaki, 8 Jul 2010
    Last edited by a moderator: 8 Jul 2010
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    barnaki "вроде"?
    1) После вызова mysql_db_query выполните: echo mysql_errno().' = '.mysql_error();
    2) сделайте var_dump($lSqlCmd); перед вызовом mysql_db_query и попробуйте полученный запрос произвести вручную (например в phpMyAdmin)
    3) что собственно скрывается за mysql_db_query? Порядок параметров правильный?
     
    _________________________