Retroceder   Foros del Web > Programación para sitios web > PHP

Respuesta
 
Herramientas Desplegado
Antiguo 21-abr-2003, 18:44   #61 (permalink)
chikit-sv está en el buen camino
 
Fecha de Ingreso: abril-2003
Ubicación: El Salvador
Mensajes: 8
Pregunta

Como registro la Direccion IP, de las Pcs que ingresan a mi sitio Web....

Utilizamos la variable $REMOTE_ADDR en nuestro scripts, la cual recupera la Direccion IP de la computadora que esta ingresando a nuestro sitio Web y luego hacemos con ella lo que se nos venga en gana, podemos grabarla en un registro de nuestra base de datos para llevar un control de quienes y de donde nos visitan o como una forma de llevar auditoria en el acceso a una base de datos.
chikit-sv está desconectado   Responder Citando
Antiguo 30-abr-2003, 19:02   #62 (permalink)
Manoloweb ha deshabilitado el karma
 
Avatar de Manoloweb
 
Fecha de Ingreso: noviembre-2002
Ubicación: Monterrey
Mensajes: 2.462
Esta podría haber estado al principio...

¿Como saber cuando algo es javascript y cuando es PHP?

Javascript trabaja en el lado del cliente, es decir, en el navegador del visitante a la página. Por lo tanto, todas las acciones que afecten la forma en que el navegador muestra la información, sucede gracias a javascript (o similares). Igualmente con aquellas acciones que van cambiando el contenido de la pagina SIN QUE ESTA SEA RECARGADA. Algunos ejemplos:

-Full Screen, o ventanas sin menus
-Relojes que muestran la hora de tu PC
-Menues que van cambiando de acuerdo a cierta seleccion, sin que la pagina sea recargada
-Roll-Overs (imagenes que cambian al pasar encima)
-Mensajes de alerta
-Cuadros de pregunta (aceptar/cancelar)
-Pop-ups (Abrir otras ventanas de explorador)
-Interactuar con dispositivos (imprimir, etc)
-Etc...

Saludos!
__________________
Manoloweb
[XML-Webservices-C#-PHP-CSS-DOM-JQuery]
Manoloweb está desconectado   Responder Citando
Antiguo 20-may-2003, 18:01   #63 (permalink)
BVis está en el buen camino
 
Avatar de BVis
 
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Ordenar un array BIDIMENSIONAL por uno o varios campos (columnas).

Con esta función se puede ordenar un array BIDIMENSIONAL por uno o varios campos (columnas), tanto ascendentemente como descendentemente.

La forma de llamarla es:

Código PHP:
$array_ordenado ordenar_array($array_a_ordenarprimer_campo_por_el_que_ordenarasc_desc [,siguiente_campo_por_el_que_ordenarasc_desc]*) ; 
Donde $array_a_ordenar tiene la siguiente escructura:
Código PHP:
$array_a_ordenar[0]['nombre']='Ester Colero';
$array_a_ordenar[0]['telefono']='94727834';
$array_a_ordenar[0]['edad']=20;
$array_a_ordenar[0]['vivo']=true;

$array_a_ordenar[1]['nombre']='Pancho Colate';
$array_a_ordenar[1]['telefono']='93524864';
$array_a_ordenar[1]['edad']=24;
$array_a_ordenar[0]['vivo']=false
los campos se deben corresponder a alguna columna, [en el ejemplo: 'nombre', 'telefono', 'edad' y/o 'vivo'].
Así pues este caso, habría 4 posibles columnas por las que ordenar.

asc_desc puede valer o bien: SORT_ASC o bien SORT_DESC ¡SIN COMILLAS! pues son valores constantes.

La función devolverá FALSE en caso de que los parámetros no sean correctos. En caso contrario, obtendremos el array de entrada ordenadito, por tantos campos le hayamos indicado.

Código PHP:
function ordenar_array() {
  
$n_parametros func_num_args(); // Obenemos el número de parámetros
  
if ($n_parametros<|| $n_parametros%2!=1) { // Si tenemos el número de parametro mal...
    
return false;
  } else { 
// Hasta aquí todo correcto...veamos si los parámetros tienen lo que debe ser...
    
$arg_list func_get_args();

    if (!(
is_array($arg_list[0]) && is_array(current($arg_list[0])))) {
      return 
false// Si el primero no es un array...MALO!
    
}
    for (
$i 1$i<$n_parametros$i++) { // Miramos que el resto de parámetros tb estén bien...
      
if ($i%2!=0) {// Parámetro impar...tiene que ser un campo del array...
        
if (!array_key_exists($arg_list[$i], current($arg_list[0]))) {
          return 
false;
        }
      } else { 
// Par, no falla...si no es SORT_ASC o SORT_DESC...a la calle!
        
if ($arg_list[$i]!=SORT_ASC && $arg_list[$i]!=SORT_DESC) {
          return 
false;
        }
      }
    }
    
$array_salida $arg_list[0];

    
// Una vez los parámetros se que están bien, procederé a ordenar...
    
$a_evaluar "foreach (\$array_salida as \$fila){\n";
    for (
$i=1$i<$n_parametros$i+=2) { // Ahora por cada columna...
      
$a_evaluar .= "  \$campo{$i}[] = \$fila['$arg_list[$i]'];\n";
    }
    
$a_evaluar .= "}\n";
    
$a_evaluar .= "array_multisort(\n";
    for (
$i=1$i<$n_parametros$i+=2) { // Ahora por cada elemento...
      
$a_evaluar .= "  \$campo{$i}, SORT_REGULAR, \$arg_list[".($i+1)."],\n";
    }
    
$a_evaluar .= "  \$array_salida);";
    
// La verdad es que es más complicado de lo que creía en principio... :)

    
eval($a_evaluar);
    return 
$array_salida;
  }
}

// EJEMPLO DE USO:

// Otra manera de declarar un array bidimensional de estos...
$array_a_ordenar = array(
                 
=> array('campo1' => 'patatas''campo2' => 1'campo3' => 'kkkk'),
                 
=> array('campo1' => 'coles''campo2' => 3'campo3' => 'aaaa'),
                 
=> array('campo1' => 'tomates''campo2' => 1'campo3' => 'zzzz'),
                 
=> array('campo1' => 'peras''campo2' => 7'campo3' => 'hhhh'),
                 
=> array('campo1' => 'tomates''campo2' => 4'campo3' => 'bbbb'),
                 
=> array('campo1' => 'aguacates''campo2' => 3'campo3' => 'yyyy'),
         );

$array_ordenadito ordenar_array($array_a_ordenar'campo2'SORT_DESC'campo1'SORT_DESC) or die('<br>ERROR!<br>');

$array_ordenadito2 ordenar_array($array_a_ordenar'campo3'SORT_DESC'campo2'SORT_DESC'campo1'SORT_ASC ) or die('<br>ERROR!<br>'); 
Un saludo.
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates
BVis está desconectado   Responder Citando
Antiguo 25-may-2003, 05:29   #64 (permalink)
Colaborador
lical está en el buen camino
 
Avatar de lical
 
Fecha de Ingreso: noviembre-2002
Ubicación: $PWD
Mensajes: 1.267
Tenía que resolver una necesidad que supongo que tienen muchas otras personas. Es, que los usuarios teclean texto que puede contener URLs, y estas URLs deben ser convertidas a enlaces. Otras condiciones eran que:

-La URL introducida podía después tener un intro, un tabulador, un espacio, o un paréntesis.

-Si la URL introducida pertenecía a un dominio externo al de la web en cuestión, éste debía abrirse en una nueva ventana, y si era una URL interna debía abrirse en la ventana actual.


Lo he resuelto así:
Código PHP:
<?php
  $texto 
str_replace("\r"""$texto);

  
$texto preg_replace("/(http:\/\/[^(\)|[:space:])]*)\)/",
    
"<a href=\"\\1\" target=\"_blank\">\\1</a>)",
    
$texto);

  
$texto preg_replace("/(http:\/\/[^([:space:]|\"|\<)]*)[[:space:]]/",
    
"<a href=\"\\1\" target=\"_blank\">\\1</a> ",
    
$texto);

  
$texto preg_replace("/\<a href=\"(.*zonasiete.*)\" target=\"_blank\"\>/",
    
"<a href=\"\\1\">",
    
$texto);

?>
En este caso, el dominio local es zonasiete.org. Espero que a alguien le sea útil. Por alguna extraña razón, no se muestra bien en mi post el code. Aclaraciones:

< ) -- ahí no hay un espacio, esos dos caracteres van seguidos.

\1 -- Todos los unos (1) van precedidos de doble barra invertida, aunque solo se muestra una.


Un saludo,
__________________
lical-> Usuario registrado de Linux #254225

ZonaSiete.ORG - GNU/Linux eminentemente práctico
lical está desconectado   Responder Citando
Antiguo 25-may-2003, 20:17   #65 (permalink)
Moderador
Cluster llegará a ser famoso muy prontoCluster llegará a ser famoso muy pronto
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago - Chile
Mensajes: 34.437
Mensaje

Tema: Seguridad

Créditos: Shaun Clowes (traducción Di Biase Jos‚ Luis). Aportado por mveraa

Artículo sobre seguridad bajo PHP.

Trata los siguientes temas:

1. Introducción
2. Caveats y Alcance
3. Variables Globales
4. Archivos Remotos
5. Upload de Archivo
6. Librer¡as
7. Sesiones
8. Array asociativos y otros
9. Funciones que hay que utilizar con cuidado
10. Protegiendose
11. Responsabilidad - Lenaguaje vs Programador
12. Otros

Formato .doc (MS Word) comprimido a .zip
Archivos Adjuntos
Tipo de Archivo: zip vulnerabilidades_php.zip (16,9 KB (Kilobytes), 1645 visitas)
Cluster está desconectado   Responder Citando
Antiguo 03-jun-2003, 21:59   #66 (permalink)
drcyber está en el buen camino
 
Avatar de drcyber
 
Fecha de Ingreso: noviembre-2002
Mensajes: 829
¿Cómo hacer un extractor de e-mails?

Pues muy fácil...

En un textbox metemos la cadena de texto que queremos procesar y el script automáticamente extrae cualquier e-mail encontrado. Muy últil !!!

Código PHP:
<?php
//Verificamos si se introdujo alguna cadena
if (!isset($cadena)) {
    echo 
"Debe introducir una cadena de texto.";
} else {
   
stripslashes($cadena);

$regexp_email '[_a-z0-9\-]+(\.[_a-z0-9\-]+)*\@[_a-z0-9\-]+(\.[a-z]{1,4})+';
//Extraemos los e-mails que concuerden con la expresión regular
$encontrado preg_match_all ("/$regexp_email/i"$cadena$emparejadosPREG_SET_ORDER);
//Si se encuentra, no los muestra cada uno en una lista
    
if ($encontrado) {
        foreach (
$emparejados AS $i => $contenidoParentesis) {
            
printf ('Emparejamiento %d = <span class="emparejamiento">%s</span>' .
                
"<br />\n"$i$contenidoParentesis[0]);
        }
    } else {
        echo 
"No se encontró nada";
    }
}

echo <<< HTML

<html>
<head>
<title>Extractor de e-mails</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="post" action="">
  <textarea name="cadena" cols="120" rows="30"></textarea>
  <input type="submit" name="Submit" value="Procesar">
</form>
</body>
</html>

HTML;

?>
Eso es todo, insertar el texto y sacar e-mails.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
drcyber está desconectado   Responder Citando
Antiguo 12-jun-2003, 01:38   #67 (permalink)
Moderador
Cluster llegará a ser famoso muy prontoCluster llegará a ser famoso muy pronto
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago - Chile
Mensajes: 34.437
Tema: Algoritmos/utilidades

Pregunta: ¿Cómo generar passwords aleatórios numéricos o alfanuméricos de longitud variable?

Respuesta:

Usando expresiones regulares y time() se pueden obtener dichos passwords aleatorios de una forma muy curiosa (por lo menos para mí xD). En el código se detalla como usa la función:

Código PHP:
<?php

// Uso/sintax:
// genera_password (longitud password en caracteres o digitos, [tipo=alfanumerico|numerico])
// Si no indicas $tipo se asume como por defecto alfanumerico.

function genera_password($longitud,$tipo="alfanumerico"){

    if (
$tipo=="alfanumerico"){
        
$exp_reg="[^A-Z0-9]";
    } elseif (
$tipo=="numerico"){
        
$exp_reg="[^0-9]";
    }
    
    return 
substr(eregi_replace($exp_reg""md5(rand())) .
       
eregi_replace($exp_reg""md5(rand())) .
       
eregi_replace($exp_reg""md5(rand())),
       
0$longitud);
}

//Ejemplo:
echo "Password: (alfanumérico) ".genera_password(8)."<br>";
echo 
"Password: (numérico) ".genera_password(15,"numerico")."<br>";
echo 
"(recarga la página para ver otros passwords aleatorios)";

?>
Un saludo,

pd: La forma de usar las expresiones regulares no la implementé yo .. Tan sólo lo adapté para funcionar como "función". No recuerdo de donde la saqué.
pd2: Mejora al la generación del código aleatório, por problemas si se ejecutaba dicha función en bucles bajo una ejecución de un mismo script. Se comentó el tema en este mensaje: Generar muchos passwords . Gracias a Jpinedo.

Última edición por Cluster; 06-nov-2004 a las 14:30.
Cluster está desconectado   Responder Citando
Antiguo 15-jun-2003, 19:33   #68 (permalink)
ProgramacionWeb está en el buen camino
 
Avatar de ProgramacionWeb
 
Fecha de Ingreso: junio-2003
Ubicación: Barcelona
Mensajes: 176
Pregunta: ¿Como usar la funcion header() en cualquier parte de nuestro código incluso después de un echo?

Respuesta:
Pon antes de enviar ningín caracter ( donde pondrias un header() o una cookie ) el siguiente codigo:

Código PHP:
<?
ob_start
();
?>
Y al final de todo de tu pagina pon:

Código PHP:
<?
ob_end_flush
();
?>
__________________
Foros en los que participo:

Última edición por ProgramacionWeb; 16-jun-2003 a las 20:24.
ProgramacionWeb está desconectado   Responder Citando
Antiguo 15-jun-2003, 19:50   #69 (permalink)
Colaborador
lado2mx tiene algunos puntos positivos de karma
 
Avatar de lado2mx
 
Fecha de Ingreso: noviembre-2002
Ubicación: Veracruz
Mensajes: 3.720
Enviar un mensaje por MSN a lado2mx
Pregunta: ¿Como puedo crear una interfase (o librería) de mi página en solo un archivo PHP?

Fuente: http://www.webestilo.com/php/php05b.phtml
Respuesta: Las funciones que tiene PHP, sirven para poner mas énfasis en lo que es la interacción de archivos, pero en realidad se puede jugar con ello de una manera sencilla.

Para usar una interfase estática, donde todo se pueda modificar mediante un archivo, es sencillo.

Un ejemplo sencillo es este:

Crea un archivo llamado interfase.php y pon lo siguiente:
Código PHP:
<?php 
   
function CabeceraPagina() 
   { 
?> <html> 
<head> 
   <title>Ejemplo de PHP</title> 
</head> 
<body>
   <FONT SIZE="+1">Esta cabecera estará en todas sus páginas.</FONT><BR> 
   <hr> 
<? 
   

    
   function 
PiePagina() 
   { 
?>    
   <hr> 
   <FONT SIZE="-1">Este es el pie de página.</FONT><BR> </body> 
</html>
<?    
   

?>
Ahora, crea un archivo llamado pagina.php, donde ahí se plasmará todo lo que está, tanto en pagina.php como en interfase.php:

Código PHP:
<?php include("interfase.php"?> 
<?php CabeceraPagina(); ?> 

Página 1 
<BR><BR><BR><BR><BR> 

Contenido blalbl blalb alb<BR><BR> 
más cosas...<BR><BR> 

fin<BR><BR> 

<?php PiePagina(); ?>
Estos pueden ser 100% ejecutables en Dreamweaver 4 en adelante, así que puedes experimentar con esto, para sacarle mas provecho, y con ello realizar un diseño uniforme y profesional a tu página.

Ademas, se puede poner tanto HTML como PHP, tales como conexiones a base de datos, ciclos, mas funciones, etc.

Última edición por lado2mx; 16-jun-2003 a las 10:27.
lado2mx está desconectado   Responder Citando
Antiguo 16-jun-2003, 21:25   #70 (permalink)
ProgramacionWeb está en el buen camino
 
Avatar de ProgramacionWeb
 
Fecha de Ingreso: junio-2003
Ubicación: Barcelona
Mensajes: 176
Pregunta: ¿Como puedo poner el peso de la pagina?

Respuesta: Pon el siguiente código al principio de tu web.

Código PHP:
<?
ob_start
();
?>
Y este al final de tu web:

Código PHP:
<?
$despues 
212// Número de bytes después de echo round((( ....
echo 'Peso de esta página: ';
echo 
round(((ob_get_length()+$despues)/1024)*100)/100;
echo 
'kb';
ob_end_flush();
?>
__________________
Foros en los que participo:

Última edición por ProgramacionWeb; 16-jun-2003 a las 21:30.
ProgramacionWeb está desconectado   Responder Citando
Antiguo 20-jun-2003, 17:20   #71 (permalink)
e-miliox está en el buen camino
 
Avatar de e-miliox
 
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Tema: miscelaneo.
PreGunta: Como puedo medir el tiempo de ejecucion de mi script?.
Respuesta: Puedes usar esta class!

introduccion:
El otro dia queria medir cuanto se demoraba en cargar una
pagina que estaba haciendo en PHP y luego de investigar un
poco decidi que lo mejor seria hacer un par de funciones para
calcular esto. Pero como las Classes estan de moda, mejor lo hice
en forma de clase y salio pretty.

Asi que aqui se los dejo, seguro que les servira para ponerlo en alguna pagina por ahi.

Código PHP:
<?php
/*
Class PHP que simula un cronometro, para medir el tiempo
de carga de una pagina, por ejemplo.

Toma el tiempo desde el momento que es instanciado (new cronometro())
y dispone de un metodo para "parar" el cronometro y devolver el tiempo
desde la creacion de la instancia hasta que se invoca este metodo.

Autor: e-milio
*/
Class cronometro {
    var 
$comienzo;
    
// me devuelve un tiempo en segundos y milisegundos
    
function _getmicrotime() {
        
        list(
$_milisegundos$_segundos) = explode(" "microtime());
        
        return ((float)
$_milisegundos + (float)$_segundos);
    }

    
// constructor cronometro
    
function cronometro() {
        
        
$this->comienzo $this->_getmicrotime();
        
        return 
true;
    }

    
// para el cronometro y devuelve el tiempo
    // se puede dar una salida formateada a traves de los parametros.
    // 
    // Si $formatear esta a verdadero entonces devolvera cuantos segundos
    // se demoro con $nroDecimales decimales (milisegundos).
    
function stop($formatear false$nroDecimales 0) {
        
        
$_tiempo $this->_getmicrotime() - $this->comienzo;
        
        return (
$formatear) ? number_format($_tiempo$nroDecimales',''.') : $_tiempo;
    }
}
?>
Entonces, para utilizar esto, puedes copiar este codigo y ponerlo
en algun archivo independiente (para que lo uses como include
cuando lo necesites)

yo lo hago de esta manera:

Código PHP:
<?php
// aca tengo escrita la clase
include "cronometro.php" 

$casio = new cronometro();

// hacemos un bucle mas o menos que tome un tiempo, si no
// se nota mucho, podemos subir a mas de 10000 
// (sin exagerar eh? xD)
for ($i $i <= 10000 $i++)
{
   
// hacer nada
}

echo 
"segun mi reloj, este script se demoro " $casio->stop(true2) . " segundos en su ejecucion";

?>


EOF
__________________
=PoWeReD By MySeLf!=

Última edición por Cluster; 16-ago-2003 a las 09:57.
e-miliox está desconectado   Responder Citando
Antiguo 20-jul-2003, 23:57   #72 (permalink)
kech está en el buen camino
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Tema: Reconocer el idioma del visitante

Pregunta: Como puedo configurar mi pagina para diferentes idiomas

Respuesta: Con HTTP_ACCEPT_LANGUAGE


Código PHP:
if(empty($sitelang)){ //primero preguntamos si la variable que va a contener el lenguage del visitante esta vacia
      
$sitelang getenv("HTTP_ACCEPT_LANGUAGE"); // si esta vacia sacamos el lenguage del visitante y lo ponemos en la variable $sitelang
      
}
switch(
$sitelang){ //ahora cargamos el archivo que contiene el idioma segun la varible que sacamos antes
          
case "es" //es = español 
             
include("./lang/lang-esp.php"); //ahora cargamos el archivo que contiene las variables y sus palabras
             
break;
          case 
"en" //en = ingles 
             
include("./lang/lang-eng.php");
             break;
          default :
             include(
"./lang/lang-esp.php"); //cargamos un idioma por defecto si no se encontro algun idioma 
             
break;
       } 

ahora el archivo que contiene las palabras con sus traducciones

lang-esp.php
Código PHP:
<?php
define
('_LOGIN','Logeado');//lo definimos con una palabra que todos los archivos de lenguage tienen que tener para definir la funcion que cumple, despues la palabra que lo va a remplazar
define('_REGISTER','Registrarce');
define('_HELO','Hola');
define('_ACCEPT','Aceptar');
define('_ACCESS_ADD','Añadir');
?>

y para poner la palabra que definimos anteriormente

Código PHP:
<?
echo _REGISTER;//esto pondria en pantalla Registrarce
?>
notece que las palabras que definimos hay que tratarlas como variables ejemplo para poner una palabra que definimos en alguna frace seria haci

echo "hola esta un una prueba para mostrar registrado en tu idioma "._REGISTER." bla bla";


un listado de palabras listas para copiar pegar en sus archivos las pueden sacar de las aplicaciones prefabricadas ( quien decia que no servian para nada xD xD) como por ejemplo postnuke ya que ocupa la misma forma para el archivo de lenguage

salu2
kech está desconectado   Responder Citando
Antiguo 23-jul-2003, 23:30   #73 (permalink)
MSDark está en el buen camino
 
Avatar de MSDark