Foros del Web » Programando para Internet » PHP »

PHP cortar consulta?

Estas en el tema de PHP cortar consulta? en el foro de PHP en Foros del Web. Buenas, tengo una duda. Resumo el tema... En la parte de un registro de mi web, quiero hacer que aparte que me postee en la ...
  #1 (permalink)  
Antiguo 19/03/2012, 11:56
Avatar de mclozano6  
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
PHP cortar consulta?

Buenas, tengo una duda.
Resumo el tema...

En la parte de un registro de mi web, quiero hacer que aparte que me postee en la DB me envie un mail a mi casilla avisandome.
Ya logre las 2 cosas... ahora el problema es el siguiente:

Cuando me registro con un nombre de usuario o correo que ya esta EN USO, no me postea en la DB, sin embargo el mail me lo envia de todas formas...

Mi pregunta es:
Hay alguna forma de cortar la cadena antes de q envie el mail?

Ya intente con el codigo Header...;exit; y varios mas cuando tire error en la consulta de usuario o correo, pero no hay forma.... el mail lo envia igual...

Agradezco sus respuestas.
Atte.
  #2 (permalink)  
Antiguo 19/03/2012, 11:59
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: PHP cortar consulta?

Dejame adivinar... Nop, no pude adivinar.

Pon el código que utilizas para mandar el mail y hacer el insert así podemos verlo e indicarte que esta fallando.

Saludos!
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 19/03/2012, 12:07
Avatar de mclozano6  
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: PHP cortar consulta?

<?php

$id_usuario = generador(5,false,false,true,false);
$nombreUsuario = $_POST["nombreUsuario"];
$mail = $_POST["mail"];
$clave = $_POST["pwd"];
$sexo = $_POST["sx"];

$conexion = mysql_connect ("XX", "XXX", "XXXX");
mysql_select_db ("base",$conexion);

$sql_usuarioCheca = "SELECT * FROM usuario WHERE nombre_usuario = '$nombreUsuario'";
$sql_mailCheca = "SELECT * FROM usuario WHERE email = '$mail'";
$sql_registro = "INSERT INTO usuario VALUES ($id_usuario,'$nombreUsuario','$mail','$clave',$se xo)";

if(mysql_num_rows(mysql_query($sql_usuarioCheca)) > 0)
header("Location:iniciarny.html");
elseif (mysql_num_rows(mysql_query($sql_mailCheca)) > 0)
header("Location:iniciarny.html");
elseif (mysql_query($sql_registro))
header("Location:iniciar.html");
else
echo "Error critico";


function generador($longitud,$letras_min,$letras_may,$numer os,$simbolos)
{
//Evaluamos [$variable?] si queremos letras minúsculas; Si sí agregamos la letras minúsculas
// Si NO [:'';] , no agregamos nada.
$variacteres = $letras_min?'abdefghijklmnopqrstuvwxyz':'';
//Hacemos lo mismo para letras mayúsculas,numeros y simbolos
$variacteres .= $letras_may?'ABDCEFGHIJKLMNOPQRSTUVWXYZ':'';
$variacteres .= $numeros?'0123456789':''; //NOTA: En el tutorial puse mal esta variable debe ser -numeros- y no -numero-.
$variacteres .= $simbolos?'!#$%&/()?¡¿':'';

//Inicializamos variable $i y $clv
$i = 0;
$clv = '';

//repetimos el codigo segun la longitud
while($i<$longitud)
{
//Generamos un numero aleatorio
$numrad = rand(0,strlen($variacteres)-1);
//Sacamos el la letra al azar
//La función -substr()- se compone de substr($variable,posición_inicio,longitud de sub cadena);
$clv .= substr($variacteres,$numrad,1);
//Aumentamos a $i en 1 cada que entramos al while
$i++;
}

//Mostramos la cadena generada por medio de -echo-
return $clv;
}

?>


<?php
require("class.phpmailer.php");

function send_html_mail(
$emailPara, $nombrePara,
$asunto,
$archiMensaje,
$emailDe, $nombreDe )
{

$mail = new PHPMailer();
/*
$mail->IsSMTP( true );
$mail->SMTPAuth= true;
$mail->Host = "localhost";
*/
$mail->IsMail(true);
$mail->From = $emailDe;
$mail->FromName = $nombreDe;
$mail->Subject = $asunto;
$mail->IsHTML(true);

if(!is_array($emailPara))
{
$emailPara = split(',', $emailPara);
}

if(is_array($emailPara))
{
$n = count($emailPara);
for($k = 0; $k < $n; $k++)
{
$mail->AddAddress(trim($emailPara[$k]), '');
}
}
else
{
$mail->AddAddress(trim($emailPara), $nombrePara);
}



$body = $archiMensaje;



$mail->MsgHTML($body, $_SERVER['DOCUMENT_ROOT'] . '');

return $mail->Send();
}




?>

<?php

$nombreUsuario = $_POST ["nombreUsuario"];
$mail = $_POST["mail"];
$clave = $_POST["pwd"];
$sexo = $_POST["sx"];
$emailPara = '[email protected]';
$nombrePara = 'RB';
$asunto = 'Contacto';

$archiMensaje = "<html><body>

Nombre Usuario: $nombreUsuario <br /><br />
Mail: $mail <br /><br />
Clave: $clave <br /><br />
Sexo: $sexo <br />



</body></html>" ;

send_html_mail(
$emailPara, $nombrePara,
$asunto,
$archiMensaje,
$correo, $nombre ) ;

?>


<?php echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=http://ssss.com">"; ?>



-----------------------------------------------------------------------------------------------------------------------------------

Supongo que el error esta aca, el tema que ya he probado de todo...

if(mysql_num_rows(mysql_query($sql_usuarioCheca)) > 0)
header("Location:iniciarny.html"); <---
elseif (mysql_num_rows(mysql_query($sql_mailCheca)) > 0)
header("Location:iniciarny.html"); <---
elseif (mysql_query($sql_registro))
header("Location:iniciar.html"); <---
else
echo "Error critico"; <---


Gracias por tu pronta respuesta!
  #4 (permalink)  
Antiguo 19/03/2012, 12:12
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: PHP cortar consulta?

Primero que nada en esta linea tienes un error de sintaxis

function generador($longitud,$letras_min,$letras_may,$numer os,$simbolos)
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 19/03/2012, 12:17
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: PHP cortar consulta?

Cita:
Iniciado por mclozano6 Ver Mensaje
Supongo que el error esta aca, el tema que ya he probado de todo...

if(mysql_num_rows(mysql_query($sql_usuarioCheca)) > 0)
header("Location:iniciarny.html"); <---
elseif (mysql_num_rows(mysql_query($sql_mailCheca)) > 0)
header("Location:iniciarny.html"); <---
elseif (mysql_query($sql_registro))
header("Location:iniciar.html"); <---
else
echo "Error critico"; <---


Gracias por tu pronta respuesta!
Efectivamente, necesitas indicarle a la pagina destino, por que lugar del if ingreso.

para eso solo seria necesario que envíes algún parámetro por get

Código PHP:
Ver original
  1. <?php
  2. if (mysql_num_rows(mysql_query($sql_usuarioCheca)) > 0) {
  3.     header("Location:iniciarny.html?usuarioexistente=true");
  4. } elseif (mysql_num_rows(mysql_query($sql_mailCheca)) > 0) {
  5.     header("Location:iniciarny.html?mailexistente=true");
  6. } elseif (mysql_query($sql_registro)) {
  7.     header("Location:iniciar.html");
  8. } else {
  9.     echo "Error critico";
  10. }
  11. ?>
  12.  
  13. luego en la pagina donde recibes los datos, agregas un
  14.  
  15. <?php
  16. if (isset($_GET['usuarioexistente'])) {
  17.     $foo;
  18. }
  19.  
  20. if (isset($_GET['mailexistente'])) {
  21.     $foo;
  22. }
  23. ?>
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #6 (permalink)  
Antiguo 19/03/2012, 12:23
Avatar de mclozano6  
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: PHP cortar consulta?

Muchisimas gracias, ahora lo chequeo y te cuento...

Me podrías decir el tema de la sintaxis donde esta el error.
Es que aveces con tanta cosa se me pasan por alto esos detalles, sumándole que aún soy novato.

Gracias
  #7 (permalink)  
Antiguo 19/03/2012, 12:37
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: PHP cortar consulta?

Cita:
Iniciado por mclozano6 Ver Mensaje
Muchisimas gracias, ahora lo chequeo y te cuento...

Me podrías decir el tema de la sintaxis donde esta el error.
Es que aveces con tanta cosa se me pasan por alto esos detalles, sumándole que aún soy novato.

Gracias
aqui $numer os,

tienes un espacio
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #8 (permalink)  
Antiguo 19/03/2012, 12:39
Avatar de mclozano6  
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: PHP cortar consulta?

He probado el código, me redirige bien, si falla el usuario o correo.
El tema que aún me sigue enviando el mail. No me corta el envío del mail por mas que rebote en la DB...
Alguna idea?
Saludos y gracias.
  #9 (permalink)  
Antiguo 19/03/2012, 12:45
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: PHP cortar consulta?

La pagina que manda los mails y que hace el insert deberia ser la misma. Ese es el problema. No es un error de código. Entonces, o hace las 2 cosas o no hace ninguna.

Intenta algo así: (si no se entiende algo pregunta, porque no se que conocimientos tienes)

Código PHP:
Ver original
  1. <?php
  2.  
  3. $id_usuario = generador(5, false, false, true, false);
  4. $nombreUsuario = $_POST["nombreUsuario"];
  5. $mail = $_POST["mail"];
  6. $clave = $_POST["pwd"];
  7. $sexo = $_POST["sx"];
  8.  
  9. $conexion = mysql_connect("XX", "XXX", "XXXX");
  10. mysql_select_db("base", $conexion);
  11.  
  12. $sql_usuarioCheca = "SELECT * FROM usuario WHERE nombre_usuario = '$nombreUsuario'";
  13. $sql_mailCheca = "SELECT * FROM usuario WHERE email = '$mail'";
  14.  
  15. //! mysql_num_rows(mysql_query($sql_usuarioCheca) es igual que poner  mysql_num_rows(mysql_query($sql_usuarioCheca) == 0
  16. if ( ! mysql_num_rows(mysql_query($sql_usuarioCheca))  &&  ! mysql_num_rows(mysql_query($sql_mailCheca)) ){
  17.     $sql_registro = "INSERT INTO usuario VALUES ($id_usuario,'$nombreUsuario','$mail','$clave',$se xo)";
  18.     include('pagina_que_manda_tus_mails.php');
  19. }else {
  20.     echo "Error critico";
  21. }
  22.  
  23. function generador($longitud, $letras_min, $letras_may, $numeros, $simbolos) {
  24. //Evaluamos [$variable?] si queremos letras minúsculas; Si sí agregamos la letras minúsculas
  25. // Si NO [:'';] , no agregamos nada.
  26.     $variacteres = $letras_min ? 'abdefghijklmnopqrstuvwxyz' : '';
  27. //Hacemos lo mismo para letras mayúsculas,numeros y simbolos
  28.     $variacteres .= $letras_may ? 'ABDCEFGHIJKLMNOPQRSTUVWXYZ' : '';
  29.     $variacteres .= $numeros ? '0123456789' : ''; //NOTA: En el tutorial puse mal esta variable debe ser -numeros- y no -numero-.
  30.     $variacteres .= $simbolos ? '!#$%&/()?¡¿' : '';
  31.  
  32. //Inicializamos variable $i y $clv
  33.     $i = 0;
  34.     $clv = '';
  35.  
  36. //repetimos el codigo segun la longitud
  37.     while ($i < $longitud) {
  38. //Generamos un numero aleatorio
  39.         $numrad = rand(0, strlen($variacteres) - 1);
  40. //Sacamos el la letra al azar
  41. //La función -substr()- se compone de substr($variable,posición_inicio,longitud de sub cadena);
  42.         $clv .= substr($variacteres, $numrad, 1);
  43. //Aumentamos a $i en 1 cada que entramos al while
  44.         $i++;
  45.     }
  46.  
  47. //Mostramos la cadena generada por medio de -echo-
  48.     return $clv;
  49. }
  50. ?>
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #10 (permalink)  
Antiguo 19/03/2012, 13:03
Avatar de mclozano6  
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: PHP cortar consulta?

Bien, avanzamos...
Ahora me envía el mail unicamente cuando usuario + correo no estan en uso!!
Pero ahora el problema es que no me lo graba en la DB !

p.d: Corregí el error de sintaxis de $sexo.

Gracias!
  #11 (permalink)  
Antiguo 19/03/2012, 13:07
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: PHP cortar consulta?

Faltaba el mysql_query... eso lo tendrias que haber visto tu :p

Código PHP:
Ver original
  1. if ( ! mysql_num_rows(mysql_query($sql_usuarioCheca))  &&  ! mysql_num_rows(mysql_query($sql_mailCheca)) ){
  2.     $sql_registro = "INSERT INTO usuario VALUES ($id_usuario,'$nombreUsuario','$mail','$clave',$se xo)";
  3.     mysql_query($sql_registro);
  4.     include('pagina_que_manda_tus_mails.php');
  5. }else {
  6.     echo "Error critico";
  7. }
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #12 (permalink)  
Antiguo 19/03/2012, 13:15
Avatar de mclozano6  
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: PHP cortar consulta?

Si, pero aún sigue sin funcionar!
Aguardo instrucciones!
Ya estamos cerca! :p

Gracias por tu paciencia!! Te recomendare! ^^
  #13 (permalink)  
Antiguo 19/03/2012, 18:59
Avatar de mclozano6  
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: PHP cortar consulta?

Alguien me ayuda? Ya casi estaba ^^
  #14 (permalink)  
Antiguo 19/03/2012, 20:28
Avatar de mclozano6  
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: PHP cortar consulta?

Listo!
Mirando un poco me di cuenta q era:

if ( ! mysql_num_rows(mysql_query($sql_usuarioCheca)) && ! mysql_num_rows(mysql_query($sql_mailCheca)) ){
mysql_query($sql_registro);
include('procesa_contacto.php4');
}else {
echo "Error critico";
}

GRACIAS SWIDER!!
Fuiste una gran ayuda!

Etiquetas: cortar, registro, usuarios
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 20:35.