Comunidad de diseño web y desarrollo en internet online

Problemas con sistema de registro(se q es facil)

Citar            
MensajeEscrito el 14 Oct 2010 11:47 pm
Disculpen si molesto, soy relativamente nuevo en esto de crear paginas en php
en mi pc tengo un servidor montado con apache y el codigo funciona perfecto pero cuando lo subo a un servidor no funciona, me gustaria que me dijeran en que le estoy errando porq tambien me pasa con el login

Código PHP :

<?php include("config.php"); ?>
<form name="form1" method="post" action="register2.php?action=register">
  <p>Usuario: 
    <input name="name" type="text" id="user">
</p>
  <p>Contrase&ntilde;a: 
    <input name="pass" type="password" id="pass"> 
  </p>
  <p>Email: 
    <input name="email" type="text" id="email">
</p>
  <p>Sexo: 
    <select name="gender">
      <option value="mas" selected>Masculino</option>
      <option value="fem">Femenino</option>
    </select>
</p>
<input type=submit value=Registrar>
</form>

<?php
if ($action == register) {
    if (!$user || !$pass || !$email || !$gender) {
        print "Por favor rellena todos los campos.";
        }
mysql_query("insert into players (user, pass, email, rank,sexo) values('$user','$pass','$email','miembro','$gender')") or die("No se pudo registrar.");
    print "Estas registrado como $name. ya puedes empezar a jugar.";
}
?>


Desde ya muchisimas gracias

Por exeleo

8 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Oct 2010 12:12 am
A simple vista veo que la variable $action no está inicializada y luego veo que pasas un parámetro en el "action" del form. Por lo que has dicho, que te anda en tu máquina pero no en el hosting, deduzco que en tu máquina estás programando con register_globals = on (busca en el php.ini), lo cual es una MALA IDEA, y en el hosting está con register_globals = off lo cual es una buena idea.
Entonces tu problema es que en el hosting las variables pasadas por POST y GET no se crean automáticamente (cosa que sí sucede en tu máquina) y por lo tanto tu script hace cualquier cosa...
Debes configurar tu copia de PHP en tu máquina local con register_globals en off y reescribir tu script inicializando las variables correctamente.
http://ar2.php.net/manual/es/security.globals.php

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Oct 2010 12:59 am
muchisimas gracias no sabia lo del register globals lo habia leido pero no sabia bien de que se trataba, me voy a poner al tanto
gracias por la info

Por exeleo

8 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 16 Oct 2010 06:31 pm
No hace falta que inicialize la variable.
Yo, la verdad, si es un sistema de registro no sé cómo te funciona en ningún sitio.
Para empezar yo le pondría las comillas al tipo y al valor del boton.
Por otra parte te falla la estructura.
Al comienzo de la pagina mira a ver si tienen valor las variables del formulario. Vamos, que validas el formulario, y si es todo correcto que te agregue la info a la BBDD. Si las variables no tienes valor entonces que te muestre el formulario.
La variable action no te hace falta para nada.
Algo así:
- Un formulario para registrarse pero solo pidiendo usuario y pass ( ES UN EJEMPLO, jejeje). El formulario contiene 2 campos de texto llamados "user" y "pass".

REGISTRO.PHP

Código :

<?php 
// comprobamos que las dos variables tengan valor
if (isset($_POST["user"])) && (isset($_POST["pass"])) {
// si lo tienen hacemos esto (aquí pones el código de inserción de los valores en la BBDD y lo redireccionas con Javascript a dónde quieras.)
}  else { 
// si no lo tienen hacemos esto otro (aquí pones la página HTML con el formulario)
} ;?>


Incluso puedes ponerle mensajes personalizados para que le indiquen al usuario cuál es el campo que ha dejado en blanco.

Por malcomcc

39 de clabLevel



Genero:Masculino  

Desarrollador Web/Multiplataforma/Gráfico

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.