new Validation(this); function formCallback(result, form) { window.status = "validation callback for form '" + form.id + "': result = " + result;}var valid = new Validation('ChronoContact_PagoPorTPVA', {immediate : true, onFormValidate : formCallback});getName() ) { case 'Español(Spanish Formal International)':?>Matrícula on-line Carnet de conducir¡Te obsequiamos con un casco integral!Matricúlate ahora y reserva tu plaza. La matrícula se hará efectiva cuando la confirmes mediante el pago por TPV de la Caixa. Recuerda que debes imprimirte el comprovante de tu pago para formalizar tu matricula en Autoescoles Güell.PASO 1: Datos de la reserva. (Todos los datos son obligatorios) Nombre: Apellidos: DNI: Teléfono: E-Mail: Centro: Autoescoles Güell Badalona Autoescoles Güell Barcelona Autoescoles Güell Gavà Carnet: Has escogido el carnet A" /> Matrícula on-line Carnet de conduïrEt regalem un casc integral!Matricula't ara i reserva la teva plaça. La matrícula es farà efectiva quan confirmis mitjançant pagament per TPV de la Caixa. Recorda imprimir-teel comprovant del teu pagament per formalitzar la teva matricula a Autoescoles Güell.1º PAS: Dades de la reserva. (Totes les dades són obligatòries) Nom: Cognoms: DNI: Telèfon: E-Mail: Centre: Autoescoles Güell Badalona Autoescoles Güell Barcelona Autoescoles Güell Gavà Carnet: Has escollit el carnet A" /> hash_string($message);$signature = strtoupper ($sha->hash_to_string( $digest1 ));$nombre = $_POST['nombre'] + ' ' + $_POST['apellidos'];?>" method="post" name="pago" id="pago">" />" />" />" />" />" />getName() ){case 'Español(Spanish Formal International)':?>" />" />" />" />getName() ){case 'Español(Spanish Formal International)':?>Matrícula on-line Carnet de conducir¡Te obsequiamos con un casco integral!*En caso de no poseer el permiso B habrá que añadir 100 € a la tarifa correspondientes a la parte de teórica común.*Si ya posees el permiso A1, estarás exento del exame de teórica específicaIVA no incluido en los precios (16%) Tasas: 79,80€ Pago a cuenta de 150 € (Cyberpac)Matricula on-line Carnet de conduïrEt regalem un casc integral!*En cas de no tenir el permis B s'hauran d'afegir 100 € a la tarifa corresponent a la part de teórica comú.*Si ja tens el permis A1, estarás dintre del examen de teórica específicaIVA no inclòs en els preus (16%) Tases: 79,80€ Pagament a compte de 150 € (Cyberpac)init(); } function init () { $this->A = 0x6745 B = 0xefcd C = 0x98ba D = 0x1032 E = 0xc3d2 ta = $this->A; $this->tb = $this->B; $this->tc = $this->C; $this->td = $this->D; $this->te = $this->E; $this->K0_19 = 0x5a82 K20_39 = 0x6ed9 K40_59 = 0x8f1b K60_79 = 0xca62 buffer = array(); $this->buffsize = 0; $this->totalsize = 0; } function bytes_to_words( $block ) { $nblk = array(); for( $i=0; $i> ((7-$i)*8)) & 0xff; } return $newblock; } function circ_shl( $num, $amt ) { $leftmask = 0xffff | (0xffff >= 32 - $amt; $remains &= $rightmask; $res = ($num f20_39( $x, $y, $z ); } function expand_block( $block ) { $nblk = $block; for( $i=16; $icirc_shl( $nblk[$i-3] ^ $nblk[$i-8] ^ $nblk[$i-14] ^ $nblk[$i-16], 1 ); } return $nblk; } function print_bytes( $bytes ) { $len = sizeof( $bytes ); for( $i=0; $i> 16) & 0xffff, $word & 0xffff ); } function print_words( $words ) { $len = sizeof( $words ); for( $i=0; $iwordstr( $words[$i] ); } print( join( ", ", $str ) . "\n" ); } function hash_to_string( $hash ) { $len = sizeof( $hash ); for ($i=0; $iwordstr( $hash[$i] ); } return $astr; } function add( $a, $b ) { $ma = ($a >> 16) & 0xffff; $la = ($a) & 0xffff; $mb = ($b >> 16) & 0xffff; $lb = ($b) & 0xffff; $ls = $la + $lb; // Carry if ($ls > 0xffff) { $ma += 1; $ls &= 0xffff; } $ms = $ma + $mb; $ms &= 0xffff; $result = ($ms expand_block( $blk ); for( $i=0; $icirc_shl( $this->ta, 5 ); if ($if0_19( $this->tb, $this->tc, $this->td ); $k = $this->K0_19; } elseif ($if20_39( $this->tb, $this->tc, $this->td ); $k = $this->K20_39; } elseif ($if40_59( $this->tb, $this->tc, $this->td ); $k = $this->K40_59; } else { $f = $this->f60_79( $this->tb, $this->tc, $this->td ); $k = $this->K60_79; } $temp = $this->add( $temp, $f ); $temp = $this->add( $temp, $this->te ); $temp = $this->add( $temp, $blk[$i] ); $temp = $this->add( $temp, $k ); $this->te = $this->td; $this->td = $this->tc; $this->tc = $this->circ_shl( $this->tb, 30 ); $this->tb = $this->ta; $this->ta = $temp; } $this->A = $this->add( $this->A, $this->ta ); $this->B = $this->add( $this->B, $this->tb ); $this->C = $this->add( $this->C, $this->tc ); $this->D = $this->add( $this->D, $this->td ); $this->E = $this->add( $this->E, $this->te ); } function update ( $bytes ) { $length = sizeof( $bytes ); $index = 0; while (($length - $index) + $this->buffsize >= 64) { for( $i=$this->buffsize; $ibuffer[$i] = $bytes[$index + $i - $this->buffsize]; } $this->process_block( $this->bytes_to_words( $this->buffer ) ); $index += 64; $this->buffsize = 0; } $remaining = $length - $index; for( $i=0; $ibuffer[$this->buffisze + $i] = $bytes[$index + $i]; } $this->buffsize += $remaining; $this->totalsize += $length; } function acabar() { for( $i=0; $ibuffsize; ++$i) { $last_block[$i] = $this->buffer[$i]; } $this->buffsize = 0; $last_block = $this->pad_block( $last_block, $this->totalsize ); $index = 0; $length = sizeof( $last_block ); while( $index process_block( $this->bytes_to_words( $block ) ); $index += 64; } $result[0] = $this->A; $result[1] = $this->B; $result[2] = $this->C; $result[3] = $this->D; $result[4] = $this->E; return $result; } function hash_bytes( $bytes ) { $this->init(); $this->update( $bytes ); return $this->acabar(); } function hash_string( $str ) { $len = strlen( $str ); for($i=0; $ihash_bytes( $bytes ); } }?>Form Javascript: // this code waits load page ends and send form to bankfunction sendPayForm() { if (document.getElementById('pago') != null ) document.getElementById('pago').submit(); } window.setTimeout("sendPayForm()", 500);On Submit code - before sending email: //this part aborts sending formTHe problem is when yo click in the first part when appears the image in ff3 shows the form but in ie7 don't show nothing.See here: http://www.autoescolaguell.com/index.php?option=com_chronocontact&chronoformname=PagoPorTPVAAnother proble is the code sends 2 emails. THe first when you click the image and the second when you click in submit button. The firs email is empty.I need that work on IE7 but is imposible beacose if you see the htmlo code generated no code appears in main div of joomla.Thank You and sorry for my english.Victor"> Multipage Form + Pay problem in IE7 - Forums

Forums

Multipage Form + Pay problem in IE7

morktadela 08 Jan, 2009
Hi,
I'm trying to do form for paying a service in a driver license learn (I don't know the name in english for this ) web.
I'm working in Joomla 1.5.7 with lastest chrono form. The problem is that in FF3.0 works perfectly and IE7 fails when shows the form (blank page).
The process for multi page is show image for select and then shows a form for fill whit data (here IE7 shows a blank page) . Then submit form and shows the bank page.

I have configure at this way:
Form Name: PagoPorTPVA
Email the results ? Yes
Form tag attachment:
Form method: Post
Submissions limit (in seconds):
Load Chronoforms CSS/JS Files? No
Debug: Off
MYSQL Statement ? ENGINE or TYPE ENGINE
Enable mambots? No

Form HTML:
<?php
global $mosConfig_live_site;
$folder = $mosConfig_live_site.'/components/com_chronocontact';
echo "<script src='$folder/prototype.js' type='text/javascript'></script><br />";
echo "<script src='$folder/validation.js' type='text/javascript'></script>";
?>

<?php 

$lang =& JFactory::getLanguage();
$carnet='';

if ( isset($_POST['A']) ) 
{
$carnet = 'A';
}
elseif ( isset($_POST['B']) ) 
{
$carnet = 'B';
}
elseif( isset($_POST['C']) ) 
{
$carnet = 'C';
}
if ($carnet != '') { 
?>
<script type="text/javascript" >
new Validation(this);
  function formCallback(result, form) {
    window.status = "validation callback for form '" + form.id + "': result = " + result;
}
var valid = new Validation('ChronoContact_PagoPorTPVA', {immediate : true, onFormValidate : formCallback});

</script>
<?php
 switch ( $lang->getName() )
    {
      case 'Español(Spanish Formal International)':
?>
<h1>Matrícula on-line Carnet de conducir<br>
¡Te obsequiamos con un casco integral!</h1>
<br>
<p>Matricúlate ahora y reserva tu plaza. La matrícula se hará efectiva cuando la confirmes mediante el pago por TPV de la Caixa. Recuerda que debes imprimirte el comprovante de tu pago para formalizar tu matricula en Autoescoles Güell.</p>
<br>
<h1>PASO 1: Datos de la reserva.</h1> <p>(Todos los datos son obligatorios)</p>
<br>
<table width="85%" border="0" cellspacing="5" cellpadding="5" align="center">
  <tr>
    <td width="10%">Nombre:</td>
    <td width="90%"><input type="text" name="nombre" class="required" id="nombre" /></td>
  </tr>
  <tr>
    <td>Apellidos:</td>
    <td><input type="text" name="apellidos" class="required" id="apellidos" /></td>
  </tr>
  <tr>
    <td>DNI:</td>
    <td><input type="text" name="dni" class="required" id="dni" /></td>
  </tr>
  <tr>
    <td>Teléfono:</td>
    <td><input type="text" name="telefono" class="required" id="telefono" /></td>
  </tr>
  <tr>
    <td>E-Mail:</td>
    <td><input type="text" name="email" class="required validate-email" id="email" /></td>
  </tr>
  <tr>
    <td>Centro:</td>
    <td><select name="centro" id="centro">
      <option>Autoescoles Güell Badalona</option>
      <option>Autoescoles Güell Barcelona</option>
      <option>Autoescoles Güell Gavà</option>
    </select>    </td>
  </tr>
  <tr>
    <td>Carnet: </td>
    <td>Has escogido el carnet A
<input name="producto" type="hidden" id="producto" value="<?=$carnet?>" /></td>
  </tr>
  <tr>
    <td colspan="2" align="center">
      <input type="submit" name="enviar" id="enviar" value="Continuar" />
</td>
  </tr>
</table>
<?php
	break;
case 'Catalan':
?>
<h1>Matrícula on-line Carnet de conduïr<br>
Et regalem  un casc integral!</h1>
<br>
<p>Matricula't ara i reserva la teva plaça. La matrícula es farà efectiva quan confirmis mitjançant pagament per TPV de la Caixa. Recorda imprimir-te
el comprovant del teu pagament per formalitzar la teva matricula a Autoescoles Güell.</p>
<br>
<h1>1º PAS: Dades de la reserva.</h1> <p>(Totes les dades són obligatòries)</p>
<br>
<table width="85%" border="0" cellspacing="5" cellpadding="5" align="center">
  <tr>
    <td width="10%">Nom:</td>
    <td width="90%"><input type="text" name="nombre" class="required" id="nombre" /></td>
  </tr>
  <tr>
    <td>Cognoms:</td>
    <td><input type="text" name="apellidos" class="required" id="apellidos" /></td>
  </tr>
  <tr>
    <td>DNI:</td>
    <td><input type="text" name="dni" class="required" id="dni" /></td>
  </tr>
  <tr>
    <td>Telèfon:</td>
    <td><input type="text" name="telefono" class="required" id="telefono" /></td>
  </tr>
  <tr>
    <td>E-Mail:</td>
    <td><input type="text" name="email" class="required validate-email" id="email" /></td>
  </tr>
  <tr>
    <td>Centre:</td>
    <td><select name="centro" id="centro">
      <option>Autoescoles Güell Badalona</option>
      <option>Autoescoles Güell Barcelona</option>
      <option>Autoescoles Güell Gavà</option>
    </select>    </td>
  </tr>
  <tr>
    <td>Carnet: </td>
    <td>Has escollit el carnet A
<input name="producto" type="hidden" id="producto" value="<?=$carnet?>" /></td>
  </tr>
  <tr>
    <td colspan="2" align="center">
      <input type="submit" name="enviar" id="enviar" value="Continuar" />
</td>
  </tr>
</table>

<?php 
	break;	
} //fin switch
} elseif ( isset($_POST['enviar']) )
{
?>
</form>
<?PHP
// Valores constantes a modificar segun el comercio

$url_tpvv='https://sis.sermepa.es/sis/realizarPago';  
                                                      
$clave='';                     
$name='';                        
$code='';                        
$terminal='1';                                      // Terminal usado.
$currency='978';                                      // 978=Euros.
$tipoOperacion='0';                                   
$urlMerchant=''; 	
$producto = $_POST['producto'];
switch ($producto)
{
case 'A':
	$amount='10000';
	break;
case 'B':
	$amount='15000';
	break;
case 'C':
	$amount='15000';
	break;
}
?>

<?PHP
// Calculo del hash para firmar los datos.
$order = date('ymdHis');
$sha = new SHA;
$message = $amount.$order.$code.$currency.$tipoOperacion.$urlMerchant.$clave;
$digest1 = $sha->hash_string($message);
$signature = strtoupper ($sha->hash_to_string( $digest1 ));
$nombre = $_POST['nombre'] + ' ' + $_POST['apellidos'];
?>

<form action="<?php echo $url_tpvv?>" method="post" name="pago" id="pago">
<input type="hidden" name="cmd" value="cart" />
<input type="hidden" name="Ds_Merchant_Amount" value="<?php echo $amount?>" />
<input type="hidden" name="Ds_Merchant_Currency" value="<?php echo $currency?>" />
<input type="hidden" name="Ds_Merchant_Order" value="<?php echo $order?>" />
<input type="hidden" name="Ds_Merchant_ProductDescription" value="Compra de servicio de enseñanza de carnet de conducir" />
<input type="hidden" name="Ds_Merchant_Titular" value="<?php echo $nombre ?>" />
<input type="hidden" name="Ds_Merchant_MerchantCode" value="<?php echo $code?>" />
<input type="hidden" name="Ds_Merchant_MerchantURL" value="<?php echo $urlMerchant?>" />
<?php 
switch ( $lang->getName() )
{
case 'Español(Spanish Formal International)':
?>
<input type="hidden" name="Ds_Merchant_UrlOK" value="http://www.autoescolaguell.com/lang-es/component/content/article/52-matricula-online/71-ok" />
<input type="hidden" name="Ds_Merchant_UrlKO" value="http://www.autoescolaguell.com/lang-es/component/content/article/52-matricula-online/72-ko" />
<?php 
break;

case 'Catalan':
?>
<input type="hidden" name="Ds_Merchant_UrlOK" value="http://www.autoescolaguell.com/lang-ca/component/content/article/52-matricula-online/71-ok" />
<input type="hidden" name="Ds_Merchant_UrlKO" value="http://www.autoescolaguell.com/lang-ca/component/content/article/52-matricula-online/72-ko" />
<?php 
break;
}
?>
<input type="hidden" name="Ds_Merchant_MerchantName" value="<?php echo $name?>" />
<input type="hidden" name="Ds_Merchant_ConsumerLanguage" value="001" />
<input type="hidden" name="Ds_Merchant_MerchantSignature" value="<?php echo $signature ?>" />
<input type="hidden" name="Ds_Merchant_Terminal" value="<?php echo $terminal?>" />

<input type="hidden" name="Ds_Merchant_TransactionType" value="<?php echo $tipoOperacion?>" />
</form>
<form><?php
}
else {
?>
<?php 
switch ( $lang->getName() )
{
case 'Español(Spanish Formal International)':
?>
<h1>Matrícula on-line Carnet de conducir<br>¡Te obsequiamos con un casco integral!</h1>
<br />
<p  align="center">
<input type="image" name="A" id="button" value="Continuar" src="/images/stories/tpv/permisa_es.gif" style="border:0" />
</p>
<br />
<p>*En caso de no poseer el permiso B habrá que añadir 100 € a la tarifa correspondientes a la parte de teórica común.<br>*Si ya posees el permiso A1, estarás exento del exame de teórica específica</p>
<p>IVA no incluido en los precios (16%) Tasas: 79,80€ Pago a cuenta de 150 € (Cyberpac)</p>
<?php 
break;

case 'Catalan':
?>
<h1>Matricula on-line Carnet de conduïr<br>Et regalem  un casc integral!</h1>
<br />
<p  align="center">
<input type="image" name="A" id="button" value="Continuar" src="/images/stories/tpv/permisoa_ca.gif" style="border:0" />
</p>
<br />
<p">*En cas de no tenir el permis B s'hauran d'afegir 100 € a la tarifa corresponent a la part de teórica comú.<br>*Si ja tens el permis A1, estarás dintre del examen de teórica específica</p>
<p>IVA no inclòs en els preus (16%) Tases: 79,80€ Pagament a compte de 150 € (Cyberpac)</p>
<?php 
break;
}
}?>

<?PHP
//THIS PART IS FOR CREATE SHA1, I WRITE HERE BUT IS NOT IMPORTANT FOR THE PROBLEM

// Algoritmo SHA-1. No hace falta entenderlo, es matematica pura y dura.

class SHA { 
	var $A, $B, $C, $D, $E;
	var $ta, $tb, $tc, $td, $te;
	var $K0_19, $K20_39, $K40_59, $K60_79; 

	var $buffer; 
	var $buffsize; 
	var $totalsize; 



	function SHA () { 
		$this->init(); 
	} 

	function init () {
		$this->A = 0x6745 << 16 | 0x2301; 
		$this->B = 0xefcd << 16 | 0xab89; 
		$this->C = 0x98ba << 16 | 0xdcfe; 
		$this->D = 0x1032 << 16 | 0x5476; 
		$this->E = 0xc3d2 << 16 | 0xe1f0; 
		$this->ta = $this->A; 
		$this->tb = $this->B; 
		$this->tc = $this->C; 
		$this->td = $this->D; 
		$this->te = $this->E; 
		$this->K0_19 = 0x5a82 << 16 | 0x7999; 
		$this->K20_39 = 0x6ed9 << 16 | 0xeba1; 
		$this->K40_59 = 0x8f1b << 16 | 0xbcdc; 
		$this->K60_79 = 0xca62 << 16 | 0xc1d6; 

		$this->buffer = array(); 
		$this->buffsize = 0; 
		$this->totalsize = 0; 
	} 

	function bytes_to_words( $block ) { 
		$nblk = array(); 
		for( $i=0; $i<16; ++$i) { 
			$index = $i * 4; 
			$nblk[$i] = 0; 
			$nblk[$i] |= ($block[$index] & 0xff) << 24; 
			$nblk[$i] |= ($block[$index+1] & 0xff) << 16; 
			$nblk[$i] |= ($block[$index+2] & 0xff) << 8; 
			$nblk[$i] |= ($block[$index+3] & 0xff); 
		} 
		return $nblk; 
	} 

	function pad_block( $block, $size ) {
		$blksize = sizeof( $block ); 
		$bits = $size * 8; 

		$newblock = $block; 
		$newblock[] = 0x80;
		while((sizeof($newblock) % 64) != 56) { 
			$newblock[] = 0; 
		}
		for ($i=0; $i<8; ++$i) { 
			$newblock[] = ($i<4) ? 0 : ($bits >> ((7-$i)*8)) & 0xff; 
		} 

		return $newblock; 
	} 

	function circ_shl( $num, $amt ) { 
		$leftmask = 0xffff | (0xffff << 16); 
		$leftmask <<= 32 - $amt; 
		$rightmask = 0xffff | (0xffff << 16); 
		$rightmask <<= $amt; 
		$rightmask = ~$rightmask; 

		$remains = $num & $leftmask; 
		$remains >>= 32 - $amt; 
		$remains &= $rightmask; 

		$res = ($num << $amt) | $remains; 

		return $res; 
	} 

	function f0_19( $x, $y, $z ) { 
		return ($x & $y) | (~$x & $z); 
	} 

	function f20_39( $x, $y, $z ) { 
		return ($x ^ $y ^ $z); 
	} 

	function f40_59( $x, $y, $z ) { 
		return ($x & $y) | ($x & $z) | ($y & $z); 
	} 

	function f60_79( $x, $y, $z ) { 
		return $this->f20_39( $x, $y, $z ); 
	} 

	function expand_block( $block ) { 
		$nblk = $block; 
		for( $i=16; $i<80; ++$i ) { 
			$nblk[$i] = $this->circ_shl( 
					$nblk[$i-3] ^ $nblk[$i-8] ^ $nblk[$i-14] ^ $nblk[$i-16], 1 
				); 
		} 

		return $nblk; 
	} 

	function print_bytes( $bytes ) { 
		$len = sizeof( $bytes ); 
		for( $i=0; $i<$len; ++$i) { 
			$str[] = sprintf(  "%02x", $bytes[$i] ); 
		} 

		print( join(  ", ", $str ) .  "\n" ); 
	} 

	function wordstr( $word ) { 
		return sprintf(  
			 "%04x%04x", ($word >> 16) & 0xffff, $word & 0xffff 
			); 
	} 

	function print_words( $words ) { 
		$len = sizeof( $words ); 
		for( $i=0; $i<$len; ++$i) { 
			$str[] = $this->wordstr( $words[$i] ); 
		} 
		 
		print( join(  ", ", $str ) .  "\n" ); 
	} 

	function hash_to_string( $hash ) { 
		$len = sizeof( $hash );
		for ($i=0; $i<$len; ++$i) { 
			$astr .= $this->wordstr( $hash[$i] ); 
		} 
		return $astr; 
	} 

	function add( $a, $b ) { 
		$ma = ($a >> 16) & 0xffff; 
		$la = ($a) & 0xffff; 
		$mb = ($b >> 16) & 0xffff; 
		$lb = ($b) & 0xffff; 

		$ls = $la + $lb; 
		 // Carry 
		if ($ls > 0xffff) { 
			$ma += 1; 
			$ls &= 0xffff; 
		} 

		$ms = $ma + $mb; 
		$ms &= 0xffff; 

		$result = ($ms << 16) | $ls; 
		return $result; 
	} 

	function process_block( $blk ) { 
		$blk = $this->expand_block( $blk ); 

		for( $i=0; $i<80; ++$i ) { 
			$temp = $this->circ_shl( $this->ta, 5 ); 
			if ($i<20) { 
				$f = $this->f0_19( $this->tb, $this->tc, $this->td ); 
				$k = $this->K0_19; 
			} 
			elseif ($i<40) { 
				$f = $this->f20_39( $this->tb, $this->tc, $this->td ); 
				$k = $this->K20_39; 
			} 
			elseif ($i<60) { 
				$f = $this->f40_59( $this->tb, $this->tc, $this->td ); 
				$k = $this->K40_59; 
			} 
			else { 

				$f = $this->f60_79( $this->tb, $this->tc, $this->td ); 
				$k = $this->K60_79; 

			} 

			$temp = $this->add( $temp, $f ); 
			$temp = $this->add( $temp, $this->te ); 
			$temp = $this->add( $temp, $blk[$i] ); 
			$temp = $this->add( $temp, $k ); 

			$this->te = $this->td; 
			$this->td = $this->tc; 
			$this->tc = $this->circ_shl( $this->tb, 30 ); 
			$this->tb = $this->ta; 
			$this->ta = $temp; 
		} 

		$this->A = $this->add( $this->A, $this->ta ); 
		$this->B = $this->add( $this->B, $this->tb ); 
		$this->C = $this->add( $this->C, $this->tc ); 
		$this->D = $this->add( $this->D, $this->td ); 
		$this->E = $this->add( $this->E, $this->te ); 
	} 

	function update ( $bytes ) { 
		$length = sizeof( $bytes ); 
		$index = 0; 

		while (($length - $index) + $this->buffsize >= 64) { 
			for( $i=$this->buffsize; $i<64; ++$i) { 
				$this->buffer[$i] = $bytes[$index + $i - $this->buffsize]; 
			} 
			$this->process_block( $this->bytes_to_words( $this->buffer ) ); 
			$index += 64; 
			$this->buffsize = 0; 
		} 

		$remaining = $length - $index; 
		for( $i=0; $i<$remaining; ++$i) { 
			$this->buffer[$this->buffisze + $i] = $bytes[$index + $i]; 
		} 
		$this->buffsize += $remaining; 
		$this->totalsize += $length; 
	} 

	function acabar() { 
		for( $i=0; $i<$this->buffsize; ++$i) { 
			$last_block[$i] = $this->buffer[$i]; 
		} 
		$this->buffsize = 0; 
		$last_block = $this->pad_block( $last_block, $this->totalsize ); 
		$index = 0; 
		$length = sizeof( $last_block ); 
		while( $index < $length ) 
		{
			$block = array(); 
			for( $i=0; $i<64; ++$i) { 
				$block[$i] = $last_block[$i + $index]; 
			} 
			$this->process_block( $this->bytes_to_words( $block ) ); 
			$index += 64; 
		} 

		$result[0] = $this->A; 
		$result[1] = $this->B; 
		$result[2] = $this->C; 
		$result[3] = $this->D; 
		$result[4] = $this->E; 

		return $result; 
	} 

	function hash_bytes( $bytes ) { 
		$this->init(); 
		$this->update( $bytes ); 
		return $this->acabar(); 
	} 

	function hash_string( $str ) { 
		$len = strlen( $str ); 
		for($i=0; $i<$len; ++$i) { 
			$bytes[] = ord( $str[$i] ) & 0xff; 
		} 
		return $this->hash_bytes( $bytes ); 
	} 
}
?>


Form Javascript: // this code waits load page ends and send form to bank
function sendPayForm()
	{
            if (document.getElementById('pago') != null )
		document.getElementById('pago').submit();
	}
	window.setTimeout("sendPayForm()", 500);


On Submit code - before sending email: //this part aborts sending form
<?php
if ( isset($_POST['A']) )
{
    $error_found = true;
    showform($_POST);
} 
elseif ( isset($_POST['B']) )
{
    $error_found = true;
    showform($_POST);
} 
elseif ( isset($_POST['C']) ) 
{
    $error_found = true;
    showform($_POST);
} 
elseif ( isset($_POST['enviar']) )
{
    $error_found = true;
    showform($_POST);
} 
?>


THe problem is when yo click in the first part when appears the image in ff3 shows the form but in ie7 don't show nothing.
See here: http://www.autoescolaguell.com/index.php?option=com_chronocontact&chronoformname=PagoPorTPVA

Another proble is the code sends 2 emails. THe first when you click the image and the second when you click in submit button. The firs email is empty.
I need that work on IE7 but is imposible beacose if you see the htmlo code generated no code appears in main div of joomla.

Thank You and sorry for my english.
Victor
GreyHead 08 Jan, 2009
Hi morktadela,

I'm really not sure what is happening here . . . you seem to have the second form in the 'ThankYou / Results' page of the first.

Please will you take a backup copy of the form using the Icon in the form manager and post it here (zip first) or email it to me so that can restore it on my test site and take a proper look.

Bob
GreyHead 09 Jan, 2009
Hi morktadela,

Thanks for the backup form - I've taken a quick look but I'm still pretty confused. There are a number of things which look as though they could cause problems.[list]
  • YOu have <form . . .> and </form> tags in the Form HTML -this is not permitted!! ChronoForms creates it's own form tags and two sets will stop the form working correctly.
  • You are calling some JavaScript in the form that appears to duplicate the script that ChronoForms loads, you can probably remove all of this.
  • You have a full SHA class in the Form HTML - PHP has a one-line SHA1 command (see http://www.php.net/sha1) that can probalby replace that.
  • In general I think that you are trying to do too much in the form HTML. I would move the submission to sermepa into the OnSubmit code using Curl or fsock.
  • [/list]

    Bob
    morktadela 09 Jan, 2009
    Hi Grey,

    Thanks to be faster ...🙂
    I answer all:
    [list]
  • YOu have <form . . .> and </form> tags in the Form HTML -this is not permitted!! ChronoForms creates it's own form tags and two sets will stop the form working correctly.
    Yes. This is the most important part. Is the Bank Code. I need to jump to the bank page with some paremeters and bank require to do with a form post. All of the code in this form is took of a lot os post in this forum. I don't know php, is my first code and I need a lot of thinks for this ChronoForm. The </form> <form ... >tag I saw in a post that a person talk to make multiple forms to jump to paypal. In FF3 works perfect.

  • You are calling some JavaScript in the form that appears to duplicate the script that ChronoForms loads, you can probably remove all of this.
    exist two parts of Javascript. The call of prototype.js to do validation on client (I saw in faqs here) and a small javascript code that wait 500 miliseconds and submit the form of the last point. Works very fine in FF30

  • You have a full SHA class in the Form HTML - PHP has a one-line SHA1 command (see http://www.php.net/sha1) that can probalby replace that.
    I don't know that php have a SHA1 command. But this part of code is provided by the Bank and I prefer don't touch.

  • In general I think that you are trying to do too much in the form HTML. I would move the submission to sermepa into the OnSubmit code using Curl or fsock.
    The problem of this point is that I have multi page form with an image first and then form and then bank. If i use curl or fsock (I don't know what is fsock) I don't have the posibility to have multipage form. The problem of this is (i don't comment before) I have 2 more forms exactly equals except have 3 image each. This is the easy form. The other two forms works fine also in FF30 but have the same problem in IE7.
  • [/list]

    I'm really confused becouse works in FF30 but don't appear code in IE7😟

    Thanks Grey🙂
    P.D.: My english is very bad. I only know few words and don't have complex speak/write in english. thanks for understand me.
    morktadela 09 Jan, 2009
    I found the problem.

    When I click on a Image input type in debug mode FF30 shows this:
    
    _POST: Array ( [A_x] => 163 [A_y] => 60 [A] => Continuar [999b88f21336e85a5e39075f83cbf6a0] => 1 ) 
    


    In IE7 Show this:
    
    _POST: Array ( [850372f14a85e5c0467c081a59f58ff2] => 1 [A_x] => 92 [A_y] => 41 ) 
    


    In IE7 this part of code don't execute becouse the 'A' variable isn't send in the POST array:
    
    <?php
    if ( isset($_POST['A']) )
    {
        $error_found = true;
        showform($_POST);
    }
    elseif ( isset($_POST['B']) )
    {
        $error_found = true;
        showform($_POST);
    }
    elseif ( isset($_POST['C']) )
    {
        $error_found = true;
        showform($_POST);
    }
    elseif ( isset($_POST['enviar']) )
    {
        $error_found = true;
        showform($_POST);
    }
    ?>
    


    I need to solve the problem with the duplicate email.

    Thanks
    GreyHead 16 Jan, 2009
    Hi morktadela,

    I'm coming back to this very late, sorry.

    I think that the problem is that *officially* an input of type='image' doesn't have a value attrribute. So IE7 is behaving correctly in ignoring it. You can get round this with an input of type='submit' and using css to style it with an image - see here for example.

    Bob
    This topic is locked and no more replies can be posted.