Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - nmartin021

Páginas: 1 [2]
16
(X)HTML / Mini aporte - Input tipo URL
« en: 30 de Septiembre de 2011, 15:50:19 pm »
Hola! :D
Acabo de llegar de W3Schools, porque estaba viendo los diferentes tipos de input. Me topé con este:
Citar
Input Type - url

The url type is used for input fields that should contain a URL address.

The value of the url field is automatically validated when the form is submitted.
Fuente
Es decir, si no pones una URL válida, no te deja enviar el formulario :P
Prueba (captura propia) :

Y otro más, search, probadlo y veréis que cuando pones algo en el input sale una X azul al lado del input para borrar lo que hay :)

Saludos

17
Preguntas, Ideas y Reclamaciones. / Censura
« en: 26 de Septiembre de 2011, 11:25:17 am »
Hola!  :D

Al responder en un tema, escribí la palabra repito, pero quedó censurada, y no me parece bien que tenga que saltarme la censura para escribir una palabra normal, que NO es spam, ni ningún insulto. Noto que esa palabra queda censurada por otra, pero habría que solucionar el problema de otro modo, no censurando exactamente esa palabra (¿se le podría llamar conflictiva?) y que las demás que contengan esa palabra también queden censuradas:
Palabra censurada: re*****
Palabra con la censura bypasseada: repito

Espero que me entendais,
Saludos

18
JavaScript / [Ayuda] Deshabilitar con confirmación
« en: 05 de Septiembre de 2011, 22:50:09 pm »
Hola! :)

Tengo un pequeño problema... y es que tengo un input (de texto) que está deshabilitado, y necesito que cuando clickee, pida confirmación para deshabilitar... porque hay datos sensibles.

La cuestión es que en el onclick del input pongo sure() y aquí está la función:
Código: [Seleccionar]
function sure(){
if($('#dato').attr('disabled') != 'disabled'){ return true; }
if(confirm('Desbloquear?')){
$('#dato').attr('disabled', '');
}else{
$('#dato').attr('disabled', 'disabled');
}
}
Pero no, ni aparece el confirm, ni cambia nada. Ni siquiera sale ningún error en la consola.. ¿qué estoy haciendo mal?

Gracias, y saludos.

19
Tutoriales PHP / 1 tip al usar el sistema de modulación
« en: 12 de Agosto de 2011, 13:18:27 pm »
El sistema de modulación de naveda, tiene (quizás) una pequeña vulnerabilidad que encontré mientras hacía mi propio sistema...

Este es el código de naveda:

<?PHP
	
if (isset(
$_GET[&#39;id&#39;])) {
	
	
if (!empty(
$_GET[&#39;id&#39;]) && $_GET[&#39;id&#39;] != "index") {
	
	
	
if (
file_exists($_GET[&#39;id&#39;].".php")) {
	
	
	
	
include (
"./".$_GET[&#39;id&#39;].".php");
	
	
	
} else {
	
	
	
	
echo 
"No existe esta seccion";
	
	
	
}
	
	
} else {
	
	
	
include (
"principal.php");
	
	
}
	
} else {
	
	
include (
"principal.php");
	
}
?>

Si os fijáis, comprueba si está el ?id=, luego comprueba que no esté vacío y que no sea index (porque sino se crearía un bucle infinito, el index llama al index, ese hace lo mismo que el anterior, y por eso se crea un bucle infinito) y finalmente comprueba que el archivo existe en el servidor... aquí es donde falla... ¿por qué? porque si en vez de ?id=archivo pongo ../archivo sube un directorio y ¡CHAN! ya puede acceder a aquellos archivos a los que hemos prohibido que se acceda directamente (y justo por eso usamos sistema de modulación). Para solucionar ese detalle, simplemente debemos añadir a esta línea:
Código: [Seleccionar]
<?
if (file_exists($_GET['id'].".php")) {
?>
un preg match, así:

<?
if (
file_exists($_GET[&#39;id&#39;].".php") && preg_match(&#39;/^[a-zA-Z0-9\-_]+$/i&#39;, $_GET[&#39;id&#39;])) {
?>

Te preguntarás, ¿qué hace el preg match? se llama expresión regular, y se usa así:

<?
preg_match(&#39;/aqui tu expresion regular/modificadores&#39;, $dondebuscar);
?>

El mío hace esto:
  • Donde dice [] significa que se admiten solamente los caracteres que están dentro de los corchetes
  • En el primer parámetro, siempre hay que poner esto: '/^$/'... entre el ^ y el $ está la expresión
  • a-zA-Z significa que se admiten solamente letras, sin importar si son mayúsculas o minúsculas
  • 0-9 admite números, hasta ahora tenemos letras y números
  • \- y _ hace que también se admitan guiones y guiones bajos (- y _)
  • Y el + del final, significa que puede ser más de una letra (se puede repetir una o más veces)
  • El segundo parámetro es la variable o string en el que buscar, en este caso, en el GET

En resumen, compruebo que no hay caracteres raros (como por ejemplo una barra / o puntos .., porque poniendo ../ sube un directorio, y ya está fuera de control...)

Así nos aseguramos que solamente se incluirán archivos del directorio actual ;)

PD: Si queréis poner barras, para ingresar así: ?do=categoria/info, simplemente reemplazad el preg match de antes por este:

<?
preg_match(&#39;/^[a-zA-Z0-9\-_\/]+$/i&#39;, $_GET[&#39;id&#39;]);
?>

Le puse \/ al preg match, así admito barras ( / ), pero ¿por qué 2 barras en vez de una?
Porque hay que escapar la barra con otra barra (invertida), para más información, visita wikipedia
Saludos, y espero que os ayude ;)

20
Tutoriales PHP / [Tutorial] Manejar directorios con PHP
« en: 05 de Agosto de 2011, 15:58:23 pm »
FuncionDescripcionSintaxis
opendirAbre un directorio y asigna el identificador a la variable $path$path = dir('/micarpeta/')
readdirCon open se abre, y con read se muestra en pantallareaddir($path)
rmdirElimina un directorio previamente abierto con opendirrmdir($path)
mkdirCrea un directorio, la primera var es para el nombre y la segunda, los permisos (0-777)mkdir($nombre, $permisos)
rewindirSirve para subir un directorio hacia arriba
closedirCierra el directorio abiertoclosedir($path)


Nota: Al usar opendir se crea un objeto $path (o el nombre que le hayas puesto a la variable), que se puede usar así:

echo $path->path(); //muestra el directorio actual de ese objeto
echo $path->read(); //muestra los archivos y/o carpetas que hay, aca lee el directorio
$path->rewind(); //sube un directorio hacia arriba. Ej: si estamos en /mi/carpeta, sube a /mi
$path->close(); //cierra la "conexión" al archivo, es como se cerrases una carpeta en tu SO



Ejemplos creados por mí:

Mostrar directorio:
<?php
$directorio 
opendir(&#39;/&#39;); //mostrar la raíz

echo &#39;<h1>Directorios y archivos</h1>&#39;;
//voy a usar while y readdir(), que mueve el puntero interno para poder recorrer los datos
while($d readdir($directorio)){ //uso el objeto antes creado
    
echo &#39;<a href="/&#39;.$d.&#39;">&#39;.$d.&#39;</a><br>&#39;; //pongo a para que esté linkeado
}
closedir($directorio); //cierro la conexión o carpeta
?>


Borrar directorio:
<?php


$directorio 
opendir(&#39;/&#39;); //mostrar la raíz o carpeta en la que está
if(isset($_GET[&#39;nombre&#39;])){ //si está el nombre a borrar (sólo carpetas)
rmdir($_GET[&#39;nombre&#39;]) or die(&#39;Hubo un error&#39;); //solo borrará si el directorio está vacío
}else{
echo &
#39;<h1>Directorios y archivos</h1>&#39;;
 //voy a usar while y readdir(), que mueve el puntero interno para poder recorrer los datos
 
while($d readdir($directorio)){ //uso el objeto antes creado
 
echo &#39;<a href="/&#39;.$d.&#39;">&#39;.$d.&#39;</a>&#39;.(is_dir($d)) ? &#39;<a href="?nombre=&#39;.$d.&#39;"><span style="color: red; font-weight: bold;">X</span></a>&#39; : &#39;&#39;.&#39;<br>&#39;; //pongo a para que esté linkeado, y para que se pueda borrar
 
}
 
closedir($directorio); //cierro la conexión o carpeta[/size]
}
?>


Para más información, visita este enlace

Me he basado en este artículo

21
JavaScript / [Ayuda] Buscar & reemplazar en <div> con jQuery o Js
« en: 30 de Julio de 2011, 20:44:13 pm »
Hola!

Quiero resaltar las palabras de un div, tengo una tabla metida en un div (necesito que sea así, no una tabla con ID) y abajo tengo un textbox con un boton. En el head meto un script y uso jQuery, uso .click() y document.getElementById('miTexto').value y necesito una función con la que reemplazar el texto de #miTexto (input con id miTexto) y reemplazarlo con "'<div class="highlight">' + (texto de antes) + '</div>'" o si no, agregarle un class con .addClass... sólo que no sé cómo encontrar las palabras que hay que resaltar (agregándoles clases CSS) para entonces usar jQuery (.addClass())

Saludos

22
CSS / [Ayuda]¿Qué significa '!important'?
« en: 30 de Julio de 2011, 16:16:01 pm »
Vi !important en algunos CSS y me gustaría saber lo que es :P

23
Tutoriales PHP / [No acabado]Consejos para tus scripts[EDIT]
« en: 30 de Julio de 2011, 16:11:54 pm »
Hola! :D

Este es mi primer tutorial 8)

Bueno, voy a enseñaros algunos 'trucos' para cuando programéis.

1.- Consejos sobre la utilización de las comillas
No es algo grave, pero vi que mucha gente hace esto:

<?php
$query 
"SELECT * FROM `tabla` WHERE user_id=&#39;$user&#39;";
?>

Eso no se debería hacer, porque las comillas dobles (que aceptan variables) son más lentas. En vez de eso, es mejor hacer así:

<?
$query = &#39;SELECT * FROM `tabla` WHERE user_id=\&#39;&#39;.$user.&#39;\&#39;&#39;;
?>

¿Qué hice? Escapé la primera comilla así: \' luego puse la comilla que separa el texto de la variable, el punto y la variable. Luego, la comilla para unir la variable con el texto y, finalmente, otra comilla escapada. Y luego, otra para mostrar el final. Si no me entendeis, ejecutad este código y veréis cómo queda la consulta:

<?php
$query 
$_GET[&#39;do&#39;];
$sql = &#39;SELECT * FROM `tabla` WHERE user_id=\&#39;&#39;.$query.&#39;\&#39;&#39;;
echo $query;
?>

Entrais al archivo asi: archivo.php?do=aquiUnUsuario... veréis que sale la consulta...

2.- Consejos al usar un editor
Bueno, hay muchos, pero yo personalmente uso Notepad++... si, ya sé que algunos dirán que Dw es mejor, pero no tiene por qué, Notepad++ es mucho más ligero (con más de 10 pestañas ocupa 14MB de RAM.. impresionante) y eso que soporta muchos lenguajes, no sólo los de programación web. Eso si, no tiene previsualización en vivo como Dw, pero usando localhost (xampp, wamp) se puede guardar el archivo (Ctrl + S) y recargar la página; sinceramente creo que no vale la pena gastar tantos recursos (además, mi PC no soporta Dw...) pudiendo usar algo gratuito e igual de bueno (con sus virtudes y sus defectos)
Aunque si haces tu web en el notepad de Windows, luego puedes presumir :P

3.- Usá CSS, es más rápido que las imágenes
Sí, el CSS carga por separado (gracias westwest) y es más ligero que las imágenes, por ende, carga más rápido la página, además de que con CSS es más cómodo y "universal".. con él puedes hacer de todo, desde una simple sombra hasta clonar una web hecha totalmente en Flash.
No, no es ninguna broma, puedes darle un look Flash a tu web con CSS (y Js, está claro), sin consumir tantos recursos (del navegador) así tu web será más ligera para los que tenemos PCs del siglo pasado :D

4.- Organiza tu código
Es muy importante organizar tu código, ya sea usando funciones (es decir, menos código) o usando el espacio suficiente, porque a la larga, haces un script grande y cuando lo acabas, ni te acuerdas de cuál es el primer archivo que hiciste, por no hablar del código. Y si no está bien organizado, te puedes matar buscando algo que tú creaste pero no está organizado.

Te ahorrarás mucho tiempo y esfuerzo, algo muy importante a la hora de pensar (a veces necesitas inventar algún modo de hacer algo y cuando se te ocurre el modo, no encuentras el sitio donde meterlo y se te olvida :( ). Y si lo liberas, imagínate lo que tardarán tus compañeros en sólo entender un archivo...


5.- Comenta tu script
Aunque no lo liberes, es importante que lo comentes... imagínate que el script lo acabas antes de lo que debes y cuando vayas a liberarlo / venderlo y te pidan explicación, probablemente habrás creado otros scripts y de éste ni te acordarás.... Por eso, simplemente añade notas a tus scripts, así te ahorras tiempo explicándole tu script a los demás ya que podrán leer los comentarios

6.- Usa localhost
Por mucho que uses FileZilla o cualquier otro programa de FTP, nunca te será tan fácil previsualizar tu script y hacerlo funcionar... ¿por qué? Porque con un simple 'Ctrl + S' guardas el archivo y recargas la página de localhost... además de que carga más rápido, es más cómodo para cuando no tengas conexión... no hace falta trabajar a "ciegas" (sin poder ver el script funcionando)

7.- No mezcles lenguajes
Es importante que no empieces a maquetar la web y en medio de la maquetación, empezar a crear el sistema, porque nunca te saldrá bien el trabajo. Yo hice un script y me centré en el sistema (PHP y MySQL) y cuando lo acabé, empecé a crear el estilo. Pero hasta entonces, todo era un fondo blanco, y a veces, algún formulario. Nada más.

Te lo digo porque empezar a pensar en Br, div y class y acabar pensando en echo y seguridad para el script sin antes haber acabado el diseño (o al revés) se te puede escapar algún form, o algún input (de registro, por ejemplo) y si justo acabas de publicar tu web así, cualquier kaker que ponga una comilla en tu registro, ya te puede kakear con la ayuda de los miles tutoriales que hay en Internet, por eso, si estás diseñando, acaba el diseño y luego, sigue con el sistema (o viceversa).



Bueno, eso es todo, iré poniendo más cosas según pase el tiempo  8)
PD: Si hay algo que está mal, avisadme D:

24
PHP / ¿A alguien le interesa...?
« en: 24 de Julio de 2011, 03:28:55 am »
Estoy haciendo un script que:
  • Inserta,
  • imprime y
  • borra
los datos de una BD.

Inserta los datos via GET o un formulario, dependiendo de isset($_GET['dato']) :D

Los muestra pidiendo una contraseña que se pone en el config.php :D

Y los borra con una contraseña, igual que como cuando los muestra :P

Le he puesto funciones para comprobar si los datos están puestos para evitar los errores PHP y asi poder poner los mios (que son mucho más faciles de solucionar).

Por ejemplo, si no tienes los datos de la BD puestos, muestra un mensaje de error hecho por mí (este: "<h1>Los datos de la BD no están puestos</h1>") con lo que cualquier usuario normal podría identificar fácilmente el error.

Además le puse un footer que muestra el tiempo de ejecución y la memoria RAM usada (en MB)

Próximamente:
  • Código mejorado, porque seguro que tiene muchos errores :D
  • Algo de estilo, porque no lo tiene  :P

No sé si ponerlo aquí, pero como es PHP :D

PD: Ahora mismo acabaré la versión Alpha para pasar a Beta y sacaré unas caps :D

25
(X)HTML / [AYUDA] "Unir" varios <li>
« en: 19 de Julio de 2011, 11:49:38 am »
Hola!

Bueno, no se si es exactamente "unir", pero bueno  :P

Tengo un <ul> y en el tengo 4 <li> "escondidos". Cuando paso el ratón por encima de <ul>, aparecen esos <li>, paso el mouse por encima de ellos y, al sacar el mouse, no se cierran si no paso el ratón por encima (de nuevo) por <ul>. Es la función Js, que comprueba si está o no abierto el <ul> (si se ven o no los <li>) y, si está cerrado lo abre y viceversa. Lo que pasa es que quiero que al sacar el raton de los <li> también se cierre.

He probado todo esto:
  • Encerrar el <ul> en un <span> y poner el onmouseout en el <span> con la función Js, pero no funciona como debe (pasas el mouse por encima del primer <li> y todo bien. Pasas el mouse cualquiera de los siguientes <li> y se cierra ._.
  • Poner el onmouseout en el propio <ul>. Pero no funciona.

Por eso, busco alguna manera de "unir" esos <li> y que un onmouseout funcione para todos, como si fuera un sólo elemento.

O en su defecto, otro modo de solucionar el problema.

Saludos.

26
JavaScript / [AYUDA] Mensaje de advertencia
« en: 19 de Julio de 2011, 02:29:03 am »
Hola!

Necesito saber la manera de mostrar una advertencia que sea como si fuera un alert, solo que cubriendo la página entera. Pondré un botón, "cerrar". Lo pienso poner en mi web para dar la bienvenida.

Nota: no quiero códigos listos, lo que quiero es aprender a crear el mensaje sin códigos hechos.

Gracias y saludos.

27
PHP / [AYUDA] Mensaje de advertencia
« en: 19 de Julio de 2011, 02:17:07 am »
Hola!

Necesito saber la manera de mostrar una advertencia que sea como si fuera un alert, solo que cubriendo la página entera. Pondré un botón, "cerrar". Lo pienso poner en mi web para dar la bienvenida.

No sé si esto lo tendré que hacer con Js o con PHP, lo puse aquí aunque la verdad es que me sería mas cómodo hacerlo con Js.

Nota: no quiero códigos listos, lo que quiero es aprender a crear el mensaje sin códigos hechos.

Gracias y saludos.

28
PHP / ¿Cómo se llama & utliza esta función?
« en: 18 de Julio de 2011, 05:17:46 am »
Código: [Seleccionar]
<?php $var = ($_GET[&#39;id&#39;] == "123") ? si : no; ?>
¿Cómo se llama? ¿La estoy usando bien?

Explico lo que entiendo:

Almacenar en la variable $var condición -> archivo.php?id=loquesea. Si es true, se almacenará si en $var y si no, se almacenará no. ¿Está bien? ¿Alguna sugerencia?

Saludos :D

29
CSS / Imágenes con CSS que no funcionan como deben
« en: 15 de Julio de 2011, 18:16:25 pm »
Hola!

Este es mi primer tema en phperos :B

Bueno, tengo una imágen (link: http://i.imgur.com/W5G8U.png). Lo que intento es usar la X pero no hay manera, siempre sale el Tick???

Probé esto:

CSS:
Código: [Seleccionar]
#icon{
background:
url(icons.png)
no-repeat;
width: 300px;
height: 300px;
}
#icon .tick{
background-position: 0 0;
}
#icon .cross{
background-position: 0 -310px;
}

HTML:
Código: [Seleccionar]
<div id="icon"><div class="cross"></div></div>


También probé esto (según la explicación de westwest) :
CSS
Código: [Seleccionar]
span.icon{
background:
url(icons.png)
no-repeat;
width: 300px;
height: 300px;
}
.icon tick{
background-position: 0 0;
}
.icon cross{
background-position: 0 -310px;
}

HTML:
Código: [Seleccionar]
<span class="icon cross"></span>

Y no hay manera :/
Siempre sale el tick y no el cross ._.

Lo he probado en localhost (con XAMPP), lo he probado en un host gratuito (byet), y no hay manera de hacer que salga el cross en vez del tick.
¿Alguna sugerencia?

PD: Uso Firefox 5 para ver la página; pongo el estilo (<style type="text/css"></style>) en <head> y el HTML (<div></div>) en <body>.
PD2: No se cómo quitar la encuesta :/

Páginas: 1 [2]