Page 1 sur 1

limite des 30 sec ?

Posté : 17 févr. 2006, 18:50
par Steffy
Bonjour tout le monde, je viens vous demandez de l'aide pour un script de "mass PM"

J'essaye d'envoyer en mass des messages privé, le probléme c'est qu'avec la limite des 30 sec d'execution de php.ini le script ne va pas jusqu'au bout. Comment évité cette limite des 30 sec ? (a part changer la limite dans php.ini biensur :-p)

voilà le script si sa peu aider, est-ce que quelqu'un aurait une idée ?
$DB->simple_construct( array( 'select' => 's.member_id, c.name',
									  'from'   => 'pfields_content s LEFT JOIN '.SQL_PREFIX.'members c ON (s.member_id=c.id) ',
									  'where'  => " $condition " ) );
		$DB->simple_exec();

		if ( $DB->get_num_rows() )
		{
			while ( $row = $DB->fetch_row() )
			{
$val = "|";
$msg = $ibforums->input['Post'];
$ids[] = $row['name'];
}
foreach($ids as $name) { 
if ($to_name != "") $to_name.="|"; 
$to_name.= $name;
}

			$to_users = $std->clean_value( $std->txt_UNhtmlspecialchars($to_name) );
			$to_array = explode('|', $to_users);

			if ( is_array($to_array) && count($to_array) )
			{
				foreach ( $to_array as $k )
				{
					$tmp[] = $k;
				}
			}
			else
			{
				$tmp[] = $to_users;
			}

			$pm_to = array();
			$pm_to = array_unique($tmp);

			require_once( ROOT_PATH.'sources/lib/msg_functions.php' );
			$msglib = new msg_functions(1);
			$msglib->init();

			for ( $i = 0; $i < count($pm_to); $i++ )
			{
				$msglib->to			 = $pm_to[$i];
				$msglib->from_member = $ibforums->member;
				$msglib->msg_title	 = $titl;
				$msglib->msg_post	 = $msg;
				$msglib->force_pm    = 1;

				$msglib->send_pm();

				if ( $msglib->error ) return;
			}

   
  }

            //-----------------------------------------
		// Swap and serve...
		//-----------------------------------------
		
		$text = preg_replace( "/<#FROM_MEMBER#>/"   , $ibforums->member['name'] , $ibforums->lang['sent_text'] );
		$text = preg_replace( "/<#MESSAGE_TITLE#>/" , $ibforums->input['msg_title'], $text );
		
		$print->redirect_screen( $text , "&act=Msg&CODE=01" );

 	

}

Posté : 17 févr. 2006, 19:01
par zigz4g
Salut,

tu peux utiliser ini_set pour modifier le comportement de php.
Je crois toutefois que cette fonction peut etre limitee ou meme interdite par l'hebergeur. A verifier biensur, peut etre que quelqu'un en sais plus sur ce forum.

Posté : 17 févr. 2006, 19:21
par Spols
je n'ai pas lu ton code mais moi j'ai résolu le problème en divisant le travail a effectuer et en mettant plusieur header l'un aprés l'autre, il faut alors penser à un moyen de trtansmettre les donnée d'une fois à l'autre

l'application était la création de grilles de sudoku résolu en 5 étapes et dont les données était transferer par fichier txt