Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/09/2012, 16:45
ashloch
 
Fecha de Ingreso: septiembre-2012
Ubicación: Villa Luzuriaga
Mensajes: 12
Antigüedad: 11 años, 7 meses
Puntos: 0
Problemas con un IF ELSE

Hola Buenos dias
Tengo 57 años y hace unos dos años me meti en esto, empece programando html y hace unos meses tras muchos intentos desentrañe el misterio del php y el mysql (ya tenia alguna bases de joven Fortran IV y Qbasic
desarrolle algunos scrip en php y funcionan (registros con validacion, autentificacion y recuperacion de contraseña.
Este ultimo me esta dando dolor de cabeza, ya que noto que me falta mas teoria.
El tema es un limitador de envios de email, el codigo funciona muy bien.....pero,
al carga la pagina aparecen los echos que pinte de azul

En este ultimo hice una prueba para ver que tiraba lo hice en el lugar que pinte de rojo
$desc1=(mysql_num_rows($desc);
echo "$desc1";

y el valor que arrojo es 1 y el valor que se introduce en el formulario es nuevo, o sea que deberia arrojar 0
el If exterior funciona perfeco con otra base (ofertas1), el problema lo tengo en el if interior, las funciones las hace pero el letrero le da un toque no profesional.
¿que hago mal, ya estoy filtradisimo con esto, alguien puede ayudarme????
Las pruebas lo hago con Xampp en localhost

1) Hice una base de datos (prueba1) y una tabla descargas1 aqui va
CREATE TABLE `descargas1` (
`id_descargas` SMALLINT (4) NOT NULL AUTO_INCREMENT,
`email` Varchar (50) NOT NULL ,
`oferta` Varchar (10) NOT NULL ,
`fecha_desc`DATE NOT NULL,
PRIMARY KEY (`id_descargas`)
);

y en codigo php es:

<?php
include ('mail.php');
$conn = mysql_connect("localhost","root","");
mysql_select_db("prueba1",$conn);$oferta= "p123";
$sql= "SELECT * FROM oferta1 WHERE oferta='$oferta'";
$datos=mysql_query($sql,$conn);
while($row = mysql_fetch_array($datos)) {
$idofer = $row['id_oferta'];
$oferta = $row['oferta'];
$cantaut = $row['cantaut'];
$cantdesc =$row['cantdesc'];}
if($cantdesc <= $cantaut){

echo '
<form action="#" method="post">
<br /><br /><br /><br />
e-mail <input name="email" size="40" maxlength="40" type="text" />
<input value="enviar" type="submit" />
<input value="Borrar" type="reset" />
</form>';

$emailusuario=@$_POST["email"];
//el @ lo coloque para que no apareciera el error de que no había valor al cargar el sitio

$con = mysql_connect("localhost","root","");
mysql_select_db("prueba1",$con);
$ssql= "SELECT * FROM descargas1 WHERE email='$emailusuario'and oferta='$oferta'";
$desc=mysql_query($ssql,$con);
/////Aqui hice un echo a mysql_num_rows($desc) para investigar y me dio 1

if(mysql_num_rows($desc)==0){

$asunto = "Guia Villa Luzuriaga - Cupón de descuento solicitado";
$cuerpo = '<html><head><title>prueba</title></head>
<body>
<img style="width: 425px; height: 283px;" alt=""
src="http://www.estudioagueromoreno.com.ar/cari1.JPG">
<br>
<br>
</body></html>
';
//para el envío en formato HTML
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
//dirección del remitente
$headers .= "From: Admin Guia Villa Luzuriaga <[email protected]>\r\n";
mail($emailusuario,$asunto,$cuerpo,$headers);

$sql2= "insert into `descargas1`(`email`,`oferta`) value ('$emailusuario','$oferta');";
mysql_query($sql2,$con);
mysql_free_result($desc);
mysql_close ($con);

}
else
{
echo "Solo se acepta 1 descarga por mail, las descargas se chequearan con su IP, si se detecta abuso, su cuenta sera restringida";
exit();
}

$cantdesc++;

echo " Ha sido enviado el cupón, al email solicitado";
$sql1= "update oferta1 set cantdesc = $cantdesc where oferta ='p123'" ;
mysql_query($sql1,$conn);
mysql_free_result($datos);
mysql_close ($conn);
}
else
{
echo "Lo sentimos, ya se ha cubierto el total de cupones autorizados por el proovedor, es posible que se renueve, consulte en unas horas";
}
?>

Última edición por ashloch; 16/09/2012 a las 17:15