Foros del Web » Programando para Internet » PHP »

cibertienda

Estas en el tema de cibertienda en el foro de PHP en Foros del Web. vereis, hice una minitienda de prueba con el ya conocido programa cibertienda lo subo a mi servidor que soporta php (iespana) y todo parece funcionar ...
  #1 (permalink)  
Antiguo 17/03/2003, 11:39
Avatar de ulisses  
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 73
Antigüedad: 21 años, 10 meses
Puntos: 0
Pregunta cibertienda

vereis, hice una minitienda de prueba con el ya conocido programa cibertienda lo subo a mi servidor que soporta php (iespana) y todo parece funcionar correctamente, sólo que al enviar el formulario me llega un mail con lo siguiente:

Civertienda v1.0 - Orden de Compra

REMOTE HOST:
REMOTE USER:
REMOTE ADDR: 213.9.250.143

es decir no incluye los datos del formulario ni del pedido

esto es del formulario:

<html>
<head>
<title>Orden de Compra</title>
<link rel="stylesheet" href="estilo.css" type="text/css">
<SCRIPT LANGUAGE="JavaScript">
<!--
function Enviar(form) {
for (i = 0; i < form.elements.length; i++) {
if (form.elements[i].type == "text" && form.elements[i].value == "") {
alert("Por favor complete todos los campos del formulario"); form.elements[i].focus();
return false; }
}
form.submit();
}
// -->
</SCRIPT>
</head>
<body bgcolor="#FFFFFF" link="#0000FF" vlink="#800080" class="body">
<SCRIPT LANGUAGE="JavaScript">

function alterError(value) {
if (value<=0.99) {
newPounds = '0';
} else {
newPounds = parseInt(value);
}
newPence = parseInt((value+.0008 - newPounds)* 100);
if (eval(newPence) <= 9) newPence='0'+newPence;
newString = newPounds + '.' + newPence;
return (newString);
}

function showItems() {
index = document.cookie.indexOf("TheBasket");
countbegin = (document.cookie.indexOf("=", index) + 1);
countend = document.cookie.indexOf(";", index);
if (countend == -1) {
countend = document.cookie.length;
}
fulllist = document.cookie.substring(countbegin, countend);
totprice = 0;

itemlist = 0;
for (var i = 0; i <= fulllist.length; i++) {
if (fulllist.substring(i,i+1) == '[') {
itemstart = i+1;
} else if (fulllist.substring(i,i+1) == ']') {
itemend = i;
thequantity = fulllist.substring(itemstart, itemend);
itemtotal = 0;
itemtotal = (eval(theprice*thequantity));
temptotal = itemtotal * 100;
var tax = itemtotal / 100 * (0 - 0);
tax = Math.floor(tax * 100)/100
totprice = totprice + itemtotal + tax;
itemlist=itemlist+1;
document.writeln('<INPUT TYPE="hidden" NAME="Producto'+itemlist+'" VALUE="'+theitem+'" SIZE="40">');
document.writeln('<INPUT TYPE="hidden" NAME="Cantidad'+itemlist+'" VALUE="'+thequantity+'" SIZE="40">')
document.writeln('<INPUT TYPE="hidden" NAME="ProductoTotal'+itemlist+'" VALUE="'+alterError(itemtotal)+'" SIZE="40">');
} else if (fulllist.substring(i,i+1) == ',') {
theitem = fulllist.substring(itemstart, i);
itemstart = i+1;
} else if (fulllist.substring(i,i+1) == '#') {
theprice = fulllist.substring(itemstart, i);
itemstart = i+1;
}
}

document.writeln('<INPUT TYPE="hidden" NAME="Total" VALUE="'+alterError(totprice)+'" SIZE="40">');

}
function Total() {
document.writeln(alterError(totprice));
}

</SCRIPT>
<center>
<table border="0" cellpadding="0" cellspacing="0" width="640" class="body">
<tr>
<td width="50%"><big><big>Orden de Compra</big></big></td>
<td width="50%" align="right">[ <a href="carrito.htm">Carrito</a> | <a href="estado.htm">Estado</a> | Orden de Compra ]</td>
</tr>
<tr>
<td width="100%" colspan="2">
<hr size="1" color="#000000">
</td>
</tr>
<tr>
<td width="100%" colspan="2">Esta página debería estar alojada en un servidor seguro:</td>
</tr>
</table>

<FORM method="post" action="enviar.php" target="_top">


<table cols="2" width="370" class="body">
<td width="130"></td>
<td width="270">
</td>
</tr>
<tr><td>Nombre:</td><td><input type="text" name="nombre" size=34></td></tr>
<tr><td>Apellido:</td><td><input type="text" name="apellido" size=34></td></tr>
<tr><td>Telefono:</td><td><input type="text" name="telefono" size=34></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email" size=34></td></tr>

<SCRIPT LANGUAGE="JavaScript">
showItems();
</SCRIPT>
<tr>
<td>Total:</td>
<td>$
<SCRIPT LANGUAGE="JavaScript">Total()</SCRIPT>
</td>
</tr>

<tr>
<td><br><br></td>
<td>
<input type="button" value="Enviar" onClick="return Enviar(this.form)">
<input type="reset" value="Restablecer">
</td>
</tr>
</table>
</form>

</center>
</body>
</html>

y esto de enviar.php

<?
$MailToAddress = "[email protected]";
$MailSubject = "Cibertienda";
if (!$MailFromAddress) {
$MailFromAddress = "[email protected]";
}

$Header = "Civertienda v1.0 - Orden de Compra";
$Footer = "";

if (!is_array($HTTP_POST_VARS))
return;
reset($HTTP_POST_VARS);
while(list($key, $val) = each($HTTP_POST_VARS)) {
$GLOBALS[$key] = $val;
$val=stripslashes($val);
$Message .= "$key = $val\n";
}

if ($Header) {
$Message = $Header."\n\n".$Message."\n\n";
}

$Message .= "REMOTE HOST: ".$REMOTE_HOST."\n";
$Message .= "REMOTE USER: ". $REMOTE_USER."\n";
$Message .= "REMOTE ADDR: ". $REMOTE_ADDR."\n";

if ($Footer) {
$Message .= "\n\n".$Footer;
}

mail( "$MailToAddress", "$MailSubject", "$Message", "From: $MailFromAddress");
header ("Location: http://www.buceoprofesional.org");
?>
  #2 (permalink)  
Antiguo 17/03/2003, 11:47
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 22 años, 5 meses
Puntos: 5
Problemente sea por la configuracion de tu servidor, e este caso iespana y el tema de las register_global, dinos que version de PHP utiliza tu servidor, y las caracteristicas del php.ini, es decir haz un phpini() y dinos la informacion que te da.

Una vez conozcamos la configuracion de tu server podremos indagar en el problema.
__________________
Usuario registrado de Linux #288725
  #3 (permalink)  
Antiguo 17/03/2003, 11:58
Avatar de ulisses  
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 73
Antigüedad: 21 años, 10 meses
Puntos: 0
gracias por tu rápida respuesta epplestun aquí tienes la phpinfo de mi servidor: http://www.iespana.es/iwebmaster/iphp/phpinfo.php y perona mi ignorancia como puedo averiguar los datos que me pides del php.ini? como se hace un phpini()?
gracias
  #4 (permalink)  
Antiguo 17/03/2003, 13:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El "phpinfo" es justamente los datos q muestras en el link q pasastes de tu sitio .. En una función PHP .. al ejecutarla da todo ese informe sobre PHP y Apache (directivas y módulos instalados)

<?
phpinfo();
?>

register_globals lo tienes a ON .. (con eso puedes asumir las variable como globales ..)

No se vé la versión de PHP que usa .. pero en lugar del bloque:

Código PHP:
if (!is_array($HTTP_POST_VARS))
return;
reset($HTTP_POST_VARS);
while(list(
$key$val) = each($HTTP_POST_VARS)) {
$GLOBALS[$key] = $val;
$val=stripslashes($val);
$Message .= "$key = $val\n";

usaría (si PHP versión es mayor a 4.1.x):

Código PHP:
foreach ($_POST as $key => $val){
  
$val=stripslashes($val);
  
$Message .= "$key = $val\n";

Para obtener las variables de tu formulario que envias por el metodo POST

Otro detalle .. si mal no recuerdo .. iespana tiene desactivado todo mensaje de error que pueda producir PHP .. Activalo al principio de tu script usando:

error_reporting(E_ALL);

Con eso veras si hay algun problema con alguna variable o funcion ...


Un saludo,
  #5 (permalink)  
Antiguo 17/03/2003, 13:30
Avatar de ulisses  
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 73
Antigüedad: 21 años, 10 meses
Puntos: 0
he cambiado el bloque y sigue igual me manda el mismo mail, la versión de php es la 4.2.0 he subido el phpinfo a mi web http://www.buceoprofesional.org/iphp/phpinfo.php
ni idea
  #6 (permalink)  
Antiguo 17/03/2003, 13:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Intenta ver el valor de las variables que envias por el formulario:

Código PHP:
// Método global:
echo "Método global<br>":
echo 
$nombre."<br>";
echo 
$apellido."<br>";
echo 
$telefono."<br>";
echo 
$email."<br>";

// metodo array superglobal $_POST
echo "Método $_POST<br>":
echo 
$_POST['nombre']."<br>";
echo 
$_POST['apellido']."<br>";
echo 
$_POST['telefono']."<br>";
echo 
$_POST['email']."<br>"
Usalo al principio de tu script .. para ver si llegan las variables o no por lo menos en alguno de estos métodos de acceso a variables .. y de ahi sigue los valores de las variables ..

Prueba tambien los mismos ejemplos con $HTTP_POST_VARS['nombrevariable']

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 21/03/2003, 14:50
Avatar de ulisses  
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 73
Antigüedad: 21 años, 10 meses
Puntos: 0
gracias chicos, he cambiado al servidor de mi@ y parece que va bien, el fallo estara en el servidor de iespana, seguro que tiene algunas funcioones deshabilitadas,
saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:27.