Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: include - nie wraca w to samo miejsce
Forum PHP.pl > Forum > PHP
zwierzołak
cześć,

Mam taki bardzo dziwny problem - w pliku a.php inlcuduje(w linii 400) plik b.php
Problem w tym, że po przerobieniu tego incudowanego pliku b.php skrypt nie wraca do następnej(401) linii w pliku a.php, tylko do linii 130 questionmark.gif Potem znowu dochodzi do includa i tak w kółko...

Może ktoś zetknął się z czymś podobnym, dodam, że dzieje się tak w serwisie phpAuction 3.2 GPL jakby coś... a debuguje to w Eclipse PDT linia po linii....
czachor
Bez kodu nikt Ci nie pomoże.
Lejto
powiem ci że nie za bardzo rozumiem, może spróbuj z require_once();?
zwierzołak
ok, nie wiem czy to coś rozjaśni, ale wstawię kod.

to jest fragment pierwszego pliku:
Kod
459 if (!$winner_present) {
     460 // // ######################################################
     461 // // Send mail to the seller if no winner
     462 if($Seller['endemailmode']!='cum'){
     463     include_once $include_path.'endauction_nowinner.inc.php'; // <-- tutaj jest include o którym mowa
     464 }else{
     465     #// Save in the database to send later
     466    @mysql_query("INSERT INTO PHPAUCTIONXL_pendingnotif VALUES (
     467                     NULL,
     468                     ".$Auction['id'].",
     469                     ".$Seller['id'].",
     470                     '',
     471                     '".serialize($Auction)."',
     472                     '".serialize($Seller)."',
     473                     '".date("Ymd")."')");
     474 }
     475 }

a to jest cały includowany (w linii 463) plik:
Kod
<?#//v.3.1.0
     if(!defined('INCLUDED')) exit("Access denied");
     #///////////////////////////////////////////////////////
     #//  COPYRIGHT 2004 Phpauction.org ALL RIGHTS RESERVED//
     #///////////////////////////////////////////////////////
    
     #// Check if the e-mail has to be sent or not
     $emailmode = @mysql_result(@mysql_query("SELECT endemailmode FROM PHPAUCTIONXL_users WHERE id='".$Seller['id']."'"),0,"endemailmode");
     if($emailmode != 'one') return;
    
     #// Retrieve user's prefered language
     $USERLANG = @mysql_result(@mysql_query("SELECT language FROM PHPAUCTIONXL_userslanguage WHERE user='".$Seller['id']."'"),0,"language");
     if(!isset($USERLANG)) $USERLANG = $SETTINGS['defaultlanguage'];
    
     $buffer = file($include_path."mail_endauction_nowinner.".$USERLANG.".inc.php");
    
     $i = 0;
    
     $j = 0;
    
     while($i < count($buffer)){
    
         if(!ereg("^#(.)*$",$buffer[$i])){
    
             $skipped_buffer[$j] = $buffer[$i];
    
             $j++;
    
         }
    
         $i++;
    
     }
    
     #// Handle time correction
     $ENDS = explode(" ",$ends_string);
     //$DATE = explode("-",$ENDS[0]);
     $HOUR = explode(":",$ENDS[3]);
     $ENDS_DATE = ArrangeDateNoCorrMesCompleto($ENDS[1],$ENDS[0],$ENDS[2],$HOUR[0],$HOUR[1]);
    
    
    
     //--Reteve message
    
     $message = implode($skipped_buffer,"");
    
     //--Change TAGS with variables content
    
     $message = ereg_replace("<#s_name#>",$Seller['name'],$message);
     $message = ereg_replace("<#s_nick#>",$Seller['nick'],$message);
     $message = ereg_replace("<#s_email#>",$Seller['email'],$message);
     $message = ereg_replace("<#s_address#>",$Seller['address'],$message);
     $message = ereg_replace("<#s_city#>",$Seller['city'],$message);
     $message = ereg_replace("<#s_prov#>",$Seller['prov'],$message);
     $message = ereg_replace("<#s_country#>",$Seller['country'],$message);
     $message = ereg_replace("<#s_zip#>",$Seller['zip'],$message);
     $message = ereg_replace("<#s_phone#>",$Seller['phone'],$message);
    
     $message = ereg_replace("<#w_report#>",$report_text,$message);
    
     $message = ereg_replace("<#i_title#>",$Auction['title'],$message);
     $message = ereg_replace("<#i_description#>",substr(strip_tags($Auction['description']),0,50)."...",$message);
     $auction_url = "$SITE_URL"."item.php?id=".$Auction['id'];
     $message = ereg_replace("<#i_url#>",$auction_url,$message);
     $message = ereg_replace("<#i_ends#>",$ENDS_DATE,$message);
    
     $message = ereg_replace("<#c_sitename#>",$SETTINGS[sitename],$message);
     $message = ereg_replace("<#c_siteurl#>",$SETTINGS[siteurl],$message);
     $message = ereg_replace("<#c_adminemail#>",$SETTINGS[adminmail],$message);
    
     mail($Seller["email"],$MSG_112.$MSG_908,stripslashes($message),"From:$SETTINGS[sitename] <$SETTINGS[adminmail]>\n"."Content-Type: text/html; charset=$CHARSET");
    
     ?>


Po przerobieniu tego inludowanego pliku skrypt powinien chyba kontynuować od linii 464 w pierwszym pliku.. ale zamiast tego kontynuuje od linii 130 w pierwszym pliku
nexis
Parser PHP analizuje skrypt PHP od pierwszej linijki do ostatniej i nie ma możliwości, żeby wracał do poprzednich linijek, więc Twoje obserwacje są pewnie błędne i problem leży w czymś innym.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.