Comunidad de diseño web y desarrollo en internet online

Problema con php y registro

Citar            
MensajeEscrito el 12 Jun 2008 08:39 pm
Bueno este es mi problema, no tengo ni idea de ocmo programar en php, pero a base de tutoriales he logrado hacer una pagina de registro y login, ahora el problema esque necesito hacer una pagina en la que los usuarios se tengan que registrar, pero que el administrador o la persona que yo ponga acargo sea la que de la aprbacion, algo asi q cuando se registren le mande un mail al admin y que el sea el que de la aprobacion y active la cuenta porque no es una pagina para todo el mundo si no para unos cursos de ingles asi que ese link solo se le daria a estudiantes gracias por la ayuda, cualquiera ayuda mi msn es :[email protected] y mi mail es el mismo

Por xtatanx

26 de clabLevel



 

artista, web, diseño

msie
Citar            
MensajeEscrito el 12 Jun 2008 11:43 pm
Uf...
Eso no es moco de pavo.
Tienes dos opciones:
- Ponerte a trabajar en ello, y preguntar aquí las dudas que vayan surgiendo.
- Buscar aplicaciones que ya estén hechas.

No creo que alguien se preste a hacerte el trabajo (gratis)

;)

Suerte.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 12 Jun 2008 11:45 pm
bueno lo que pasa esque ya tngo hecho todo el php el index el registro la autenticacion y todo el problema esque la cuenta queda activada de una vez, y yo necesito alguien que me pudier aayudar con el codigo o de alguna forma para hacer el codigo para que las activaciones d eusuario las pueda hacer yo desde el pc la base de datos o alguna otraforma en evz de que se activen automaticamente.

Por xtatanx

26 de clabLevel



 

artista, web, diseño

msie
Citar            
MensajeEscrito el 13 Jun 2008 03:54 am
veamos.
Sería fácil
Si ya tienes montado el script que:
- Registra el user/pas
- Escribe el user/pass en la SQL
- Valida el user/pass
- Acepta el login de usser/pass
- Difunde el estado "logued" por las páginas según se navega

Si ya tienes eso... slo tienes q hacer una pequeña modificación.

Se me ocurre:
- Que cuando el user se registre, el user/pass se guarden en otra tabla (por ejemplo "temporales")
- De esa manera, cuando se intente logear, no se podrá , pues el user/pass no se encontrarán (no están donde deberían)
- A continuación, tú (el administrador) te pasas por la base de datos, tabla "temporales", y vas pasando los almacenados allí, a la tabla donde deberían.
- Desde ese momento, el user/pass podrá ser usado.

Puedes automatizarlo más, si tu server cuenta con servidor de correo.
En ese caso:
- Cuando el user se registre -> tabla "temporal", un script te manda un mail, avisándote de ello.
- En el mail, va un enlace del tipo: script.php?validar=user -> lo clickas si te interesa validar al usuario.
- El script.php, realiza la siguiente consulta:

Código :

$PASSWORD=mySQL('SELECT passes IN tabla "temporal" WHERE usuario='.$GET['valida']); //selecciona el pass de la "tabla temporal"
$EMAIL=mySQL('SELECT email IN tabla "temporal" WHERE usuario='.$GET['valida']); //selecciona el email de la "tabla temporal"
mySQL('DELETE ROW IN tabla "temporal" WHERE usuario='.$GET['valida']); //borra el user/pass/mail en "tabla temporal"
mySQL('INSERT INTO tabla "definitiva" users='.$GET['valida'].' passes='.$PASSWORD.' email='.$EMAIL); //almacena el user/pass/mail en "tabla definitiva"
mailto('ya estás registrado',$EMAIL);
*Sería cosa tuya, el traducir mi "pseudo-código", a código SQL de verdad, así como el formateo de la función mail()

Suerte.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 13 Jun 2008 03:15 pm
jey amigo voy a hacer un par de pruebas haber si puedio resolverlo gracias por tu ayuda supongo que cualqueir duda podre preguntar no? :lol:

Por xtatanx

26 de clabLevel



 

artista, web, diseño

msie
Citar            
MensajeEscrito el 13 Jun 2008 04:41 pm

Por xtatanx

26 de clabLevel



 

artista, web, diseño

msie
Citar            
MensajeEscrito el 13 Jun 2008 05:01 pm

xtatanx escribió:

[...]supongo que cualqueir duda podre preguntar no? :lol:
Por preguntar... otra cosa, es que te contestemos.
:|


xD
es broma.
Claro.
Aquí nos encontrarás para lo que podamos.
:D

Suerte, y bienvenido.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 13 Jun 2008 05:27 pm
bueno esta e smi priemra duda o segunda? no c :lol:
este es el codigo de mi registro.php:



<?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('lexus.worldispnetwork.com','pulsar_webmaster','straightedge')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('pulsar_login')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function formRegistro(){
?>
<form action="registrar.php" method="post">
Nombre:
<input type="text" name="nombre" size="30" maxlength="40" /><br />
Edad:
<input type="text" name="edad" size="3" maxlength="2" /><br />
Ciudad:
<input type="text" name="ciudad" size="20" maxlength="20" /><br />
Profesion:
<input type="text" name="profesion" size="20" maxlength="15" /><br />
Usuario (max 20):
<input type="text" name="username" size="20" maxlength="20" /><br />
Password (max 10):
<input type="password" name="password" size="10" maxlength="10" />
Confirma: <input type="password" name="password2" size="10" maxlength="10" /><br />
Email (max 40):
<input type="text" name="email" size="20" maxlength="40" /><br />
<input type="submit" value="Registrar" />
</form>
<?php
}
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST["username"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$password2 = $_POST["password2"];
$email = $_POST["email"];
$nombre = $_POST["nombre"];
$edad = $_POST["edad"];
$ciudad = $_POST["ciudad"];
$profesion = $_POST["profesion"];
// Hay campos en blanco
if($username==NULL|$password==NULL|$password2==NULL|$email==NULL|$nombre==NULL|$edad==NULL|$ciudad==NULL|$profesion=NULL) {
echo "un campo está vacio.";
formRegistro();
}else{
// ¿Coinciden las contraseñas?
if($password!=$password2) {
echo "Las contraseñas no coinciden";
formRegistro();
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkuser = mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
$username_exist = mysql_num_rows($checkuser);
$checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);
if ($email_exist>0|$username_exist>0) {
echo "El nombre de usuario o la cuenta de correo estan ya en uso";
formRegistro();
}else{
$query = 'INSERT INTO temporales (usuario, password, email, fecha, nombre, edad, ciudad, profesion)
VALUES (\''.$username.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-m-d").'\',\''.$nombre.'\',\''.$edad.'\',\'' .$ciudad.'\',\''.$profesion.'\')';
mysql_query($query) or die(mysql_error());
echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
echo 'Ahora tendra que esperar la activacion por parte del webmaster, cuando esto ocurra recibira un correo electronico <br />';
//mensaje

$para .= '[email protected]';

// asunto
$asunto = 'Activacion cuenta de usuario(no repsonder a etse mail)';

// mensaje
$mensaje = '
<html>
<head>
<title>Activacion de cuenta</title>
</head>
<body>
<p> Un usuario se ha registrado en la pagina si desea activar su cuenta pulse en el siguiente link. </p>
<p><a href="www.produccionespulsar.com"></a></p>

</body>
</html>
';


// Para enviar correo HTML, la cabecera Content-type debe definirse
$cabeceras = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Cabeceras adicionales
$cabeceras .= 'To: María <[email protected]>, Kelly <[email protected]>' . "\r\n";
$cabeceras .= 'From: Recordatorio de Cumpleaños <[email protected]>' . "\r\n";
$cabeceras .= 'Cc: [email protected]' . "\r\n";
$cabeceras .= 'Bcc: [email protected]' . "\r\n";

// Enviarlo
mail($para, $asunto, $mensaje, $cabeceras);

?>


quisiera saber si hay manera de que en el mensaje o en el asunto o en algun lado pueda aparecer el nombre de la persona que se registro para que asi la persona encargada de activar las cuentas pueda saber quien se registro y active la cuenta?.

Por xtatanx

26 de clabLevel



 

artista, web, diseño

msie
Citar            
MensajeEscrito el 13 Jun 2008 05:47 pm
bueno surgio otro problema, al momento de probar si si manda el correo con el link surgio este problema
Parse error: syntax error, unexpected $end in /var/hsphere/local/home/pulsar/produccionespulsar.com/pruebaphp/registrar.php on line 95
y esta es la linea 95
?>
cabe aclara que es del codigo que mande anteriormente, averigue y decia que dperonto era un
}
que no habia cerrado peor la verdad no lo encuentro no se cual seria :crap:

Por xtatanx

26 de clabLevel



 

artista, web, diseño

msie
Citar            
MensajeEscrito el 13 Jun 2008 09:01 pm

xtatanx escribió:

[...]
mail($para, $asunto, $mensaje, $cabeceras);
[...]
quisiera saber si hay manera de que en el mensaje o en el asunto o en algun lado pueda aparecer el nombre de la persona que se registro para que asi la persona encargada de activar las cuentas pueda saber quien se registro y active la cuenta?.
Claro.
En tu script, haces uso de estas variables, procedentes del registro:
$username = $_POST["username"];
$email = $_POST["email"];
$nombre = $_POST["nombre"];
Sólo tienes que enviar esos valores en el mail.
Cuando escribes el mensaje, envía los valores.
¿no?

En cuanto al error... dice que está implicada la variable "$end".
¿Dónde la defines? ¿Dónde la usas?
Porque no la veo en el código q escribiste...
:S

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 13 Jun 2008 10:35 pm
jey, solucionado lo de el mail, ahora tngo otro problema y es con el mail de activacion, cuanod los usuarios se registran mme llega un mail dicienod que un usuario s eha registrado y que de click en el link para activar su cuenta, al momento de darle click me aparece este error
Warning: Wrong parameter count for mysql() in /var/hsphere/local/home/pulsar/produccionespulsar.com/pruebaphp/activacioncuenta.php on line 10

Warning: Wrong parameter count for mysql() in /var/hsphere/local/home/pulsar/produccionespulsar.com/pruebaphp/activacioncuenta.php on line 11

Warning: Wrong parameter count for mysql() in /var/hsphere/local/home/pulsar/produccionespulsar.com/pruebaphp/activacioncuenta.php on line 12

Warning: Wrong parameter count for mysql() in /var/hsphere/local/home/pulsar/produccionespulsar.com/pruebaphp/activacioncuenta.php on line 13

Fatal error: Call to undefined function: mailto() in /var/hsphere/local/home/pulsar/produccionespulsar.com/pruebaphp/activacioncuenta.php on line 14


el codigo dle script para activar la cuenta es este que me distte hace rato

<?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('lexus.worldispnetwork.com','pulsar_webmaster','straightedge')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('pulsar_login')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function formRegistro(){
?>
<?php
}
$password=mySQL('SELECT passes IN tabla "temporal" WHERE usuario='.$GET['valida']); //selecciona el pass de la "tabla temporal"
$email=mySQL('SELECT email IN tabla "temporal" WHERE usuario='.$GET['valida']); //selecciona el email de la "tabla temporal"
mySQL('DELETE ROW IN tabla "temporal" WHERE usuario='.$GET['valida']); //borra el user/pass/mail en "tabla temporal"
mySQL('INSERT INTO tabla "usuarios" usuario='.$GET['valida'].' password='.$PASSWORD.' email='.$EMAIL); //almacena el user/pass/mail en
mailto('ya estás registrado',$EMAIL);
?>

quisiera saber si el codigo etsa mal porque no entiendo lo del error

Por xtatanx

26 de clabLevel



 

artista, web, diseño

msie
Citar            
MensajeEscrito el 14 Jun 2008 08:23 am

Código :

$PASSWORD=mySQL('SELECT passes IN tabla "temporal" WHERE usuario='.$GET['valida']); //selecciona el pass de la "tabla temporal"
$EMAIL=mySQL('SELECT email IN tabla "temporal" WHERE usuario='.$GET['valida']); //selecciona el email de la "tabla temporal"
mySQL('DELETE ROW IN tabla "temporal" WHERE usuario='.$GET['valida']); //borra el user/pass/mail en "tabla temporal"
mySQL('INSERT INTO tabla "definitiva" users='.$GET['valida'].' passes='.$PASSWORD.' email='.$EMAIL); //almacena el user/pass/mail en "tabla definitiva"
mailto('ya estás registrado',$EMAIL);
*Sería cosa tuya, el traducir mi "pseudo-código", a código SQL de verdad, así como el formateo de la función mail()

¬¬
Te voy a zurrar.
¿¿Has copiado el código que te puse, sin leer la "letra pequeña"??
*Sería cosa tuya, el traducir mi "pseudo-código", a código SQL de verdad, así como el formateo de la función mail()

Un poquito de por-favor...
XD

Para las consutlas SQL, usa la función: mysql_query ( $query ), que llevas usando hasta ahora.
Para enviar los mails, ya has usado antes la buena: mail ( $para , $asunto , $mensaje , $cabeceras )

¿Qué pasó?
Un lapsus?
Exceso de confianza?
:S

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 14 Jun 2008 05:45 pm
yo fui muy claro el principio del terma cuando dije que no sabia nada de php :lol: ajajaja gracias voy a probrar con lo que me dices

Por xtatanx

26 de clabLevel



 

artista, web, diseño

msie
Citar            
MensajeEscrito el 14 Jun 2008 08:25 pm
Bueno me acaba de surgir otro problema, el link de activacion de cuenta llegaa mi mail y cuanod le doy click me manda este error
Parse error: syntax error, unexpected T_VARIABLE in /var/hsphere/local/home/pulsar/produccionespulsar.com/pruebaphp2/activacioncuenta.php on line 11


he trataado y tratado arreglando el codigo como me dijiste, pero aun no c cual sera el problema aca pongo todo el codigo para que lo vean.
<?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('lexus.worldispnetwork.com','pulsar_webmaster','straightedge')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('pulsar_login')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function formRegistro(){
?>
<?php
}
$password=$query=('SELECT passes IN tabla "temporal" WHERE usuario='.$GET['valida'])
$email=$query=('SELECT email IN tabla "temporal" WHERE usuario='.$GET['valida'])
$query=('DELETE ROW IN tabla "temporal" WHERE usuario='.$GET['valida'])
$query=('INSERT INTO tabla "usuarios" usuario='.$GET['valida'].' password='.$password.' email='.$email); {
?>
<?php
}
$para = '$EMAIL';
$asunto = 'activacion de cuenta';
$mensaje = 'Tu cuenta ha sido activada con exito.' ;
$cabeceras = 'From: [email protected]' . "\r\n" .

mail($para, $asunto, $mensaje, $cabeceras);
?>

Por xtatanx

26 de clabLevel



 

artista, web, diseño

msie
Citar            
MensajeEscrito el 14 Jun 2008 11:40 pm
¿esta es la línea 11?

Código :

$email=$query=('SELECT email IN tabla "temporal" WHERE usuario='.$GET['valida']) 

Si es así...
Deberías ser capaz de dar con el error...

De todas maneras, sigues usando el rizoPHP, que no es código PHP

Código :

'SELECT passes IN tabla "temporal" ...
esto es código "rizoBB". Es decir.
Código "inventado" pero que ilustra "sintácticamente" lo que debes hacer.
A tí te toca transformarlo en código SQL y PHP en cada caso.

Te recomiendo revises la documentación oficial sobre mySQL con PHP y sobre el lenguaje SQL.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox

 

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