Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marchelo

[Resolvido] Warning: sprintf() [function.sprintf]:

Recommended Posts

Pessoal, sou novo em PHP.

 

Cada vez que concluo um cadastro no site aparece o erro abaixo:

 

Warning: sprintf() [function.sprintf]: Argument number must be greater than zero in language/english/mails/new_item_seller_confirmation.php on line 80

O codigo do arquivo acima esta agora abaixo, se alguém puder me ajudar agradeço.

 

<?

if ( !defined('INCLUDED') ) { die("Access Denied"); }

$row_details = $db->get_sql_row("SELECT a.*, u.name AS user_name, u.email, u.mail_confirm_to_seller FROM " . DB_PREFIX . "auctions a
LEFT JOIN " . DB_PREFIX . "users u ON u.user_id=a.owner_id WHERE a.auction_id='" . $mail_input_id . "'");

$send = ($row_details['mail_confirm_to_seller']) ? true : false;

## text message - editable
$text_message = 'Dear %1$s,

You have posted the following auction on %2$s:

- auction name: %3$s
- auction type: %4$s
- quantity offered: %5$s

- category: %6$s
- additional category: %7$s

- start price: %8$s
- buy out price: %9$s
- reserve price: %10$s

- closing date: %11$s

To view the auction details page, please click on the link below:

%12$s

Thank you for your submission.

Best regards,
The %13$s staff';

## html message - editable
$html_message = 'Dear %1$s, <br>
<br>
You have posted the following auction on <b>%2$s</b>: <br>
<ul>
<li>auction name: <b>%3$s</b> </li>
<li>auction type: <b>%4$s</b> </li>
<li>quantity offered: <b>%5$s</b> </li>
</ul>
<ul>
<li>category: <b>%6$s</b> </li>
<li>additional category: <b>%7$s</b> </li>
</ul>
<ul>
<li>start price: <b>%8$s</b> </li>
<li>buy out price: <b>%9$s</b> </li>
<li>reserve price: <b>%10$s</b> </li>
</ul>
<ul>
<li>closing date: <b>%11$s</b> </li>
</ul>
[ <a href="%12$s">Click here</a> ] to view the auction details page. <br>
<br>
Thank you for your submission. <br>
<br>
Best regards, <br>
The %13$s staff';


$main_category = category_navigator($row_details['category_id'], false, true, null, null, GMSG_NONE_CAT);
$addl_category = category_navigator($row_details['addl_category_id'], false, true, null, null, GMSG_NONE_CAT);

$start_price = $fees->display_amount($row_details['start_price'], $row_details['currency']);
$buyout_price = $fees->display_amount($row_details['buyout_price'], $row_details['currency']);
$reserve_price = $fees->display_amount($row_details['reserve_price'], $row_details['currency']);

$closing_date = show_date($row_details['end_time']);

$auction_link = process_link('auction_details', array('name' => $row_details['name'], 'auction_id' => $row_details['auction_id']));


$text_message = sprintf($text_message, $row_details['user_name'], $setts['sitename'], $row_details['name'], $row_details['auction_type'], 
$row_details['quantity'], $main_category, $addl_category, $start_price, $buyout_price, $reserve_price, $closing_date, $auction_link, 
$setts['sitename']);

$html_message = sprintf($html_message, $row_details['user_name'], $setts['sitename'], $row_details['name'], $row_details['auction_type'], 
$row_details['quantity'], $main_category, $addl_category, $start_price, $buyout_price, $reserve_price, $closing_date, $auction_link, 
$setts['sitename']);

send_mail($row_details['email'], 'Auction Setup Confirmation', $text_message, 
$setts['admin_email'], $html_message, null, $send);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Tente trocar sprintf por print

 

Spawn

 

Troquei o código sprintf por print, apresentou o erro abaixo.

 

Parse error: syntax error, unexpected ',' in .........../language/english/mails/new_item_seller_confirmation.php on line 80

 

Ai quando mudei o código para printf, o e-mail que deve ser enviado após cadastro do anúncio, printou na tela do computer.

 

Ai coloquei novamente o código antigo, e voltou a aparecer Warning: sprintf() [function.sprintf]: Argument number must be greater than zero in /................./language/english/mails/new_item_seller_confirmation.php on line 80

 

Será que tem alguma linha de código que possa colocar, para solucionar, ele diz que o agurmento está em zero? Como pode a linha está cheia do código.

Lamento é que sou novato no PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá... Então o problema está nos argumentos que vão pra função. Acredito que tenha alguma coisa errada na consulta... Vamos debugar...

 

Coloque isto no seu código.

 

echo '<br/>$row_details['user_name'] tem valor de '.$row_details['user_name'];
echo '<br/>$setts['sitename'] tem valor de '. $setts['sitename'];
echo '<br/>$row_details['name'] tem valor de '.$row_details['name'];
echo '<br/>$row_details['auction_type'] tem valor de '.$row_details['auction_type'];
echo '<br/>$row_details['quantity'] tem valor de '.$row_details['quantity'];
echo '<br/>$main_category tem valor de '.$main_category;
echo '<br/>$addl_category tem valor de '.$addl_category;
echo '<br/>$start_price tem valor de '.$start_price;
echo '<br/>$buyout_price tem valor de '.$buyout_price;
echo '<br/>$reserve_price tem valor de '.$reserve_price;
echo '<br/>$closing_date tem valor de '.$closing_date;
echo '<br/>$auction_link tem valor de '.$auction_link;
echo '<br/>$setts['sitename'] tem valor de '.$setts['sitename'];
exit();
$text_message = sprintf($text_message, $row_details['user_name'], $setts['sitename'], $row_details['name'], $row_details['auction_type'], 
        $row_details['quantity'], $main_category, $addl_category, $start_price, $buyout_price, $reserve_price, $closing_date, $auction_link, 
        $setts['sitename']);

Posta aqui o que imprimir.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá... Então o problema está nos argumentos que vão pra função. Acredito que tenha alguma coisa errada na consulta... Vamos debugar...

 

Coloque isto no seu código.

 

echo '<br/>$row_details['user_name'] tem valor de '.$row_details['user_name'];
echo '<br/>$setts['sitename'] tem valor de '. $setts['sitename'];
echo '<br/>$row_details['name'] tem valor de '.$row_details['name'];
echo '<br/>$row_details['auction_type'] tem valor de '.$row_details['auction_type'];
echo '<br/>$row_details['quantity'] tem valor de '.$row_details['quantity'];
echo '<br/>$main_category tem valor de '.$main_category;
echo '<br/>$addl_category tem valor de '.$addl_category;
echo '<br/>$start_price tem valor de '.$start_price;
echo '<br/>$buyout_price tem valor de '.$buyout_price;
echo '<br/>$reserve_price tem valor de '.$reserve_price;
echo '<br/>$closing_date tem valor de '.$closing_date;
echo '<br/>$auction_link tem valor de '.$auction_link;
echo '<br/>$setts['sitename'] tem valor de '.$setts['sitename'];
exit();
$text_message = sprintf($text_message, $row_details['user_name'], $setts['sitename'], $row_details['name'], $row_details['auction_type'], 
        $row_details['quantity'], $main_category, $addl_category, $start_price, $buyout_price, $reserve_price, $closing_date, $auction_link, 
        $setts['sitename']);

Posta aqui o que imprimir.

 

Carlos Eduardo

 

Carlos Eduardo,

 

Veja se fiz certo

 

Apaguei a primeira linha que sprintf e coloquei o código acima, ai apareceu o seguinte erro abaixo

 

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /......../language/english/mails/new_item_seller_confirmation.php on line 80

 

Ai acabei tirando o código acima e deixei como estava, vou fazer outros testes ok

Por Enquanto é só.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mal meu... esqueci de escapar as aspas simples...

 

echo '<br/>$row_details[\'user_name\'] tem valor de '.$row_details['user_name'];
echo '<br/>$setts[\'sitename\'] tem valor de '. $setts['sitename'];
echo '<br/>$row_details[\'name\'] tem valor de '.$row_details['name'];
echo '<br/>$row_details[\'auction_type\'] tem valor de '.$row_details['auction_type'];
echo '<br/>$row_details[\'quantity\'] tem valor de '.$row_details['quantity'];
echo '<br/>$main_category tem valor de '.$main_category;
echo '<br/>$addl_category tem valor de '.$addl_category;
echo '<br/>$start_price tem valor de '.$start_price;
echo '<br/>$buyout_price tem valor de '.$buyout_price;
echo '<br/>$reserve_price tem valor de '.$reserve_price;
echo '<br/>$closing_date tem valor de '.$closing_date;
echo '<br/>$auction_link tem valor de '.$auction_link;
echo '<br/>$setts[\'sitename\'] tem valor de '.$setts['sitename'];
exit();
$text_message = sprintf($text_message, $row_details['user_name'], $setts['sitename'], $row_details['name'], $row_details['auction_type'], 
        $row_details['quantity'], $main_category, $addl_category, $start_price, $buyout_price, $reserve_price, $closing_date, $auction_link, 
        $setts['sitename']);

Tenta agora

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mal meu... esqueci de escapar as aspas simples...

 

echo '<br/>$row_details[\'user_name\'] tem valor de '.$row_details['user_name'];
echo '<br/>$setts[\'sitename\'] tem valor de '. $setts['sitename'];
echo '<br/>$row_details[\'name\'] tem valor de '.$row_details['name'];
echo '<br/>$row_details[\'auction_type\'] tem valor de '.$row_details['auction_type'];
echo '<br/>$row_details[\'quantity\'] tem valor de '.$row_details['quantity'];
echo '<br/>$main_category tem valor de '.$main_category;
echo '<br/>$addl_category tem valor de '.$addl_category;
echo '<br/>$start_price tem valor de '.$start_price;
echo '<br/>$buyout_price tem valor de '.$buyout_price;
echo '<br/>$reserve_price tem valor de '.$reserve_price;
echo '<br/>$closing_date tem valor de '.$closing_date;
echo '<br/>$auction_link tem valor de '.$auction_link;
echo '<br/>$setts[\'sitename\'] tem valor de '.$setts['sitename'];
exit();
$text_message = sprintf($text_message, $row_details['user_name'], $setts['sitename'], $row_details['name'], $row_details['auction_type'], 
        $row_details['quantity'], $main_category, $addl_category, $start_price, $buyout_price, $reserve_price, $closing_date, $auction_link, 
        $setts['sitename']);

Tenta agora

 

Carlos Eduardo

 

Boa Noite Carlos,

 

Fiz a Mudança com o novo código, após cadastrar um anúncio a tela aparece o seguinte código na tela e não sai dela de jeito nenhum.

 

$row_details['user_name'] tem valor de XXXXX

$setts['sitename'] tem valor de XXXXXXXXXXXXXXXXXX

$row_details['name'] tem valor de XXXXXXXXX

$row_details['auction_type'] tem valor de standard

$row_details['quantity'] tem valor de 1

$main_category tem valor de Anuncio XXXX

$addl_category tem valor de -- nenhum --

$start_price tem valor de BRL 000,00

$buyout_price tem valor de BRL 000,00

$reserve_price tem valor de -

$closing_date tem valor de 08 Oct. 2009 21:35:20

$auction_link tem valor de http://www.xxxxx.com.br/Anúncio Descrição,name,100023,

auction_id,auction_details

$setts['sitename'] tem valor de Tema do Site

 

Acima só alterei os dados do anúncio para ser discreto ok

 

Bem eu Até apaguei onde esta o código debug e coloque no final apenas o sprinf código que você criou e mesmo assim acontece o mesmo erro, vou fazer outros testes se tiver algum resultado positivo lhe informo.

 

Grato Pela ajuda que vem dando.

 

Marcelo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta colocar aspa dupla no $text_message e no $html_message. Assim...

 

$text_message = "Dear %1$s,

You have posted the following auction on %2$s:

        - auction name: %3$s
        - auction type: %4$s
        - quantity offered: %5$s

        - category: %6$s
        - additional category: %7$s

        - start price: %8$s
        - buy out price: %9$s
        - reserve price: %10$s

        - closing date: %11$s

To view the auction details page, please click on the link below:

%12$s

Thank you for your submission.

Best regards,
The %13$s staff";

Veja se resolve... Tentativa e erro...

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta colocar aspa dupla no $text_message e no $html_message. Assim...

 

$text_message = "Dear %1$s,

You have posted the following auction on %2$s:

        - auction name: %3$s
        - auction type: %4$s
        - quantity offered: %5$s

        - category: %6$s
        - additional category: %7$s

        - start price: %8$s
        - buy out price: %9$s
        - reserve price: %10$s

        - closing date: %11$s

To view the auction details page, please click on the link below:

%12$s

Thank you for your submission.

Best regards,
The %13$s staff";

Veja se resolve... Tentativa e erro...

 

Carlos Eduardo

 

Boa Noite, Carlos

 

Fiz a Alteração apenas no jogo das ASPAS Dupla e deu certo o erro foi eliminado, fico muito grato.

Já venho tentando descobrir esse erro a muito tempo, ainda ficarei bom em PHP.

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Matias, tudo bem?

 

Me ocorreu um erro parecido com este que o Marchelo postou.

Quando tiver um tempinho e puder dar uma olhada ficaria eternamente grato.

Pois ninguém por enquanto conseguiu identificar.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.