Ir para conteúdo

POWERED BY:

Arquivado

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

dstebo

formulario contact_us.php

Recommended Posts

Estou usando no contact_us.php sistema de spam, quando usuario for preencher formulario tem que digitar letras que aparece na imagem ao lado.

Versão 2001 osCommerce, baixei do oscommerce ( Contact Us - Short Form with Captcha v1.2 ) fiz alterações para rodar nessa versão do oscommerce que tenho.

Mais aparece esse erro quando enviado o formulario::

 

Fatal error: Call to a member function add() on a non-object in /home/httpd/vhosts/xxx.com.br/httpdocs/comercio/contact_us.php on line 117

 

Linha do código do contact_us.php essa?

 

// End of John changed

 

 

if (strlen($name) < 7) {

$error = true;

 

$messageStack->add('contact', ERROR_NAME);

}

 

if (!tep_validate_email($email_address)) {

$error = true;

 

$messageStack->add('contact', ERROR_EMAIL);

}

 

if (strlen($assunto) < 7) {

$error = true;

 

$messageStack->add('contact', ERROR_ASSUNTO);

}

 

if (($set_captcha != $security) || (empty($security))) {

$error = true;

$securitycode_error = true;

 

$messageStack->add('contact', ERROR_SECURITY);

}

 

 

O que seria, se poder me ajudar, fico grato, pois já tentei de tudo, não resolvi esse erro no php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa variavel $messageStack deveria ser um objeto.

 

Onde ela está sendo inicializada?

 

tipo:

 

$messageStack = new ClasseNumSei();

Att.,

Andrey Moretti

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei no inicio assim:

 

 

if (strlen($name) < 7) {

$error = true;

 

$messageStack = new ClasseMessageStach();

 

$messageStack->add('contact', ERROR_NAME);

}

 

if (!tep_validate_email($email_address)) {

$error = true;

 

 

Quando enviado formulario apareceu isso:

 

Fatal error: Class 'ClasseMessageStach' not found in /home/httpd/vhosts/mrvirtual.com.br/httpdocs/comercio/contact_us.php on line 117

 

Na nova versão oscommerce, na pasta classes tem arquivo message_stack.php, dentro tem esse tag

 

Example usage:

 

$messageStack = new messageStack();

$messageStack->add('general', 'Error: Error 1', 'error');

$messageStack->add('general', 'Error: Error 2', 'warning');

if ($messageStack->size('general') > 0) echo $messageStack->output('general');

 

Na versão que eu uso antiga não tem esse arquivos, será que tem alguma coisa relacionada isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Inseri classe que faltava na pasta includes (message_stack.php)

Agora esta aparecendo esse erro no formulario.

No formulario contato, está sendo usado assim:

 

<td class="main"><?php echo ENTRY_NAME; ?><br><?php echo tep_draw_input_field('name', '', 'style="width: 250px"') . ' ' . (tep_not_null(ENTRY_EMAIL_ADDRESS_TEXT) ? '<span class="inputRequirement">' . ENTRY_EMAIL_ADDRESS_TEXT . '</span>': ''); ?></td>

 

Fatal error: Call to undefined function: tep_not_null() in /home/httpd/vhosts/xxxx.com.br/httpdocs/comercio/includes/functions/html_output.php on line 355

 

Na pasta functions no html_output.php está assim a linha 355:

 

// Output a form input field

function tep_draw_input_field($name, $value = '', $parameters = '', $type = 'text', $reinsert_value = true) {

$field = '<input type="' . $type . '" name="' . $name . '"';

if ( ($GLOBALS[$name]) && ($reinsert_value) ) {

$field .= ' value="' . trim($GLOBALS[$name]) . '"';

} elseif ($value != '') {

$field .= ' value="' . trim($value) . '"';

}

if ($parameters != '') {

$field .= ' ' . $parameters;

}

$field .= '>';

 

return $field;

}

 

////

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta pedindo isso.

tep_not_null

 

Nova versão desse arquivo e assim,

 

// Output a form hidden field

function tep_draw_hidden_field($name, $value = '', $parameters = '') {

global $HTTP_GET_VARS, $HTTP_POST_VARS;

 

$field = '<input type="hidden" name="' . tep_output_string($name) . '"';

 

if (tep_not_null($value)) {

$field .= ' value="' . tep_output_string($value) . '"';

} elseif ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) {

if ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) ) {

$field .= ' value="' . tep_output_string(stripslashes($HTTP_GET_VARS[$name])) . '"';

} elseif ( (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) {

$field .= ' value="' . tep_output_string(stripslashes($HTTP_POST_VARS[$name])) . '"';

}

}

 

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

 

$field .= '>';

 

return $field;

}

 

////

 

 

tem com adaptar para versão antiga

que está acima...

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.