Foros del Web » Programando para Internet » PHP »

Según los datos metidos en form, guardarlos en una base de datos u otra

Estas en el tema de Según los datos metidos en form, guardarlos en una base de datos u otra en el foro de PHP en Foros del Web. Código PHP: <?php $mensaje_error  =  "" ; if ( $_SERVER [ 'REQUEST_METHOD' ] ==  'POST' ) {     $accion  = isset( $_POST [ 'accion' ]) ?  $_POST [ 'accion' ...
  #1 (permalink)  
Antiguo 29/06/2011, 16:29
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Según los datos metidos en form, guardarlos en una base de datos u otra

Código PHP:
<?php
$mensaje_error 
"";
if (
$_SERVER['REQUEST_METHOD'] == 'POST')
{
   
$accion = isset($_POST['accion']) ? $_POST['accion'] : '';
   
$base_datos 'usuariosdb.php';
   
$pagina_sucesos './login.php';

   if (!
file_exists($base_datos))
   {
      echo 
'La base de datos no funciona!';
      exit;
   }
   if (
$accion == 'registro')
   {
      
$nuevonombre_usuario $_POST['nombre_usuario'];
      
$nuevoemail $_POST['email'];
      
$nuevacontrasena $_POST['contrasena'];
      
$confirmarcontrasena $_POST['confirmarcontrasena'];
      
$nuevonombre_completo $_POST['nombre_completo'];
      
$gusto $_POST['gusto'];
      
$puntuacion $_POST['puntuacion'];
      
$curso $_POST['tiempo_dedicado'];
      
$tiempo_dedicado $_POST['curso'];

      if (
$nuevacontrasena != $confirmarcontrasena)
      {
         
$mensaje_error 'Tu contrasena y la confirmada no es la misma.';
      }
      else
      if (!
preg_match("^[A-Za-z0-9_!@$]{1,50}$"$nuevonombre_usuario))
      {
         
$mensaje_error 'Tu nombre de usuario no es válido.';
      }
      else
      if (!
preg_match("^[A-Za-z0-9_!@$]{1,50}$"$nuevacontrasena))
      {
         
$mensaje_error 'Tu contrasena no es válida.';
      }
      else
      if (!
preg_match("^[A-Za-z0-9_!@$.' &]{1,50}$"$nuevonombre_completo))
      {
         
$mensaje_error 'Tu nombre completo no es válido.';
      }
      else
      if (!
preg_match("^.+@.+\..+$"$nuevoemail))
      {
         
$mensaje_error 'Tu Email no es válido.';
      }
      
$elementos file($base_datos);
      foreach(
$elementos as $enlinea)
      {
         list(
$nombre_usuario$contrasena$email$nombre_completo$activa$gusto$puntuacion$tiempo_dedicado$curso) = explode('|'trim($enlinea));
         if (
$nuevonombre_usuario == $nombre_usuario)
         {
            
$mensaje_error 'Tu nombre de usuario ya está en uso. Por favor, prueba con otro.';
            break;
         }
      }
      if (empty(
$mensaje_error))
      {
         
$archivo fopen($base_datos'a');
         
fwrite($archivo$nuevonombre_usuario);
         
fwrite($archivo'|');
         
fwrite($archivomd5($nuevacontrasena));
         
fwrite($archivo'|');
         
fwrite($archivo$nuevoemail);
         
fwrite($archivo'|');
         
fwrite($archivo$nuevonombre_completo);
         
fwrite($archivo'|1');
         
fwrite($archivo'|');
         
fwrite($archivo$gusto);
         
fwrite($archivo'|0');
         
fwrite($archivo$puntuacion);
         
fwrite($archivo'|00:00:00');
         
fwrite($archivo'|');
         
fwrite($archivo$tiempo_dedicado);
         
fwrite($archivo'|');
         
fwrite($archivo$curso);
         
fwrite($archivo"\r\n");
         
fclose($archivo);

         
$mailto $nuevoemail;
         
$asunto 'Tu nueva cuenta.';
         
$correo 'Una nueva cuenta a sido creada';
         
$correo .= "\r\nnombre_usuario: ";
         
$correo .= $nuevonombre_usuario;
         
$correo .= "\r\ncontrasena: ";
         
$correo .= $nuevacontrasena;
         
$correo .= "\r\n";
         
$encabezado_correo  "De: [email protected]"."\r\n";
         
$encabezado_correo .= "X-Mailer: PHP v".phpversion();
         
mail($mailto$asunto$correo$encabezado_correo);
         
header('Location: '.$pagina_sucesos);
         exit;
      }
   }
}
?>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
<link rel="stylesheet" type="text/css" href="estiloregistro.css"></link>
<link rel="stylesheet" type="text/css" href="estiloindex.css"></link>
<title>Muscaendo - Registrarse</title>
</head>
<body>
<!-- CABEZA -->
<div id="cabecero">
<div id="menu">
<div id="tabla">
    <ul>
<li><a href="#" >Opciones</a></li>    
<li><a href="estadisticas.php" >Estadísticas y Perfiles</a></li>    
    </ul>
</div>
</div>
<div id="menu2">
<div id="tabla2">
    <ul>
<li><a href="login.php" id="especial">Iniciar sesión</a></li>     
    </ul>
</div>
</div>
</div>
<div id="contenido">
<div id="herramienta">
<div class="margen">
<div id="div_registro">
<form name="registro" method="post" action="<?php echo basename(__FILE__); ?>" id="registro">
<input type="hidden" name="accion" value="registro">
<table fontsize="12px" align="center">
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr>
   <td align="center" colspan="2"><strong>Registrate para crear una nueva cuenta</td></strong>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr align="left">
   <td align="left">Nombre completo: </td>
   <td align="left"><input name="nombre_completo" type="text" id="nombre_completo"></td>
</tr>
<tr align="left">
   <td align="right">Nombre de usuario (nick): </td>
   <td align="left"><input name="nombre_usuario" type="text" id="nombre_usuario"></td>
</tr>
<tr>
   <td align="left"">Contraseña: </td>
   <td align="left"><input name="contrasena" type="password" id="contrasena"></td>
</tr>
<tr align="left">
   <td align="left">Confirmar contraseña: </td>
   <td align="left"><input name="confirmarcontrasena" type="password" id="confirmarcontrasena"></td>
</tr>
<tr align="left">
   <td align="">E-mail:</td>
   <td align="left"><input name="email" type="text" id="email"></td>
</tr>
<tr align="left">
   <td align="left">Gusto musical:</td>
   <td align="left"><select name="gusto">
 <option value="Pop">Pop</option>
 <option value="Rock">Rock</option>
 <option value="Jazz">Jazz</option>
 <option value="Clásica">Clásica</option>
 <option value="Moderna">Moderna</option>
   </select></td>
</tr>
<tr align="left">
   <td align="left">Curso:</td>
   <td align="left"><select name="curso">
 <option value="1ºESO">1ºESO</option>
 <option value="2ºESO">2ºESO</option>
 <option value="3ºESO">3ºESO</option>
 <option value="4ºESO">4ºESO</option>
 <option value="Bachiller">Bachiller</option>
   </select></td>
</tr>
<tr align="left">
   <td align="left">Instituto:</td>
   <td align="left"><select name="instituto">
 <option value="IES Duque de Rivas">IES Duque de Rivas</option>
 <option value="IES Europa">IES Europa</option>
 <option value="Luyfe">Luyfe</option>
   </select></td>
</tr>
<tr align="left">
   <td><?php echo $mensaje_error?></td>
</tr>

   <td align="left" valign="bottom" colspan="1"><input type="submit" name="registro" value="Crear usuario" id="registro"></td>
</tr>
</td>
</table>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Ese es el código de mi registro.php hay alguna variable liosa que en algunos casos no coinciden pero es una chapuza que bueno... funciona.
Antes de empezar, aclarar que no uso MYSQL sino el propio PHP que me graba los datos en un archivo .php en forma de "separado por comas".
Mi duda se centra en los institutos. Imaginaos que yo tengo varios archivos que funcionan en forma de base de datos, es decir, tengo un archivo duquederivas.php otro europa.php y otro luyfe.oho que son los nombres de los institutos. Y quiero que cuando selecciones por ejemplo "Duque de rivas" te guarde todos los datos del for de registro justo en la base de datos duquederivas.php.

Espeo vuestra ayuda y gracias.

PD.: Si no sabeis comentad "no sé" porque sino me da una sensación de que pasa de mi la gente.
Supongo que es fácil pero soy bastante novato.
  #2 (permalink)  
Antiguo 29/06/2011, 16:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Según los datos metidos en form, guardarlos en una base de datos u otra

Yo si sé, y sé trabajar bien con archivos de texto a modo de base de datos.

Pero hay un pequeño inconveniente, no sirve para todo tipo de situaciones.

Cuando se trata de un pequeño conjunto de datos sin relación, ni hay datos sensibles que almacenar me parece hasta buena idea.

Sin embargo no me parece buena idea pasar de largo por las bases de datos simplemente por desconocer, el poder de emplear bases de datos sobre conjuntos de datos mas amplios, sensibles y relacionados es su punto fuerte.

La verdad te sugiero que comiences de nuevo, pero ahora usando base de datos, ya que a la larga una aplicación basada en puros archivos es desgraciadamente lenta, poco optimizada, y definitivamente mala.

Vamos, que por cada nueva funcionalidad que desees agregar a tu sistema te va a costar un mar de lineas, mientras que con SQL solo unas pocas.

PD: Supongo que es fácil, pero es por que yo si leído y estudiado bastante.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/06/2011, 16:38
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Respuesta: Según los datos metidos en form, guardarlos en una base de datos u otra

Cita:
Iniciado por pateketrueke Ver Mensaje
Yo si sé, y sé trabajar bien con archivos de texto a modo de base de datos.

Pero hay un pequeño inconveniente, no sirve para todo tipo de situaciones.

Cuando se trata de un pequeño conjunto de datos sin relación, ni hay datos sensibles que almacenar me parece hasta buena idea.

Sin embargo no me parece buena idea pasar de largo por las bases de datos simplemente por desconocer, el poder de emplear bases de datos sobre conjuntos de datos mas amplios, sensibles y relacionados es su punto fuerte.

La verdad te sugiero que comiences de nuevo, pero ahora usando base de datos, ya que a la larga una aplicación basada en puros archivos es desgraciadamente lenta, poco optimizada, y definitivamente mala.

Vamos, que por cada nueva funcionalidad que desees agregar a tu sistema te va a costar un mar de lineas, mientras que con SQL solo unas pocas.

Supongo que es fácil, pero es por que yo si leído y estudiado bastante.
Yo llevo exactamente con PHP una semana, esto es todo lo que sé. ¿Me podrías decir como hacerlo? No me quiero meter de lleno con el SQL sin saber primero PHP...
únicamente guiarme de como lo podría hacer.
  #4 (permalink)  
Antiguo 29/06/2011, 16:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Según los datos metidos en form, guardarlos en una base de datos u otra

En el área de Aportes del foro de PHP existen buenos temas al respecto, así como en las FAQ's.

De hecho recuerdo haber escrito un aporte que habla precisamente de como usar archivos como base de datos, te sugiero investigar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 29/06/2011, 16:46
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Respuesta: Según los datos metidos en form, guardarlos en una base de datos u otra

He mirado mucho.. Pero no encuentro eso de la redirección de base de datos.
  #6 (permalink)  
Antiguo 29/06/2011, 16:54
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Según los datos metidos en form, guardarlos en una base de datos u otra

Lo que puedes hacer es al enviar si has dicho que depende del nombre del instituto es hacer unas comparaciones... si es tal nombre hacer tal es cosas... si es el otro hacer...

Es decir, usar unos If... , aunque eso lo haría muy largo... pero el código llega a un punto que se hace difícil de seguir.

La cosa seria hacer unas comprobaciones en estos momentos no se me ocurre otra manera mas sencilla...
__________________
Siempre inmerso en nuevos proyectos.

Cuando estoy activo puedes verme en //LiveCoding
  #7 (permalink)  
Antiguo 29/06/2011, 16:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Según los datos metidos en form, guardarlos en una base de datos u otra

Cita:
Iniciado por GuillermoM Ver Mensaje
He mirado mucho.. Pero no encuentro eso de la redirección de base de datos.

PHP > Aportes, Sistemas en PHP > Aporte: Tabla de datos como archivos de texto
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 29/06/2011, 17:02
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Respuesta: Según los datos metidos en form, guardarlos en una base de datos u otra

Cita:
Iniciado por pateketrueke Ver Mensaje
[url=http://www.forosdelweb.com/f18/]PHP[/url] > [url=http://www.forosdelweb.com/f18/aportes-sistemas-php-569025/]Aportes, Sistemas en PHP[/url] > [url=http://www.forosdelweb.com/f18/aporte-tabla-datos-como-archivos-texto-593101/]Aporte: Tabla de datos como archivos de texto [/url]
Ya lo vi pero no se si es lo que busco, porque eso ya lo he conseguido.
  #9 (permalink)  
Antiguo 29/06/2011, 17:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Según los datos metidos en form, guardarlos en una base de datos u otra

Pero si es exactamente lo que buscas "guardar datos en un registro", si los datos los procesas en algún bucle es irrelevante.

Al final se trata de tener todo en una variable del tipo string, y simplemente escribirla al archivo.

No veo el problema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: php+ajax+formularios
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 04:23.