Foros del Web » Programando para Internet » PHP »

Cómo hacer una comprobación de código sin que el usuario vea el código

Estas en el tema de Cómo hacer una comprobación de código sin que el usuario vea el código en el foro de PHP en Foros del Web. En mi web para que los usuarios me ayuden aportando contenido, quiero hacer que para entrar en la zona de descargas tengan que poner un ...
  #1 (permalink)  
Antiguo 28/07/2010, 03:22
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 3 meses
Puntos: 1
Cómo hacer una comprobación de código sin que el usuario vea el código

En mi web para que los usuarios me ayuden aportando contenido, quiero hacer que para entrar en la zona de descargas tengan que poner un código para poder entrar. Para conseguir el código hay que aportar contenido, todo eso ya lo tengo preparado.

Mi duda es, ¿cómo puedo hacer que al escribir el código en un campo y pulsar el botón entrar, si el código es correcto, accedan a la zona de descargas?


Saludos y gracias
  #2 (permalink)  
Antiguo 28/07/2010, 03:43
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Eso yo lo tengo implementado en la pagina a la cual haces el submit. Le pasas por un campo hidden el codigo. Luego en la pagina a la cual haces el submit comparas los 2 campos, si son iguales todo bien y continua, si no son iguales haz un header que redireccione la pagina.

Espero que sea lo que necesitas.
  #3 (permalink)  
Antiguo 28/07/2010, 04:18
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Gracias por la ayuda ^^, pero nunca he programado en PHP, me he leido algunos manuales pero nunca he tenido tiempo de ponerme a practicar. Asi que de PHP no entiendo mucho.

Explicame como elaborar el codigo porfavor.

Gracias y saludos
  #4 (permalink)  
Antiguo 28/07/2010, 04:43
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Este es el código que genera una cadena de 7 caracteres aleatoriamente:
Código PHP:
//To Pull 7 Unique Random Values Out Of AlphaNumeric

//removed number 0, capital o, number 1 and small L
//Total: keys = 32, elements = 33
$characters = array(
"A","B","C","D","E","F","G","H","J","K","L","M",
"N","P","Q","R","S","T","U","V","W","X","Y","Z",
"1","2","3","4","5","6","7","8","9");

//make an "empty container" or array for our keys
$keys = array();

//first count of $keys is empty so "1", remaining count is 1-6 = total 7 times
while(count($keys) < 7) {
    
//"0" because we use this to FIND ARRAY KEYS which has a 0 value
    //"-1" because were only concerned of number of keys which is 32 not 33
    //count($characters) = 33
    
$x mt_rand(0count($characters)-1);
    if(!
in_array($x$keys)) {
       
$keys[] = $x;
    }
}

foreach(
$keys as $key){
   
$random_chars .= $characters[$key];
}
echo 
$random_chars
Ahora lo que tendrias que hacer seria poner un input de texto, y un campo hidden con el valor que has creado, y passarlo a la pagina que quieras con el submit.
  #5 (permalink)  
Antiguo 28/07/2010, 14:24
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Sigo sin saber cómo hacerlo, soy novato esta es la primera web que hago desde cero.

No se cómo poner el hidden:

Código:
<form action="/php/codigo.php">
<input name="codigo" type="text" />
<input name="entrar" value="Entrar" type="submit" />
</form>
Gracias y saludos
  #6 (permalink)  
Antiguo 28/07/2010, 14:35
Avatar de kalebra  
Fecha de Ingreso: mayo-2010
Ubicación: Marbella
Mensajes: 44
Antigüedad: 13 años, 11 meses
Puntos: 5
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Buenas, en el input pones type="hidden"

Ejemplo:
Código HTML:
<input name="name" type="hidden" value=""> 
Espero que te sirva como aclaramiento.

Saludos
  #7 (permalink)  
Antiguo 28/07/2010, 17:31
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Por seguridad no deberias poner el codigo en un campo oculto, es demasiado facil ver el codigo fuente y probar. Mejor usa variables de sesion.

Manual de sesiones PHP
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 29/07/2010, 02:32
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

¿Cómo tendría que colocarlo todo? (Soy novato es mi primera web)
  #9 (permalink)  
Antiguo 29/07/2010, 02:38
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

en el parametro value:

Código PHP:
<input name="name" type="hidden" value="<? echo $random_chars?>">
  #10 (permalink)  
Antiguo 29/07/2010, 03:10
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Cita:
Iniciado por Vallu Ver Mensaje
Este es el código que genera una cadena de 7 caracteres aleatoriamente:
Código PHP:
//To Pull 7 Unique Random Values Out Of AlphaNumeric

//removed number 0, capital o, number 1 and small L
//Total: keys = 32, elements = 33
$characters = array(
"A","B","C","D","E","F","G","H","J","K","L","M",
"N","P","Q","R","S","T","U","V","W","X","Y","Z",
"1","2","3","4","5","6","7","8","9");

//make an "empty container" or array for our keys
$keys = array();

//first count of $keys is empty so "1", remaining count is 1-6 = total 7 times
while(count($keys) < 7) {
    
//"0" because we use this to FIND ARRAY KEYS which has a 0 value
    //"-1" because were only concerned of number of keys which is 32 not 33
    //count($characters) = 33
    
$x mt_rand(0count($characters)-1);
    if(!
in_array($x$keys)) {
       
$keys[] = $x;
    }
}

foreach(
$keys as $key){
   
$random_chars .= $characters[$key];
}
echo 
$random_chars
Pero yo no quiero un código aleatorio, yo lo que quiero es un código fijo, como si fuera una contraseña en la que no hiciera falta un nombre de usuario para entrar.
  #11 (permalink)  
Antiguo 29/07/2010, 03:19
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Pues entonces pon en el valor del hidden tu contraseña o lo que quieras que sea el "validador" para dejar entrar al usuario.

Solo recordarte que como ha dicho Triby si quieres seguridad mejor usas sessiones.
  #12 (permalink)  
Antiguo 29/07/2010, 03:35
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 8 meses
Puntos: 165
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Yo no usaría sesiones...

Yo usaría una base de datos, con una tabla que se llame por ejemplo codes, y esta tabla podría tener la estructura:

code zone
25asd descargas

Después haría un formulario que al enviar procese el código insertado y si este código existe en la bbdd pues llevas al usuario a la zona correspondiente, por ejemplo código 25asd a la zona descargas.

De esta manera podrás usar el código para otras secciones o podrás administrar de manera más cómoda el tema de los códigos, podrías ampliarlo con una fecha de validez o caducidad para los códigos, etc etc

Un saludo y espero haberte ayudado!!
  #13 (permalink)  
Antiguo 29/07/2010, 03:44
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

+1
Es una buena forma de hacerlo. Un tanto liosa, per funcionaria
  #14 (permalink)  
Antiguo 29/07/2010, 03:46
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Cita:
Iniciado por miktrv Ver Mensaje
Yo no usaría sesiones...

Yo usaría una base de datos, con una tabla que se llame por ejemplo codes, y esta tabla podría tener la estructura:

code zone
25asd descargas

Después haría un formulario que al enviar procese el código insertado y si este código existe en la bbdd pues llevas al usuario a la zona correspondiente, por ejemplo código 25asd a la zona descargas.

De esta manera podrás usar el código para otras secciones o podrás administrar de manera más cómoda el tema de los códigos, podrías ampliarlo con una fecha de validez o caducidad para los códigos, etc etc

Un saludo y espero haberte ayudado!!
Me gustaría hacerlo así, pero no se como hacer el formulario.

Primero voy ha hacerlo en HTML para practicar, después antes de subir la web intentaré hacerlo de esa forma.


¿Cómo hago para que redireccione cuando compare el código?:

Código HTML:
<input name="codigo" type="text" /><input
 name="name" value="123" type="hidden" /><input
 name="entrar" value="Entrar" type="submit" /> 
Gracias a todos por la ayuda

Última edición por javi1995iv; 29/07/2010 a las 04:12
  #15 (permalink)  
Antiguo 29/07/2010, 03:50
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

una forma es con header:

Código PHP:
<?php
header
("Location: http://www.tuweb.com"); exit;
?>
+info: http://php.net/manual/es/function.header.php
  #16 (permalink)  
Antiguo 29/07/2010, 04:32
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 8 meses
Puntos: 165
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Hola buenas de nuevo,

Mira, sigue los siguientes pasos:

1. Crear tabla -> Insertar dos códigos de prueba

2. Crear archivo que contiene form ->

Código PHP:
<form name="code-form" action="validate-code.php" method="POST" >
Inserta c&#243;digo: <input type="text" name="code">
</form
3.Crear validate-code.php

Código PHP:
<?php
$code
-true false;
$url 'archivo en caso de que el code no exista';
//conectas con tu base de datos
//Haces la consulta sql
$sql 'Select count('code-id') From table-codes';
//ejecutas la consulta, si esta devuelve 1 entonces haces un select del campo action, y entonces esto devuelve por ejemplo.. descargas, tambien haces $code-true = true;

if($code-true) {

//haces un switch de acciones o por ejemplo creas otra tabla de acciones posibles con la estructura: action-id , action-name, action-file y meterías 1 , descargas, descargas.php

tambi&#233;n puedes hacer un switch si las secciones van a ser fijas, por ejemplo


switch($row['action']) {
 
 case 
'descargas' $url 'descargas.php';

...

}

header("location: $url");


?>
Revisa el código que lo he hecho de memoría, es sólo para que te hagas la idea.

Un saludo!

Última edición por miktrv; 29/07/2010 a las 04:52 Razón: se me olvido el if!!
  #17 (permalink)  
Antiguo 29/07/2010, 06:29
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Muchas gracias a todos ^^

Ya he podido hacerlo :D

Saludos
  #18 (permalink)  
Antiguo 29/07/2010, 08:09
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 8 meses
Puntos: 165
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Hola buenas,

Has utilizado al final bbdd?

Otra idea que se me ocurre si no quieres usar bbdd es hace un array de codigos, por ejemplo:

$codes = array('asds','okopg','32qe');
$code = $_POST['code'];

if(in_array())...

Un saludo!
  #19 (permalink)  
Antiguo 29/07/2010, 10:02
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Dónde tengo que poner el array de códigos?
  #20 (permalink)  
Antiguo 29/07/2010, 11:30
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 8 meses
Puntos: 165
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Pues en la página que procesa los códigos, como la que te expliqué de.. validate-code.php

Le pones un array a mano con los códigos que serán válidos y simplemente buscará el que el user envía en el form dentro de ese array, si no lo encuentra, como ya tendrás definida la url de destino lo enviarás a donde quieras.

De todas formas si vas a usar muchos códigos y diferentes acciones es más aconsejables el sistema de bbdd y que te crees un cpanel.

Un saludo!!
  #21 (permalink)  
Antiguo 29/07/2010, 13:56
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

No me funciona.

He puesto:

validate-code.php
Código PHP:
<?php
$code
-true false;
$url '../errorcodigo.html';

$codes = array('1234','okopg','32qe');
$code $_POST['code'];

if(
in_array())...
//ejecutas la consulta, si esta devuelve 1 entonces haces un select del campo action, y entonces esto devuelve por ejemplo.. descargas, tambien haces $code-true = true;

if($code-true) {

//haces un switch de acciones o por ejemplo creas otra tabla de acciones posibles con la estructura: action-id , action-name, action-file y meterías 1 , descargas, descargas.php

tambi&#233;n puedes hacer un switch si las secciones van a ser fijas, por ejemplo


switch($row['action']) {
 
 case 
'descargas1325723' $url '../descargas1325723.html';

...

}

header("location: $url");


?>

descargas.html (junto al resto del código de la página)
Código HTML:
<form name="code-form" action="php/validate-code.php"
 method="post">
&nbsp;<input name="code" type="text" />
</form> 

Al escribir un código en descargas.html me lleva a validate-code.php y ya no pasa a la siguiente.

No sé en que parte de validate-code está el fallo.
  #22 (permalink)  
Antiguo 29/07/2010, 14:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Cita:
Iniciado por javi1995iv Ver Mensaje
No me funciona.

He puesto:

validate-code.php [...]
No sé en que parte de validate-code está el fallo.
¿el código que pusiste en el foro es el mismo del script??

porque esta repleto de errores...

¿acaso lo copiaste y pegaste sin entender lo que hace??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #23 (permalink)  
Antiguo 29/07/2010, 14:27
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Sí, es el mismo del script.

No entiendo casi nada de PHP, hoy ha sido la primera vez que he intentado hacer algo con PHP, me he leido algunos manuales pero todavía no he tenido tiempo de practicar.

Ayudame con el script porfavor.
  #24 (permalink)  
Antiguo 29/07/2010, 14:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Cita:
Iniciado por javi1995iv Ver Mensaje
Sí, es el mismo del script.

No entiendo casi nada de PHP, hoy ha sido la primera vez que he intentado hacer algo con PHP, me he leido algunos manuales pero todavía no he tenido tiempo de practicar.

Ayudame con el script porfavor.
lo siento... pero ese es tu trabajo, si no tienes tiempo y aunque leas los manuales no podemos hacer nada por ti... que claro, para eso esta el foro de ofertas de empleo...

pero, en este foro se trata de ayudar con problemas de programación... y si sabes poco o nada estaría mal que alguien te haga el código... porque simplemente no lo vas a entender, y se trata de que si te gusta PHP lo aprendas...

si yo quiero aprender a hacer pizzas, y pido que alguien me la haga.... pues, ¿como voy a entender? ¿no el mejor maestro es la prueba y error??

eso, por favor busca un manual y comienza a leer, en este foro hay Wiki y FAQ's así que por lo básico no esperes... avanza!!

y sobre todo practica... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #25 (permalink)  
Antiguo 31/07/2010, 11:00
 
Fecha de Ingreso: diciembre-2009
Mensajes: 27
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cómo hacer una comprobación de código sin que el usuario vea el código

Voy a ponerme a leer manuales de PHP.

Gracias a todos.

Etiquetas: vea, usuarios
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 17:36.