Foros del Web » Programando para Internet » PHP »

Sistema de surcripcion para web

Estas en el tema de Sistema de surcripcion para web en el foro de PHP en Foros del Web. Hola que sistema de subscripcion me recomendais para utilizar en mi web. Lo que quiero exactamente es un formulario con - email - nombre, apellido ...
  #1 (permalink)  
Antiguo 06/12/2011, 15:09
 
Fecha de Ingreso: febrero-2009
Mensajes: 175
Antigüedad: 15 años, 8 meses
Puntos: 0
Sistema de surcripcion para web

Hola que sistema de subscripcion me recomendais para utilizar en mi web.

Lo que quiero exactamente es un formulario con

- email
- nombre, apellido
- cuidad, pais

- confirmacion por email.

y que se guarde en una base de datos para enviar noticias y ofertas.

  #2 (permalink)  
Antiguo 06/12/2011, 17:37
Avatar de alfoner  
Fecha de Ingreso: abril-2009
Mensajes: 146
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Sistema de surcripcion para web

lo mas sencillo es crear un formulario de registro con los datos que necesitas y enviarlos a la base de datos. Despues crear una administracion sencilla para realizar las consultas y enviar los correos.
  #3 (permalink)  
Antiguo 06/12/2011, 19:28
 
Fecha de Ingreso: febrero-2009
Mensajes: 175
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Sistema de surcripcion para web

Ya he creado mi mini formulario. con subcripcion

Pero despues de completar y enviar los datos, no me aparecen en mi base de datos. Aqui os dejo el codigo.

Gracias.


Código PHP:
<?php
$email
=$_POST['email'];
$nombre=$_POST['nombre'];
$pais=$_POST['pais'];

if (
$nombre!= "" && $email!= "" && $pais!= "" )
{
mysql_connect ("miservidor","miusuario","micontraseña");
mysql_select_db ("mibd");

mysql_query("INSERT INTO tabla (email,nombre,pais) VALUES('$email','$nombre','$pais')");
}
?>
Código HTML:
<div id="apDiv21"> <form id="form1" name="form1" method="post" action="">
    <table width="250" border="0">
      <tr>
        <td width="162">Email</td>
        <td width="11">&nbsp;</td>
        <td width="313"><label>
          <input type="text" name="email" id="email" />
        </label></td>
      </tr>
      <tr>
        <td>Nombre</td>
        <td>&nbsp;</td>
        <td><label>
          <input type="text" name="nombre" id="nombre" />
        </label></td>
      </tr>
      <tr>
        <td>Pais</td>
        <td>&nbsp;</td>
        <td><label>
          <input type="text" name="pais" id="pais" />
        </label></td>
      </tr>
      <tr>
        <td colspan="3"><label>
          <input type="submit" name="button" id="button" value="Enviar" />
        </label></td>
      </tr>
    </table>
  </form></div> 
  #4 (permalink)  
Antiguo 06/12/2011, 19:34
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 44
Respuesta: Sistema de surcripcion para web

A donde envías el formulario?
  #5 (permalink)  
Antiguo 06/12/2011, 19:39
Avatar de dcreate  
Fecha de Ingreso: octubre-2009
Ubicación: Veracruz
Mensajes: 536
Antigüedad: 15 años, 1 mes
Puntos: 22
Respuesta: Sistema de surcripcion para web

lo unico que puedo opinar es a donde va el action del formulario, y tu codigo php recomiendo depurar la consulta mysql

Código PHP:
<?php
$email
=$_POST['email'];
$nombre=$_POST['nombre'];
$pais=$_POST['pais'];

if (!empty(
$nombre) && !empty($email) && !empty($pais))
{
mysql_connect ("miservidor","miusuario","micontraseña");
mysql_select_db ("mibd");

mysql_query("INSERT INTO tabla (email,nombre,pais) VALUES('$email','$nombre','$pais')")  or die ("error en: ".mysql_error());
}
?>
haber si puedes encontrar el error con eso
__________________
Somos lo que pensamos, como pensamos vivimos.
  #6 (permalink)  
Antiguo 06/12/2011, 19:39
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Sistema de surcripcion para web

al dejar el action vacio va a la misma pagina hasta donde me ha pasado XD, acostumbre siempre a depurar sus consultas
Código PHP:
Ver original
  1. mysql_query(/*consulta*/) or die(mysql_error());
a ver si tienes algun error ya que en teoria el codigo que muestra no se ve errado, saludos

Edit: Se me adelantaron :(
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 06/12/2011, 20:01
 
Fecha de Ingreso: febrero-2009
Mensajes: 175
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Sistema de surcripcion para web

Por lo que veo no es un error, es que me faltan cosas para añadir

Si me podeis decir que me falta para que el formulario se envie a la base de datos.
Ya que se muy poco de php y ese formulario lo he cojido de una web.
  #8 (permalink)  
Antiguo 07/12/2011, 01:42
 
Fecha de Ingreso: febrero-2009
Mensajes: 175
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Sistema de surcripcion para web

Lo he vuelto a hacer pero me sigue sin funcionar.

index.html
Código HTML:
<div id="apDiv1">
  <form id="form1" name="form1" method="post" action="procesar.php">
    <table width="250" border="0">
      <tr>
        <td width="77">email</td>
        <td width="413"><label>
          <input type="text" name="email" id="email" />
        </label></td>
      </tr>
      <tr>
        <td>nombre</td>
        <td><label>
          <input type="text" name="nombre" id="nombre" />
        </label></td>
      </tr>
      <tr>
        <td>pais</td>
        <td><label>
          <input type="text" name="pais" id="pais" />
        </label></td>
      </tr>
      <tr>
        <td colspan="2"><label>
          <input type="submit" name="enviar" id="enviar" value="Enviar" />
        </label></td>
      </tr>
    </table>
  </form>
</div> 
conexion.php
Código PHP:
<?php
$host 
"miservidor";
$user "miusuario";
$pw "micontraseña";
$bd "mibd";
?>
procesar.php
Código PHP:
<?php

include("conexion.php");

   if(isset(
$_POST['email']) && !empty($_POST['email']) &&
   (isset(
$_POST['nombre']) && !empty($_POST['nombre']) &&
   (isset(
$_POST['pais']) && !empty($_POST['pais']) &&
                                 
   {
      
$conexion mysql_connect($host,$user,$pw) or die("problema al conectar el host");
      
mysql_select_db($bd,$conexion) or die("problema al conectar la base de datos");
      
      
mysql_query("INSERT INTO tabla (EMAIL,NOMBRE,PAIS)
      VALUES ('$_POST [email]','$_POST [nombre]','$_POST [pais]')"
,$conexion);
      echo 
"datos insertados correctamente"
      
   
}else{
      echo 
"problema al insertar datos";

      }
?>
el codigo lo saque de ese tutorial pero no me funciona
  #9 (permalink)  
Antiguo 07/12/2011, 02:57
Avatar de LanbreGroteo  
Fecha de Ingreso: agosto-2009
Ubicación: $Mx->['Veracruz']
Mensajes: 69
Antigüedad: 15 años, 3 meses
Puntos: 1
De acuerdo Respuesta: Sistema de surcripcion para web

Cita:
Iniciado por mick089 Ver Mensaje
Código PHP:
<?php

include("conexion.php");

   if(isset(
$_POST['email']) && !empty($_POST['email']) &&
   (isset(
$_POST['nombre']) && !empty($_POST['nombre']) &&
   (isset(
$_POST['pais']) && !empty($_POST['pais']) &&
                                 
   {
      
$conexion mysql_connect($host,$user,$pw) or die("problema al conectar el host");
      
mysql_select_db($bd,$conexion) or die("problema al conectar la base de datos");
      
      
mysql_query("INSERT INTO tabla (EMAIL,NOMBRE,PAIS)
      VALUES ('$_POST [email]','$_POST [nombre]','$_POST [pais]')"
,$conexion);
      echo 
"datos insertados correctamente"
      
   
}else{
      echo 
"problema al insertar datos";

      }
?>
Yo veo que te falta algo en el procesar.php

Podrías intentar de la siguiente forma:
Código PHP:
include("conexion.php");

    if(isset(
$_POST['enviar'])):
        
        if(isset(
$_POST['email']) && isset($_POST['nombre']) && isset($_POST['pais'])):
            
$conexion mysql_connect($host$user$pw) or die(mysql_error());
            
mysql_select_db($bd$conexion) or die(mysql_error());
            
            
$insert mysql_query('INSERT INTO tabla (EMAIL,NOMBRE,PAIS) VALUES ($_POST["email"], $_POST["nombre"], $_POST["pais"] )');
            
            if(
$insert):
                echo 
"Datos añadidos correctamente";
            else:
                echo 
mysql_error();
            endif;
        else:
            echo 
"No has ingresado todos los datos del formulario. Verifica";
        endif;
        
    endif; 
Lo que noté también, es que, ponías las variables con espacios
Código PHP:
$_POST ['variable'
y quizá por eso no te las reconocía.

Prueba y me comentas si se pudo. ¡Saludos!
__________________
Et credo in Serpentem, mysterium mysteriorum. In nomen eius Baphomet
  #10 (permalink)  
Antiguo 07/12/2011, 10:45
 
Fecha de Ingreso: febrero-2009
Mensajes: 175
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Sistema de surcripcion para web

gracias por el aporte pero me sigue sin funcionar. he puesto exactamente tu codigo y me sale ese error.

Lost connection to MySQL server at 'reading initial communication packet', system error: 111
  #11 (permalink)  
Antiguo 07/12/2011, 20:13
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 44
Respuesta: Sistema de surcripcion para web

Eso es algún fallo o bug de Mysql. Googlea un poco (copia y pega el error en google).
  #12 (permalink)  
Antiguo 09/12/2011, 16:15
 
Fecha de Ingreso: febrero-2009
Mensajes: 175
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Sistema de surcripcion para web

Hola poniendo ese codigo ya me funciona.

Pero en ves de recibir en la base de datos el email de la persona, recibo la fecha y hora en la que se a subscrito.


Código PHP:
<?php
// Parametres mysql à remplacer par les vôtres
define('DB_SERVER'''); // serveur mysql
define('DB_SERVER_USERNAME'''); // nom d'utilisateur
define('DB_SERVER_PASSWORD'''); // mot de passe
define('DB_DATABASE'''); // nom de la base
// Connexion au serveur mysql
$connect mysql_connect(DB_SERVERDB_SERVER_USERNAME
DB_SERVER_PASSWORD
or die(
'Imposible conectarse : ' mysql_error());
// sélection de la base de données
mysql_select_db(DB_DATABASE$connect);
$msg_erreur "Error. Tienes que rellenar el campo:
<br/><br/>"
;
$msg_ok "Ya estas subscrito.";
$message $msg_erreur;
// vérification des champs 
if (empty($_POST['email'])) 
  
$message .= "email<br/>";

// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {

  echo 
$message;

// sinon c'est ok 
} else {

  foreach(
$_POST as $index => $valeur) {
    $
$index mysql_real_escape_string(trim($valeur));
  }

  
$sql "INSERT INTO formulaire VALUES ('".$email."', now())";
  
$res mysql_query($sql);

  if (
$res) {
    echo 
$msg_ok;
  } else {
    echo 
mysql_error();
  }

}
?>

Etiquetas: formulario, sistema
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 14:46.