Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: nobo en 22 Febrero 2012, 10:07 am



Título: formulario de registro no hace nada...(SOLUCIONADO)
Publicado por: nobo en 22 Febrero 2012, 10:07 am
Solucion:

 mysql_query($insertSQL, $conexionzulo);

Ni me da error, ni muestra echo, ni me lo inserta en la base de datos...

Dejo el codigo:
Código
  1. if (isset($_POST) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/alta_usuario.php' && !empty($_POST)) {
  2.  
  3. $pass = $_POST["strPassword"];
  4. $password = $_POST["password"];
  5. $email = $_POST["strEmail"];
  6. $mail = $_POST["mail"];
  7. $telefono = $_POST["intNtelf"];
  8. $telefono2 = $_POST["telefono"];
  9.  
  10.      if($pass!=$password) {
  11.         echo "Las contraseñas no coinciden"; }
  12.        if($email!=$mail) {
  13.         echo "El email no coincide"; }
  14.  
  15.   if($telefono!=$telefono2) {
  16.         echo "Los telefonos no coinciden";
  17.      }else {
  18.  $checkuser = comprobaruser($_POST["strNick"]);
  19. if ($checkuser !=0) {
  20. echo "El usuario ya existe"; }
  21. $checkmail = comprobarmail($_POST["strEmail"]);
  22. if ($checkmail !=0){
  23. echo "El mail" .$email. "ya existe"; }
  24.  
  25.  }
  26. }else {
  27.  
  28. if (isset($_POST["form1"])) {
  29.  $insertSQL = sprintf("INSERT INTO tblusuario (strNombre, strEmail, intActivo, strPassword, strDireccion, strNick, intCpostal, strProvincia, strPoblacion, intNtelf) VALUES (%s, %s, %s, %s, %s)",
  30.                       GetSQLValueString($_POST['strNombre'], "text"),
  31.                       GetSQLValueString($_POST['strEmail'], "text"),
  32.                       GetSQLValueString($_POST['intActivo'], "int"),
  33.                       GetSQLValueString($_POST['strPassword'], "text"),
  34.   GetSQLValueString($_POST['strDireccion'], "text"),
  35.   GetSQLValueString($_POST['strNick'], "text"),
  36.   GetSQLValueString($_POST['intCpostal'], "int"),
  37.   GetSQLValueString($_POST['strProvincia'], "text"),
  38.   GetSQLValueString($_POST['strPoblacion'], "text"),
  39.   GetSQLValueString($_POST['intNtelf'], "int"));
  40.  
  41.  mysql_select_db($database_conexionzulo, $conexionzulo);}}
  42. ?>


Título: Re: formulario de registro no hace nada...
Publicado por: adastra en 22 Febrero 2012, 10:11 am
A lo mejor resultará muy obvio, pero si no hace nada, probablemente es que el botón que deberia hacer el sumbit no esta dentro de un <form>
Publica la página entera para poderlo ver....


Título: Re: formulario de registro no hace nada...
Publicado por: nobo en 22 Febrero 2012, 13:44 pm
Si esta dentro pero bueno todas las respuestas o sugerencias por muy obvias que sean son bien recibidas porque no se...
Podria ser por los if? Que sea elseif ?
ok ahi va ;)

Código
  1. <p>Formulario de Alta:   </p>
  2.    <p>&nbsp;</p>
  3.    <form action="alta_usuario.php" method="post" name="form1" id="form1">
  4.      <table align="center">
  5.        <tr valign="baseline">
  6.          <td nowrap="nowrap" align="right">Nick:</td>
  7.          <td><span id="sprytextfield1">
  8.            <input type="text" name="strNick" value="" size="32" />
  9.            <span class="textfieldRequiredMsg">Este campo es obligatorio.</span></span></td>
  10.        </tr>        
  11.        <tr valign="baseline">
  12.          <td nowrap="nowrap" align="right">Email:</td>
  13.          <td><span id="sprytextfield2">
  14.          <input type="text" name="strEmail" value="" size="32" />
  15.          <span class="textfieldRequiredMsg">Este campo es obligatorio.</span><span class="textfieldInvalidFormatMsg">El Email no es correcto.</span></span></td>
  16.        </tr>
  17.        <tr valign="baseline">
  18.          <td nowrap="nowrap" align="right">Repite Email:</td>
  19.          <td><span id="sprytextfield3">
  20.          <input type="text" name="mail" value="" size="32" />
  21.          <span class="textfieldRequiredMsg">Este campo es obligatorio.</span><span class="textfieldInvalidFormatMsg">El Email no es correcto.</span></span></td>
  22.        </tr>
  23.        <tr valign="baseline">
  24.          <td nowrap="nowrap" align="right">Contraseña:</td>
  25.          <td><span id="sprytextfield4">
  26.            <input type="password" name="strPassword" value="" size="32" />
  27.            <span class="textfieldRequiredMsg">Este campo es obligatorio.</span></span></td>
  28.        </tr>
  29.        <tr valign="baseline">
  30.          <td nowrap="nowrap" align="right">Repite Contraseña:</td>
  31.          <td><span id="sprytextfield5">
  32.            <input type="password" name="password" value="" size="32" />
  33.            <span class="textfieldRequiredMsg">Este campo es obligatorio.</span></span></td>
  34.        </tr>
  35.        <tr valign="baseline">
  36.          <td nowrap="nowrap" align="right">Nombre y Apellidos:</td>
  37.          <td><span id="sprytextfield6">
  38.            <input type="text" name="strNombre" value="" size="32" />
  39.            <span class="textfieldRequiredMsg">Este campo es obligatorio.</span></span></td>
  40.        </tr>
  41.        <tr valign="baseline">
  42.          <td nowrap="nowrap" align="right">Direccion:</td>
  43.          <td><span id="sprytextfield7">
  44.            <input type="text" name="strDireccion" value="" size="32" />
  45.            <span class="textfieldRequiredMsg">Necesitamos la direccion para enviar el pedido.</span></span></td>
  46.        </tr>
  47.        <tr valign="baseline">
  48.          <td nowrap="nowrap" align="right">Codigo Postal:</td>
  49.          <td><span id="sprytextfield8">
  50.            <input type="text" name="intCpostal" value="" size="32" />
  51.            <span class="textfieldRequiredMsg">Necesitamos el codigo postal para enviar el pedido.</span></span></td>
  52.        </tr>
  53.        <tr valign="baseline">
  54.          <td nowrap="nowrap" align="right">Poblacion:</td>
  55.          <td><span id="sprytextfield9">
  56.            <input type="text" name="strPoblacion" value="" size="32" />
  57.            <span class="textfieldRequiredMsg">Necesitamos la provincia para enviar el pedido.</span></span></td>
  58.        </tr>
  59.        <tr valign="baseline">
  60.          <td nowrap="nowrap" align="right">Provincia:</td>
  61.          <td><span id="sprytextfield10">
  62.            <input type="text" name="strProvincia" value="" size="32" />
  63.            <span class="textfieldRequiredMsg">Necesitamos la poblacion para enviar el pedido.</span></span></td>
  64.        </tr>
  65.        <tr valign="baseline">
  66.          <td nowrap="nowrap" align="right">Telefono:</td>
  67.          <td><span id="sprytextfield11">
  68.            <input type="text" name="intNtelf" value="" size="32" />
  69.            <span class="textfieldRequiredMsg">Necesitamos el telefono para confirmar el pedido.</span></span></td>
  70.        </tr>
  71.        <tr valign="baseline">
  72.          <td nowrap="nowrap" align="right">Repite Telefono:</td>
  73.          <td><span id="sprytextfield12">
  74.            <input type="text" name="telefono" value="" size="32" />
  75.            <span class="textfieldRequiredMsg">Este campo es obligatorio.</span></span></td>
  76.        </tr>                                    
  77.        <tr valign="baseline">
  78.          <td nowrap="nowrap" align="right">&nbsp;</td>
  79.          <td><input type="submit" value="Registrame!" /></td>
  80.        </tr>
  81.      </table>
  82.      <input type="hidden" name="intActivo" value="1" />
  83.      <input type="hidden" name="MM_insert" value="form1" />
  84.    </form>


Título: Re: formulario de registro no hace nada...
Publicado por: adastra en 22 Febrero 2012, 16:02 pm
El código es un poco "spaguetti" pero los if no deberian fallar, si dices que no se ejecutan, lo que yo haria sera imprimir por pantalla (echo) cada una de las "precondiciones-condiciones" de la logica que has implementando, es decir, el valor de:

echo(isset($_POST))
echo(isset($_SERVER['HTTP_REFERER']))
echo($_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/alta_usuario.php')
echo(!empty($_POST))

Seguramente lo que ocurre es que no se ejecuta nada porque no se cumple la condición

(isset($_POST) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/alta_usuario.php' && !empty($_POST))

Hechale un vistazo, ya que como utilizas "&&" en cuando una retorne "false" la condición no será cumplida.


Título: Re: formulario de registro no hace nada...
Publicado por: nobo en 22 Febrero 2012, 22:29 pm
Que significa spaguetti?


Título: Re: formulario de registro no hace nada...
Publicado por: Castiblanco en 22 Febrero 2012, 22:40 pm
:http://es.wikipedia.org/wiki/C%C3%B3digo_spaghetti

Eso básicamente...


Título: Re: formulario de registro no hace nada...
Publicado por: nobo en 22 Febrero 2012, 23:32 pm
ajajaja perfecto no me molesta ;)


Simplemente di como mejorarlo ;) Y te lo agradecere.

Sigue sin funcionar ahora lo puse asi:

Código
  1. if ( isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] =='http://localhost/zulo/alta_usuario.php' && ($_POST != null)) {
  2. $nick = $_POST["strNick"];
  3. $pass = $_POST["strPassword"];
  4. $password = $_POST["password"];
  5. $email = $_POST["strEmail"];
  6. $mail = $_POST["mail"];
  7. $telefono = $_POST["intNtelf"];
  8. $telefono2 = $_POST["telefono"];
  9.  
  10.      if($pass!=$password) {
  11.         echo "Las contraseñas no coinciden"; }
  12.        if($email!=$mail) {
  13.         echo "El email no coincide"; }
  14.  
  15.   if($telefono!=$telefono2) {
  16.         echo "Los telefonos no coinciden";
  17.      }else {
  18.  $checkuser = comprobaruser($_POST["strNick"]);
  19. if ($checkuser !=0) {
  20. echo "El usuario ".$nick. " ya existe"; }
  21. $checkmail = comprobarmail($_POST["strEmail"]);
  22. if ($checkmail !=0){
  23. echo "El mail " .$email. " ya existe"; }
  24.   else {
  25.  
  26. if (isset($_POST["form1"])) {
  27.  $insertSQL = sprintf("INSERT INTO tblusuario (strNombre, strEmail, intActivo, strPassword, strDireccion, strNick, intCpostal, strProvincia, strPoblacion, intNtelf) VALUES (%s, %s, %s, %s, %s)",
  28.                       GetSQLValueString($_POST['strNombre'], "text"),
  29.                       GetSQLValueString($_POST['strEmail'], "text"),
  30.                       GetSQLValueString($_POST['intActivo'], "int"),
  31.                       GetSQLValueString($_POST['strPassword'], "text"),
  32.   GetSQLValueString($_POST['strDireccion'], "text"),
  33.   GetSQLValueString($_POST['strNick'], "text"),
  34.   GetSQLValueString($_POST['intCpostal'], "int"),
  35.   GetSQLValueString($_POST['strProvincia'], "text"),
  36.   GetSQLValueString($_POST['strPoblacion'], "text"),
  37.   GetSQLValueString($_POST['intNtelf'], "int"));
  38.  
  39.  mysql_select_db($database_conexionzulo, $conexionzulo);}}}}
  40. ?>

Hasta aqui me funciona:


      if($pass!=$password) {
         echo "Las contraseñas no coinciden"; }
           if($email!=$mail) {
         echo "El email no coincide"; }
    
         if($telefono!=$telefono2) {
         echo "Los telefonos no coinciden";
      }else {
        $checkuser = comprobaruser($_POST["strNick"]);
       if ($checkuser !=0) {
          echo "El usuario ".$nick. " ya existe"; }
          $checkmail = comprobarmail($_POST["strEmail"]);
          if ($checkmail !=0){
             echo "El mail " .$email. " ya existe"; }

Pero el else no me funciona :S Es decir no inserta los datos en la base de datos...


Título: Re: formulario de registro no hace nada...
Publicado por: Pablo Videla en 23 Febrero 2012, 01:07 am
Código
  1. if (isset($_POST) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/alta_usuario.php' && !empty($_POST)) {
  2.  
  3.  

El codigo anterior debe contener en post el nombre del formulario a recibir?

Código
  1. if (isset($_POST['idFormulario']) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/alta_usuario.php' && !empty($_POST)) {
  2.  
  3.  

Donde debes reemplazar el idFormulario por el name o id del formulario original, prueba eso.


Título: Re: formulario de registro no hace nada...
Publicado por: nobo en 23 Febrero 2012, 09:32 am
En un principio creo que no... Porque esta funcionando perfectamente el comprobar user mail y todo eso... Lo que no hace es introducir los datos (else) en la base de datos.... :(

De todas formas lo pruebo y te digo ;)

EDITO: Sigue pasando lo mismo :(

No hace nada... Si comprueba el email porque si existe me hace el echo, las contraseñas tambien y el nick tambien...


Título: Re: formulario de registro no hace nada...
Publicado por: Pablo Videla en 23 Febrero 2012, 21:04 pm
Mira, no estoy seguro porque no estoy probando nada, pero leyendo, puede que no te hayas conectado a la bd, porque primero debes conectarte y luego hacer el insert, mira esto

Código
  1. <?php
  2. $con = mysql_connect("localhost","peter","abc123");
  3. if (!$con)
  4.  {
  5.  die('Could not connect: ' . mysql_error());
  6.  }
  7.  
  8. mysql_select_db("my_db", $con);
  9.  
  10. $sql="INSERT INTO Persons (FirstName, LastName, Age)
  11. VALUES
  12. ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
  13.  
  14. if (!mysql_query($sql,$con))
  15.  {
  16.  die('Error: ' . mysql_error());
  17.  }
  18. echo "1 record added";
  19.  
  20. ?>
  21.  

http://www.w3schools.com/php/php_mysql_insert.asp

Prueba lo que te digo, se que no puedo responder si no estoy completamente seguro, pero puedo darte ideas.


Título: Re: formulario de registro no hace nada...(SOLUCIONADO)
Publicado por: nobo en 23 Febrero 2012, 22:13 pm
Efectivamente algo asi era...

SOLUCION:

Soy un despistado del cagarse xDD Y no habia hecho el query a la base de datos...

 mysql_query($insertSQL, $conexionzulo);

Eso era lo que faltaba........


Título: Re: formulario de registro no hace nada...(SOLUCIONADO)
Publicado por: Pablo Videla en 23 Febrero 2012, 22:15 pm
Suele pasar, me alegro que se te haya arreglado el problema, saludos.  ;-)