Sachen gibts - Das kann nicht sein

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sachen gibts - Das kann nicht sein

    Eine besserer Titel ist mir nicht eingefallen, da ich total auf dem Schlauch stehe. Ich habe seit 2 Jahren meinen Shop am laufen und hatte nie solch ein einfaches Problem bei dem ich kein Rat mehr weis.

    Das ist kein Witz was ich unten schreibe:
    PHP-Code:
    $back 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    echo 
    $back;
    MySQLQuery("UPDATE tbl_session SET    back ='".$back."' WHERE    sessionid ='".session_id()."'"); 
    beim echo (nur zum Test) gibt echo 'http://www.schuh-welt.de/shop/damenschuhe-hausschuhe/ ' aus.

    ABER!!!!

    in die datenbank wird eingetragen 'http://www.schuh-welt.de/shop/images/background/filter_layer_middle_bg.png'


    ???

    Wenn ich mir den String anschaue der per

    PHP-Code:
    function MySQLQuery($Query) {
        if (!
    mysql_select_db('intershop'MYSQL)) {
        
    errmailer('Kein Select auf intershop moeglich!');
        
    //exit;
    }

        
    $dbQy mysql_query("SET NAMES 'utf8'",MYSQL);
        
    $dbQy mysql_query($Query,MYSQL);// or errmailer($Query);
        
    if ($dbQy == Falseerrmailer($Query);
        return 
    $dbQy;

    anschaue, wird wirklich

    UPDATE tbl_session SET back ='http://www.schuh-welt.de/shop/images/background/filter_layer_middle_bg.png' WHERE sessionid ='e374e18202f0cc4155ac624c276a######'

    abgesetzt!

    Irgend eine Idee????????

    Es wird immer /images/background/transparent.png oder /images/background/filter_layer_middle_bg.png angehängt

    Gruß
    Christian

  • #2
    Also ich bin mir sicher, dass oben der Code nicht der Realität entspricht. Um da mehr dazu sagen zu können, müsste man aber den kompletten (relevanten!) Code sehen oder gar debuggen können.

    Kommentar


    • #3
      Ich nehme mir gleich den Strick

      Ich muss noch eines dazuschreiben - das ist nur auf unserem Produktivsystem.

      auf unserem Testserver habe ich das nicht.

      ich habe mir mal schnell einen Logger geschrieben der alle datenbankaufrufe von meiner session in eine Datei mit schreibt:

      Obwohl ich nur einmal

      $back ='http://www.schuh-welt.de/shop/damenschuhe-sneaker/';

      $strQuery = "UPDATE tbl_session SET back ='".$back."' WHERE sessionid ='".session_id()."'";

      MySQLQuery($strQuery);

      aufrufe wird 4 x der Update befehl mitgeloggt!!!!


      UPDATE tbl_session SET back ='http://www.schuh-welt.de/shop/damenschuhe-sneaker/' WHERE sessionid ='d2342f7e3621f873cf6fbca3c####'

      UPDATE tbl_session SET back ='http://www.schuh-welt.de/shop/damenschuhe-sneaker/images/background/transparent.png' WHERE sessionid ='d2342f7e3621f873cf6fbca3####'

      UPDATE tbl_session SET back ='http://www.schuh-welt.de/shop/images/background/filter_layer_bg.png' WHERE sessionid ='d2342f7e3621f873cf6fbca3c0####'

      UPDATE tbl_session SET back ='http://www.schuh-welt.de/shop/images/background/filter_layer_middle_bg.png' WHERE sessionid ='d2342f7e3621f873cf6fbca####'

      Kommentar


      • #4
        Demnach stimmt deine aussage oben nicht so ganz...

        Sieht aber ganz danach aus, als ob der code in einer zentralen Datei liegt, die eben von mehreren urls aufgerufen wird. Da müsste man jetzt die Architektur kennen.

        Steht $back ='http://www.schuh-welt.de/shop/damenschuhe-sneaker/'; wirklich so hard-coded in der Datei?

        Kommentar


        • #5
          Zitat von TobiaZ Beitrag anzeigen
          Steht $back ='http://www.schuh-welt.de/shop/damenschuhe-sneaker/'; wirklich so hard-coded in der Datei?
          NEIN!

          PHP-Code:
          $back 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
          [COLOR=#000000][COLOR=#006600]habe ich nur hingeschrieben zur besseren verständniss.

          Ich habe jetzt mal einen Seitenaufruf meiner Session alle Datenbewegungen vom Aufruf bis zur Anzeige
          mitgeloggt.

          [/COLOR][/COLOR]
          PHP-Code:
          SELECT    id    FROM    tbl_session WHERE    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'

          SELECT    tbl_session.* FROM tbl_session    WHERE    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'    AND    status    =    0 limit 1 

          SELECT    tbl_orders
          .customerid,tbl_orders.delID,tbl_orders.logintbl_customer.prename,tbl_customer.name,tbl_customer.email,tbl_customer.fgSpecialPrice FROM tbl_orders left join tbl_customer on tbl_orders.customerid tbl_customer.id     WHERE tbl_orders.login=and    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'

          SELECT SUM(qty) AS summeqty,SUM(qty price) AS summeprice FROM tbl_basket WHERE ordered AND tbl_basket.sessionID 'd2342f7e3621f873cf6fbca3c06287c8'

          UPDATE tbl_session SET    back ='http://www.schuh-welt.de/shop/damenschuhe-ballerinas/' WHERE    sessionid ='d2342f7e3621f873cf6fbca3c06287c8'

          SELECT main.id, ( select min(originalpricefrom tbl_prices where main.id tbl_prices.product_id) AS originalprice ,
                              ( 
          select min(pricefrom tbl_prices where main.id tbl_prices.product_id) AS price
                              
          ,specialprice,ordernrmain.name,categorytxt2 FROM main
                          left join tbl_lastlook on main
          .id tbl_lastlook.productid
                        where tbl_lastlook
          .sessionid='d2342f7e3621f873cf6fbca3c06287c8' group by tbl_lastlook.productid order by  tbl_lastlook.id DESC Limit 6

          INSERT    INTO    tbl_sitelog    
          session,    site,script,timestamp,isbot,test,noIndex,test2)    VALUES    ('d2342f7e3621f873cf6fbca3c06287c8','/shop/damenschuhe-ballerinas/','/shop/categories.php',
                                      
          '1340377565','0','','','')

           
          UPDATE tbl_session Set counter counter 1 where sessionid 'd2342f7e3621f873cf6fbca3c06287c8'
           
           


           

          SELECT    id    FROM    tbl_session WHERE    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'

          SELECT    tbl_session.* FROM tbl_session    WHERE    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'    AND    status    =    0 limit 1 

          SELECT    tbl_orders
          .customerid,tbl_orders.delID,tbl_orders.logintbl_customer.prename,tbl_customer.name,tbl_customer.email,tbl_customer.fgSpecialPrice FROM tbl_orders left join tbl_customer on tbl_orders.customerid tbl_customer.id     WHERE tbl_orders.login=and    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'

          SELECT SUM(qty) AS summeqty,SUM(qty price) AS summeprice FROM tbl_basket WHERE ordered AND tbl_basket.sessionID 'd2342f7e3621f873cf6fbca3c06287c8'

          UPDATE tbl_session SET    back ='http://www.schuh-welt.de/shop/damenschuhe-ballerinas/images/background/transparent.png' WHERE    sessionid ='d2342f7e3621f873cf6fbca3c06287c8'






          SELECT    id    FROM    tbl_session WHERE    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'

          SELECT    tbl_session.* FROM tbl_session    WHERE    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'    AND    status    =    0 limit 1 

          SELECT    tbl_orders
          .customerid,tbl_orders.delID,tbl_orders.logintbl_customer.prename,tbl_customer.name,tbl_customer.email,tbl_customer.fgSpecialPrice FROM tbl_orders left join tbl_customer on tbl_orders.customerid tbl_customer.id     WHERE tbl_orders.login=and    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'

          SELECT SUM(qty) AS summeqty,SUM(qty price) AS summeprice FROM tbl_basket WHERE ordered AND tbl_basket.sessionID 'd2342f7e3621f873cf6fbca3c06287c8'

          UPDATE tbl_session SET    back ='http://www.schuh-welt.de/shop/images/background/filter_layer_bg.png' WHERE    sessionid ='d2342f7e3621f873cf6fbca3c06287c8'





          SELECT    id    FROM    tbl_session WHERE    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'

          SELECT    tbl_session.* FROM tbl_session    WHERE    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'    AND    status    =    0 limit 1 

          SELECT    tbl_orders
          .customerid,tbl_orders.delID,tbl_orders.logintbl_customer.prename,tbl_customer.name,tbl_customer.email,tbl_customer.fgSpecialPrice FROM tbl_orders left join tbl_customer on tbl_orders.customerid tbl_customer.id     WHERE tbl_orders.login=and    sessionid    =    'd2342f7e3621f873cf6fbca3c06287c8'

          SELECT SUM(qty) AS summeqty,SUM(qty price) AS summeprice FROM tbl_basket WHERE ordered AND tbl_basket.sessionID 'd2342f7e3621f873cf6fbca3c06287c8'

          UPDATE tbl_session SET    back ='http://www.schuh-welt.de/shop/images/background/filter_layer_middle_bg.png' WHERE    sessionid ='d2342f7e3621f873cf6fbca3c06287c8' 
          [COLOR=#000000][COLOR=#006600]
          Wohl angemerkt das dies EIN Seitenaufruf war und nur die Datenbankaufrufe sind mir session
          und mir klar ist das der Datenbankserver bei viel zugriffen ganz schön unt feuer steht.

          Kann es sein der PHP Parser spinnt?

          Auf dem Produktivsystem läuft [/COLOR][/COLOR]4.4.9[COLOR=#000000][COLOR=#006600]

          Ich habe das gleiche auf unserem Testsystem mit 5.0.1 1x aufruf 1 x Datenbank

          was kann diese zirkuären aufruf verursachen.

          Gruß
          Christian






          [/COLOR][/COLOR]

          Kommentar


          • #6
            NEIN!
            Dann poste doch bitte lieber den richtigen Code. So wird das Thema nur unverständlicher.

            Der Code wird aus irgend einem Grund auch von Bilddateien ausgeführt. Aber noch mal, ich weiß nicht wie deine Seite aufgebaut ist. Du gibst es offensichtlich auch nicht Preis. Gut vorstellbar, dass du alle Requests durch eine zentrale Bootstrap-Datei jagst. Aber das ist nur spekulation.

            Kommentar


            • #7
              Okay, habe deinen Fehler gefunden. Du hast vermutlich falsche Bildpfade in deiner Seite verwendet. Wenn du mal die URLs aufrufst, siehst du, dass gar keine Bilder, sondern die Seite geladen wird. Das erklärt dann alles.

              Folgender Beispiel-Pfad ist definitiv falsch: http://www.schuh-welt.de/shop/damens...-gibt-es-nicht. Statt einer 404 Meldung zeigst du aber einfach eine Seite an. Das würde ich generell fixen und dann noch den Quelltext nach den falschen Bildpfaden absuchen und du bist fertig.

              Kommentar


              • #8
                Meine Vermutung wäre, dass es die betreffenden Bilder gar nicht gibt im Dateisystem, und deshalb der 404 ErrorHandler oder irgendeine Art von Rewriting anspringt – was dann zum erneuten Aufruf des Scriptes führt, aber eben mit den Bildadressen als REQUEST_URI …
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  der 404

                  mod_rewrite

                  ErrorDocument 404 /shop/suche/?producer=NIL

                  hat es ausgelöst.

                  Sollte bewirken das wenn eine Seite nicht mehr existiert eine Seite mit auswahl angezeigt wird.

                  Danke!!

                  Es sind bilddateien wo der Pfad nicht stimmt.

                  Oh mein Gott der Puls war heute richtig hoch.

                  Gruß und nochmals danke
                  Christian

                  Kommentar


                  • #10
                    Bevor du ihn wieder runterfährst: $_SERVER['REQUEST_URI'] kann teilweise vom Nutzer gefüllt werden (der kann beliebige Parameter an einen URL anhängen oder so) und ist deshalb hochgradig anfällig für SQL-Injection-Attacken. In deinem ersten Post sehe ich kein Escaping.
                    Zuletzt geändert von mermshaus; 23.06.2012, 10:17.

                    Kommentar


                    • #11
                      Vielen Dank,

                      an diese hatte ich nicht mehr gedacht. Alle anderen Select etc. sind abgeschirmt, aber die einfachsten nicht.

                      Wurde geändert.

                      Gruß
                      Christian

                      Kommentar

                      Lädt...
                      X