Foros del Web » Programando para Internet » PHP »

FAQ's de PHP

Estas en el tema de FAQ's de PHP en el foro de PHP en Foros del Web. 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 ...

  #61 (permalink)  
Antiguo 21/04/2003, 18:44
 
Fecha de Ingreso: abril-2003
Ubicación: El Salvador
Mensajes: 8
Antigüedad: 21 años, 7 meses
Puntos: 0
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.
  #62 (permalink)  
Antiguo 30/04/2003, 19:02
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 9 meses
Puntos: 5
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
  #63 (permalink)  
Antiguo 20/05/2003, 18:01
Avatar de BVis  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 22 años
Puntos: 0
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
  #64 (permalink)  
Antiguo 25/05/2003, 05:29
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 22 años, 11 meses
Puntos: 0
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
  #65 (permalink)  
Antiguo 25/05/2003, 20:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
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

Última edición por Cluster; 07/10/2008 a las 06:16
  #66 (permalink)  
Antiguo 03/06/2003, 21:59
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 22 años, 3 meses
Puntos: 2
¿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)
  #67 (permalink)  
Antiguo 12/06/2003, 01:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
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: http://www.forosdelweb.com/f18/generar-muchos-passwords-244253/ . Gracias a Jpinedo.

Última edición por Cluster; 06/11/2004 a las 15:30
  #68 (permalink)  
Antiguo 15/06/2003, 19:33
Avatar de ProgramacionWeb  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona
Mensajes: 176
Antigüedad: 21 años, 5 meses
Puntos: 2
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/06/2003 a las 20:24
  #69 (permalink)  
Antiguo 15/06/2003, 19:50
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 23 años, 3 meses
Puntos: 9
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/06/2003 a las 10:27
  #70 (permalink)  
Antiguo 16/06/2003, 21:25
Avatar de ProgramacionWeb  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona
Mensajes: 176
Antigüedad: 21 años, 5 meses
Puntos: 2
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/06/2003 a las 21:30
  #71 (permalink)  
Antiguo 20/06/2003, 17:20
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 22 años
Puntos: 7
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/08/2003 a las 09:57
  #72 (permalink)  
Antiguo 20/07/2003, 23:57
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 8 meses
Puntos: 0
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
  #73 (permalink)  
Antiguo 23/07/2003, 23:30
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 22 años
Puntos: 1
Thumbnails

Tema: Imagenes
Pregunta: Como creo thumbnails de mis imagenes?
Respuesta Con las funciones de imagen de la libreria GD en esta simple funcion

Código PHP:
function thumbnail($file,$dir,$ancho=100,$alto=100,$gif_support=false)
{
    if(!
file_exists($file)){
        return 
false;
    }
    if(!
is_dir($dir)){
        return 
false;
    }
    
$final = (int) strlen($file) - 4;
    
$nombre strtolower(substr($file,0,$final));
    
$ext strtolower(substr($file,-4,4));
    
$nombre $nombre.$ext;
    
$mini $dir."/mini_".$nombre;
    if(
$ext==".jpg" || $ext==".jpeg"){
        
$origen  imageCreateFromJPEG($file);
        
$imgAnchoimageSx($origen);
        
$imgAlto imageSy($origen);
        
$imagen  imageCreate($ancho,$alto);
        
ImageCopyResized($imagen,$origen,0,0,0,0,$ancho,$alto,$imgAncho,$imgAlto);
        
imageJPEG($imagen,$mini);
    }else if(
$ext==".png"){
        
$origen  imageCreateFromPNG($file);
        
$imgAnchoimageSx($origen);
        
$imgAlto imageSy($origen);
        
$imagen  imageCreate($ancho,$alto);
        
ImageCopyResized($imagen,$origen,0,0,0,0,$ancho,$alto,$imgAncho,$imgAlto);
        
imagePNG($imagen,$mini);
    }else if((
$gif_support==true) && ($ext==".gif")){
         
$origen  imageCreateFromGIF($file);
        
$imgAnchoimageSx($origen);
        
$imgAlto imageSy($origen);
        
$imagen  imageCreate($ancho,$alto);
        
ImageCopyResized($imagen,$origen,0,0,0,0,$ancho,$alto,$imgAncho,$imgAlto);
        
imageGIF($imagen,$mini);
    }else{
        return 
false;
    }
    return 
true;

Como usarla?

Sencillo, le pasas a la funcion el nombre del archivo y el directorio en que quieres que queden creadas las thumbnails.
En forma de opcion esta que le pases el alto y ancho que por defecto es 100 de ancho y de alto.

Tambien si tu libreria GD soporta gifs le pasas true a la opcion de gif.
Código PHP:
thumbnail$file $dir , [$ancho 100] , [$alto 100] , [$gif_support=false] ); 

Ejemplo de uso

Código PHP:
if(!thumbnail("imagen.png","./thumbnails",80,80)){
    echo 
"error en creacion de thumbnails";
}else{
    echo 
"Creacion exitosa";

Recordar que esta funcion crea los thumbnails en un directorio especificado.

Saludos
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #74 (permalink)  
Antiguo 30/07/2003, 09:50
 
Fecha de Ingreso: abril-2003
Mensajes: 80
Antigüedad: 21 años, 7 meses
Puntos: 0
Prev and Next

Pregunta: Cómo puedo crear un sistema prev and next con manejo de errores.

Respuesta: La clave se encuentra en un comando de sql.

Creador: Abdel Rahman.

Script:

Código PHP:

<?

/* Ruta donde se encuentra el archivo
que contiene la dirección de email a
donde se reportarán errores si estos
suceden */

$rutaemail "email.php"
include(
$rutaemail);  
 

/* Ruta donde se encuentra el archivo
donde se realiza la conexión a la
base de datos */
 
$rutadeacceso "usuario.php";  
include(
$rutadeacceso);  
 
$basededatos "nombredelabasededatos"// Nombre de la Base de Datos  

if ($resultadoconnect != 0)
    {
    
$resultadoselectdb = @mysql_select_db("$basededatos"$vinculo);
    if (
$resultadoselectdb != 0)
        {
        
$numero 10// Número de resultados listados, si se quieren ver 20 resultados sólo se cambia el valor de 10 a 20.
        
if ( $v_next == 0)
        
$v_next 0;

        
$tabla "nombredelatabla";
                
$elcampo "nombredelcampo";
        
$sql "select * from $tabla where $elcampo like '%$palabraclave%' LIMIT ".$v_next.",".$numero.""// $palabraclave es la variable que recibe.

        
$resultadoquery= @mysql_query($sql);

        if (
$resultadoquery != 0)
            {
            if (
$fila = @mysql_fetch_array($resultadoquery))  
                {
                                echo 
"<html><body>";
                echo 
"<table border='1' align='left' cellspacing='2' cellpadding='2'>";
                echo 
"<tr><td><b>Resultados</b></td></tr>";
                do
                    {
                    echo 
"<tr><td>";
                    echo 
$fila["nombredelcampo"]; // Campo de la tabla que se quiere mostrar.
                    
echo "<td></tr>";
                    
$v_next++;
                    }
                while(
$fila = @mysql_fetch_array($resultadoquery));

                
$sql2 "select count(*) num_reg from $tabla where $elcampo like '%$palabraclave%'"// Averiguate para que sirve el count(*). 
                
$resultadoquery2=@mysql_query($sql2);
                
$fila2 = @mysql_fetch_array($resultadoquery2);
                
$num_reg $fila2["num_reg"];

                
$num_pag $num_reg/$numero;
                
$j 1;
                
$v_next 0;

                echo 
"<tr><td>&nbsp;</td></tr>";
                echo 
"<tr><td>N&uacute;mero de Resultados: <b>$num_reg</b></td></tr>";
                echo 
"<tr><td>&nbsp;</td></tr>";
                echo 
"<tr><td>";
                for (
$i=0$i<$num_pag$i++)
                    {
                    echo 
" | <a href=$PHP_SELF?v_next=".$v_next."&palabraclave=".$palabraclave.">".$j."</a>";
                    
$j++;
                    
$v_next += $numero;
                    }
                echo 
"</td></tr>";
                echo 
"</table>";

                @
mysql_free_result($resultadoquery);
                }
            else
                {
                echo 
"<p align='center'>No se encontraron registros</p>";
                }
            }
        else
            {
            echo 
"<p align='center'>Ha ocurrido un error!, Fall&oacute; operaci&oacute;n SQL</p>";
            
// Reportar al webmaster del error
            
error_log("Ha ocurrido un error!\n\nFalló operación SQL en la tabla: $tabla, base de datos: $basededatos.\nScript: nombredelscript.php"1"$email");
            }
        }
    else
        {
        echo 
"<p align='center'>Ha ocurrido un error!, Fall&oacute; la selecci&oacute;n de la base de datos</p>";
        
// Reportar al webmaster del error.
        
error_log("Ha ocurrido un error!\n\nFalló la selección de la base de datos: $basededatos.\nScript: nombredelscript.php"1"$email");
        @
mysql_close($vinculo);
        }
    }
else
    {
    echo 
"<p align='center'>Ha ocurrido un error!, Fall&oacute; la conexi&oacute;n a la base de datos</p>";
    
// Reportar al webmaster del error.
    
error_log("Ha ocurrido un error!\n\nFalló la conexión a la base de datos: $basededatos.\nScript: usuario.php"1"$email");
    }
        echo 
"</body></html>";
?>

Cotenido del archivo email.php


Código PHP:

<?

$email 
"[email protected]";

?>

Cotenido del archivo usuario.php

Código PHP:

<?

// Nombre de host
$host "localhost";

// Nombre del Usario
$usuario "nombredelusuario";

// Clave de Acceso del Usuario
$clave "clavedelusuario";

$vinculo = @mysql_pconnect ("$host""$usuario""$clave");

if (
$vinculo != 0)
    {
    
$resultadoconnect 1;
    }
else
    {
    
$resultadoconnect 0;
    }

?>

Nota: Este script tiene manejo de errores y presenta los resultados y los números de las páginas, si pueden realizarle mejoras por favor ponerlo nuevamente en este foro.
  #75 (permalink)  
Antiguo 13/08/2003, 11:08
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 23 años, 3 meses
Puntos: 9
Pregunta ¿Puedo combinar HTML con PHP, y con ello diseñarlo con Dreamweaver?

Respiesta SI, y que no te engañen.

Por ejemplo:
Si queremos desplegar un simple número, no necesitamos hacer una instrucción de puro PHP para desplegar algo que se puede hacer con una mejor combinación:

Código PHP:
<?  echo "<tr><td>&nbsp;</td></tr>";
                echo 
"<tr><td>N&uacute;mero de Resultados: <b>$num_reg</b></td></tr>";
                echo 
"<tr><td>&nbsp;</td></tr>";
                
?>
En vez de tantos echos en esta instrucción, mejor uno.

Código PHP:
<tr><td>&nosp;</td></tr>
 <tr><td>N&uacute;mero de resultados: <b><? echo $num_reg?></b></td></tr>
 <tr><td>&nbsp;</td></tr>
Mas simple y mas facil. Además que se puede revisar si existe un error en síntaxis, con solamente saber donde esta el error, buscando en una sola linea en PHP, en vez de buscarlo en varias lineas en PHP.

Ahh claro, y tambien se aplica en enlaces con variables GET:

Código PHP:
 <a href="?seccion=noticias&id=<? echo $variable?>" CLASS="nu">
      <font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">- 
      <? echo $texto;?></font> </a>
Mejor, ¿no?
  #76 (permalink)  
Antiguo 28/08/2003, 01:51
 
Fecha de Ingreso: mayo-2003
Ubicación: Cuernavaca, Mor.
Mensajes: 117
Antigüedad: 21 años, 6 meses
Puntos: 2
Tema Fechas
Pregunta ¿Como veo la la fecha y hora del servidor?
Respuesta Con este sencillo script

Código PHP:
<?
/*  sube este fichero a tu sitio 
   y llamalo utilizando este include
   <? include ("date.php"); ?> en la parte
   que quieras que se visualize la 
   fecha y hora en tu web */

//Variable nombre del mes
$nommes = array("Enero""Febrero""Marzo""Abril""Mayo""Junio""Julio""Agosto""Septiembre""Octubre""Noviembre""Diciembre");

//variable nombre día
$nomdia = array("Domingo""Lunes""Martes""Miercoles""Jueves""Viernes""Sabado");

/* date(j) toma valores de 1 al 31 segun el dia del mes
date(n) devuelve numero del 1 al 12 segun el mes
date(w) devuelve 0 a 6 del dia de la semana empezando el domingo
date(Y) devuelve el año en 4 digitos */

$dia date(j); //Dia del mes en numero
$mes date(n); //Mes actual en numero
$diasemana date(w); //Dia de semana en numero

$hoy $nomdia[$diasemana].", ".$dia." de ".$nommes[$mes-1]." del ".date(Y).", ".date(h).":".date(i);

echo 
$hoy;

?>
Facil, ¿no?
  #77 (permalink)  
Antiguo 17/09/2003, 13:31
Avatar de Kernellover  
Fecha de Ingreso: noviembre-2002
Ubicación: Perdido
Mensajes: 251
Antigüedad: 22 años
Puntos: 0
Generar passwords de calidad

P: ¿Como genero un password?

Para generar un password aleatorio de forma rápida podemos usar las funciones md5() junto con rand() tal como sigue.

Código PHP:
$caracteres 8// numero de caracteres a visualizar
$random_pass substr(md5(rand()),0,$caracteres);
echo 
$random_pass // imprime el password 
P: ¿Como genero un password facil de memorizar?

Primero habría que definir el concepto 'fàcil de memorizar', yo entiendo por facil ajikomufi y no jkimlhidt. Este sencillo escript genera un a cadena de caracteres formados por vocal consonante vocal o consonante vocal consonante, de este modo el password es leible y como consecuencia, fácil de memorizar.

Ahí va la función, la cual debería estar al inicio de todo de vuestra página junto con las demás funciones definidas.
Código PHP:
function f_genera_psw($num=8){ // By Kernellover
    
$voc = array ("a","e","i","o","u");
    
$con = array ("b","c","d","f","g","h","j","k","l","m","n","ñ","p","q","r","s","t","w","x","y","z");
    
$psw "";                // cadena que contendrá el password.
    
$vc  mt_rand(0,1);    // definde si empieza por vocal o consonante.
    
for ($n=0$n<$num$n++){
        if (
$vc==1){
            
$vc=0;
            
$psw .= $con[mt_rand(0,count($con)-1)];
        }
        
$psw .= $voc[mt_rand(0,count($voc)-1)];
        
$psw .= $con[mt_rand(0,count($con)-1)];
    }
    
$psw ereg_replace ("q","qu",$psw);
    
$psw ereg_replace ("quu","que",$psw);
    
$psw ereg_replace ("yi","ya",$psw);
    
$psw ereg_replace ("iy","ay",$psw);
    
$psw substr($psw,0,$num);
    return 
$psw;

Para llamar a la función se puede hacer así, saliendo impresos 8 caracteres (por defecto)
Código PHP:
echo f_genera_psw(); // imprime el password (8 caracteres por defecto) 
Para poner otra cantidad distinta de caracteres, solo hay que pasarlo como parametro así.
Código PHP:
echo f_genera_psw(6); // imprime 6 caracteres de password 
Espero que os sea de utilidad esta función que he creado.
Suerte!
  #78 (permalink)  
Antiguo 17/09/2003, 13:49
Avatar de Kernellover  
Fecha de Ingreso: noviembre-2002
Ubicación: Perdido
Mensajes: 251
Antigüedad: 22 años
Puntos: 0
Pregunta: ¿Como calculo el tiemp que tarda una pagina en generarse?
Respuesta: Copiando este ejemplo y haciendo algunas pruevas.
Código PHP:
<?php
$T_inicio 
microtime();
?>
<html>
<head>
<title>Calculo de tiempo</title>
</head>
<body>
.... aquí van los scripts de PHP con sus consultas a la base de datos, los accesos a ficheros, bucles, codigo html, lo que sea que haga relentizar la generación del documento ...
<br>
<br>
<hr>
Página generada en <?php echo substr(microtime() - $T_inicio,0,5); ?> segundos. 
</body>
</html>
Suerte!!
  #79 (permalink)  
Antiguo 19/09/2003, 05:36
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 22 años, 5 meses
Puntos: 0
Pregunta: Generar la misma Cookie en www.dominio.com / dominio.com / sub.dominio.com...

Pues (como dicen todos) fácil!!

Al crear la cookie definimos el nombre del domino al que pertenece sin las "www" ni semejantes:

Código PHP:
<?php
//observad la "/" que sirve para llamar directamente al nombre de dominio
//y no a una subcarpeta. Si no lo pusiéramos la cookie se llamaría:
//midominio.com.midominio.com. 
//el "0" sirve para indicar si es 1 solo se envia la cookie por HTTPS, si es 0 por HTTP y HTTPS
setcookie("micookie""valor"time()+10000"/"".midominio.com"0);
?>
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #80 (permalink)  
Antiguo 20/09/2003, 09:46
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 22 años, 3 meses
Puntos: 2
Tema: E-mails
Pregunta: ¿Cómo hacer que el "mensaje" de un e-mail se encuentre en un archivo .php?
Respuesta: A mi me costó mucho hacerlo, pero gracias a Cluster, josemi y epplestun todo se hace asi :

Nuestro problema consistía en meter la variable "$mensaje" de la función mail() en un archivo llamado "mensaje.php" y lograr que PHP interpretara el código que dicho archivo llevaba internamente:

Código PHP:
mail($admin,"ASUNTO",$mensaje,"Content-Type: text/html; charset=iso-8859-1\nFROM: DRCYBER <$usuario>"); 
Primero, creas la siguiente función:

Código PHP:
function send($var,$row) {
    
ob_start();
    include(
"$var");
    
$mensaje ob_get_contents();
    
ob_end_clean();
    return 
$mensaje;

Y sencillamente, modificas tu función mail() asi:

Código PHP:
mail($admin,"ASUNTO",send(mensaje.php,$row),"Content-Type: text/html; charset=iso-8859-1\nFROM: DRCYBER <$usuario>"); 
Listo!. Ahora podrás mandar mensajes dinámicos llamando datos desde una BD o desde $_POST y $_GET.

NOTA: $row es el array que usas para llamar los campos de tu BD, pej: $row[usuario], $row[contrasena], $row[email], etc.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #81 (permalink)  
Antiguo 20/09/2003, 10:02
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 22 años, 3 meses
Puntos: 2
Tema: Imágenes
Pregunta: ¿Cómo hacer un catálogo de imágenes automáticamente?
Respuesta: Sencillo, solo debes almacenar las imagenes de la carpeta en un array y luego paginarlos, todo queda asi:

Primero, activamos el objeto dir() y saltamos los dos primeros elementos simbólicos "." y "..".

Código PHP:
$path="imagenes/loquesea";
$directorio dir($path);
$directorio->read(); 
Luego metemos todos los nombres de las imágenes en un array llamado $imagen y cerramos el objeto dir():

Código PHP:
while($entrada $directorio->read()){
    
$a++;
    
$imagen[$a] = $entrada;
}
$directorio->close(); 
Ahora contamos cuantas páginas dará como resultado la cantidad de imágenes usando la función ceil() que redondea al numero por encima del decimal, tomando en cuenta que usaremos 100 imágenes por página:

Código PHP:
$paginas ceil($a/100); 
Si el número de página no esta definida o no hemos seleccionado ninguna página, entonces toma por defecto "1".

Código PHP:
if(!isset($page)){
    
$page "1";

Calculamos en qué página nos encontramos, para asi saber desde donde debe comenzar a imprimirse las imágenes:

Código PHP:
$o 100*($page-1); 
Luego imprimimos las imágenes en una tabla, 10 por fila y 10 por columna:

Código PHP:
for ($i=1$i<=10$i++){
    echo 
"<tr align=\"center\">";
    for (
$e=1$e<=10$e++){
        
$o++;
        echo 
"<td><img src=\"".$path."/",$imagen[$o]."\"></td>"
    }
    echo 
"</tr>";

Ahora, donde quieras poner los links a las páginas colocas:

Código PHP:
for ($u=1$u<=$paginas$u++){
    echo 
"<a href=\"catalogo.php?&page=".$u."\">".$u."</a>  ";

Eso es todo, juntas todo eso y listo. Tienes un catálogo de imágenes simplemente escribiendo unas cuantas líneas!!!
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)

Última edición por jam1138; 13/06/2008 a las 13:01 Razón: Corrigo errores.
  #82 (permalink)  
Antiguo 29/09/2003, 09:28
Avatar de lubetpic  
Fecha de Ingreso: enero-2002
Ubicación: San Jose
Mensajes: 679
Antigüedad: 22 años, 9 meses
Puntos: 0
Tema: Imagenes
Pregunta: Como rotar una imagen una vez al dia?
Agradecimientos a: Nuevo
Respuesta:

aqui esta la rotación diaria o mensual, es cuestión de adaptarlo y puede hacer cualquier otra cosa
Código PHP:
<?
    
$numero_del_dia 
date("w"); //saco el dia de hoy en formato numero

switch ($numero_del_dia) { //hacemos los casos
                             
   
case 0$dame_dias "0"; break;//domingo
   
case 1$dame_dias "1"; break;//lunes
   
case 2$dame_dias "2"; break;//martes
   
case 3$dame_dias "3"; break;//miercoles
   
case 4$dame_dias "4"; break;//jueves
   
case 5$dame_dias "5"; break;//viernes
   
case 6$dame_dias "6"; break;//sabado
}


$meses_ingles date("F"); //saco el mes 

switch ($meses_ingles) { // hacemos los casos
                
  
case "January"$dame_meses "1"; break;//enero
  
case "February"$dame_meses "2"; break;
  case 
"March"$dame_meses "3"; break;
  case 
"April"$dame_meses "4"; break;//abril
  
case "May"$dame_meses "5"; break;
  case 
"June"$dame_meses "6"; break;
  case 
"July"$dame_meses "7"; break;//julio
  
case "August"$dame_meses "8"; break;
  case 
"September"$dame_meses "9"; break;
  case 
"October"$dame_meses "10"; break;
  case 
"November"$dame_meses "11"; break;
  case 
"December"$dame_meses "12"; break;//diciembre
  
}

 
$name_image "images/NOMBRE_".$dame_dias.".jpg"//creamos la url 

echo "<img src=$name_image border=0>"//mostramos la imagen del dia de hoy
                        
 
echo "<br><br>";

$name_image "images/NOMBRE_".$dame_meses.".jpg"//creamos la url 

echo "<img src=$name_image border=0>"// mostramos la imagen de este mes

?>
  #83 (permalink)  
Antiguo 09/10/2003, 19:55
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años, 7 meses
Puntos: 1
Tema: Salto de linea.

Pregunta: Como forzar un salto de linea cuando no hay \n
o bien formatear un texto con una cantidad de caracteres predefinidos

Respuesta: A veces nos encontramos que en n textarea
nos ponen muchos caracteres seguidos o bien muchos saltos de linea, o quizas queremos sacar el texto de un archivo con lineas
muy largas y la funcion nl2br() no nos va del todo bien.

Pues con esta " funcionciolla" evitamos estos problemas

Código PHP:

//$texto el texto a formatear, $max cantidad de caracteres a cortar cada linea

function br($texto$max)
{      
     if(
strlen($texto) > $max
//si el texto tiene mas de los caracteres que le indicamos con la variable $max
       

         
$texto wordwrap($texto,$max,"<br>",1);
//nos lo corta a la cantidad de caracteres indicado
       
}
        else 
$texto=$texto;
// si no llega a los caracteres incicado, pues lo deja tal cual
        
return $texto;      

espero que os sirva
  #84 (permalink)  
Antiguo 17/10/2003, 14:19
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 9 meses
Puntos: 5
Tema: Fecha en español

PARA PONER LA FECHA EN ESPAÑOL IGUAL QUE CON DATE()

Pues yo aqui les comparto una funcion que hice para usar la función date(); con formato en español...

Se usa IGUALITO que date, solo que con la ventaja de que el input puede ser en formato de fecha de MySQL (20031016) o un time (mktime) o nada (), y el formato sigue las mismas reglas que la función date();

Código PHP:
function date_es($formato="F j, Y",$fecha=0) {
    if (
ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"$fecha,$partes)) {
        if (
checkdate($partes[2],$partes[3],$partes[1])) {
            
$fecha=strtotime($fecha);
        } else {
            return(-
1);
        }
    } elseif (
$fecha==0) {
        
$fecha=time();
    }
    
$dias=array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado");
    
$dias_c=array("Dom","Lun","Mar","Mie","Jue","Vie","Sab");
    
$meses=array("","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
    
$meses_c=array("","Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic");

    
$valores=explode("|",date ("a|A|B|d|D|F|g|G|h|H|i|I|j|l|L|m|M|n|O|r|s|S|t|T|U|w|W|Y|y|z|Z",$fecha));
    
$claves= array ("a","A","B","d","D","F","g","G","h","H","i","I","j","l","L","m","M","n","O","r","s","S","t","T","U","w","W","Y","y","z","Z");
    for (
$i=0;$i<count($claves);$i++) {
        
$conv[$claves[$i]]=$valores[$i];
    }
    
$conv["D"]=$dias_c[$conv["w"]];
    
$conv["l"]=$dias[$conv["w"]];
    
$conv["F"]=$meses[$conv["n"]];
    
$conv["M"]=$meses_c[$conv["n"]];
    
$conv["r"]=$conv["D"].", ".$conv["d"]." ".$conv["M"]." ".$conv["Y"]." ".$conv["H"].":".$conv["i"].":".$conv["s"]." ".$conv["O"];
    
$conv["S"]="o";
    
$escape='\\\\\\';
    
$escapado=0;
    
$f=$formato;
    
$res="";
    for (
$t=0;$t<strlen($formato);$t++) {
        if (
$escapado==1) {
            
$res.=$f{$t};
            
$escapado=0;
        } else {
            if(
$f{$t}==$escape) {
                
$escapado=1;
            } else {
                if (isset(
$conv[$f[$t]])){
                    
$res.=$conv[$f[$t]];
                } else {
                    
$res.=$f{$t};
                }
            }
        }
    }
    return 
$res;

__________________
Manoloweb
  #85 (permalink)  
Antiguo 19/10/2003, 15:28
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 21 años, 10 meses
Puntos: 1
Comodidad...

Tema: Condicionales
Pregunta: ¿Como combino html y php en un condicional?
Respuesta:
Existe un pequeño truco para poder usar html dentro de un condicional.
Ejemplo:
Código PHP:
<?php 
if ("$variable"!=1){ // con esto iniciamos el condicional 
?> 
<!-- una pequeña etiqueta html --><br>
<?php //una de php
echo "Hola";
?>

<?php } else { ?>

<!-- una pequeña etiqueta html --><hr>
<?php //una de php
echo "chau";
?>
<?php 
?>
MaPPeR
si crees que sabes poco no me conoces...
  #86 (permalink)  
Antiguo 26/10/2003, 02:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Tema: Formularios

Pregunta: Como gestionar acciones a los registros seleccionados con checbox (estilo web-mails tipo Hotmail).

Respuesta:

La técnica se basa en crear arrays (arreglos, matrices ..) desde el nombre de los checkbox que vamos a usar. De esta forma, agrupamos conjuntos de checkbox relacionados, quedando de esta forma para PHP un array con el nombre que definamos en el tag name= del objeto de formulario <input type="checkbox" ...>

Para ello, se usa como nombre del checbox:
name="nombre_checbox[]"

El [] indica que estamos creando un array de indice automático y que comienza por 0. A cada llamada de ese <input> de checbox se gerará un nuevo indice.

A su vez, en el <input> de checbox, definimos un value= de valor igual al valor que queremos que tome cuando esté seleccionado.

A todo esto, debemos englobarlo todo en un tag de furmulario común, quedando algo así:

formulario.html
Código PHP:
<form action="script.php" method="post">
  
<input type="checkbox" name="seleccion[]" value="1">
  
<input type="checkbox" name="seleccion[]" value="2">
  
<input type="checkbox" name="seleccion[]" value="3">
<
input type="submit" name="Submit" value="Enviar">
</
form
Así, en "script.php" recibiremos un array de nombre variable $seleccion (o mejor por $_POST['seleccion']) .. como array que es lo puedes recorrer con cualquier tipo de bucle (recomendable un foreach()). Ejemplo:

script.php
Código PHP:
foreach ($_POST['seleccion'] as $id){
   echo 
$id."<br>";

Si tubieramos más grúpos de checbox, tan sólo tendríamos que cambiar el nombre del array checbox y recoger en nuestro script.php dichos arrays.

Una utilidad práctica a esta forma de trabajar con checkbox y arrays sería la de realizar un sencillo script donde podamos seleccionar vários registros de una tabla que deseamos realizar una acción sobre ellos; por ejemplo, borrarlos.

formulario.php
Código PHP:
<?
// Realizar la conexión a la BD .. Seleccionar la BD a usar.

// Ejecutar la consulta para obtener los datos de la BD.
$resultado=mysql_query("SELECT * FROM tabla");

// Se inicial el formulario
echo "<form action=\"procesar.php\" method=\"post\"> \n";

// Extraemos y componemos los checbox dinámicos de los datos de nuestra tabla de la BD.
while ($row mysql_fetch_array($resultado)){
  echo 
"<input type=\"checkbox\" name=\"seleccion[]\" value=\"".$row['id']."\">".$row['nombre']."<br>";
}

// Cerramos el formulario y ponemos nuestro botón de Submit.
echo "<input type=\"submit\" name=\"Submit\" value=\"Enviar\">";
echo 
"</form>";
?>
Y un ejemplo de borrado de los registros seleccionados. (recuerda que sólo pasan en el array los checbox seleccionados).

Mysql (para el ejemplo) dispone del comando SQL "IN(lista de valores separados por comas)" para aplicar condicionales tipo ... WHERE IN (1,3,25,53,8). Usamos implode() para conctenar los elementos del array con el separador coma (,)

procesar.php
Código PHP:
<?
// Generamos una lista de los ID's (campo value= ..) que tenemos en nuestro array.
$lista=implode(',',$_POST['seleccion']);

// Y lo aplicamos al SQL correspondiente y ejecutamos la consulta.
mysql_query("DELETE FROM tabla WHERE id IN(".$lista.")");

?>
Para este caso particular no es necesario de un bucle adicional para leer el valor de los checbox seleccionados por qué aplicamos el "implode()" para tal fin.

Si deseamos o tenemos que realizar un proceso intermédio entre la lectura de cada uno de estos valores de forma individual, sólo tenemos que usar el bucle foerach() por ejemplo como se citó en el primer ejemplo.

Un saludo,

PD: 03/11/2003. Código corregido en la generación de $lista (había un par de parentesis de más). Gracias jpinedo por reportar el error.
PD: 18/03/2004. Código corregido en formulario.php (faltó un echo y unas comillas al transcribir la FAQ al mensaje del foro). Gracias Gerald por reportar el error.

Última edición por Cluster; 30/12/2005 a las 13:15
  #87 (permalink)  
Antiguo 29/10/2003, 03:57
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años
Puntos: 5
Multiples idiomas basados en XML

Tema: Multiples idiomas

Pregunta: Como puedo hacer una aplicación en varios idiomas y con un solo código?¿

Respuesta
La solucion es bastante sencilla, para ello haremos uso de archivos XML. Nuestro arhcivo puede tener la siguiente forma:

english.xml
Código PHP:
<?xml version="1.0"?>
<!-- english language -->
<language>
    <label>
        <value>File</value>
    </label>
    <label>
        <value>Edit</value>
    </label>
    <label>
        <value>View</value>
    </label>
    <label>
        <value>Options</value>
    </label>
    <label>
        <value>Help</value>
    </label>
</language>
En el archivo XML tenemos una estructura sencilla donde la etiqueta value indica el valor.

Lo que tenemos que hacer es generar un array a partir de la estructura del XML, para ello haremos uso de la funcion xml_parse_into_struct(), esta funcion nos genera el array y lo trabajaremos de la siguiente manera:

language.php
Código PHP:
<?php
class lang {
    var 
$word  = array();
    var 
$words = array('file''edit''view''options''help');
    
    function 
loadLanguage($lang "english.xml") {
        
$xml    implode(""file(dirname(__FILE__)."/".$lang));
        
$parser xml_parser_create();
        
xml_parser_set_option($parserXML_OPTION_CASE_FOLDING0);
        
xml_parser_set_option($parserXML_OPTION_SKIP_WHITE1);
        
xml_parse_into_struct($parser$xml$vals$tags);
        
xml_parser_free($parser);
        
$i 0;
        foreach(
$vals as $key => $value) {
            if(!empty(
$value['value'])) {
                
$this->word[strtoupper($this->words[$i])] = ucfirst($value['value']);
                
$i++;
            }
        }
        return 
$this->word;
    }
    
    function 
viewInfo() {
        
$this->loadLanguage();
        return 
print_r($this->word);
    }
}
$lang   = new lang();
$lang -> viewInfo();
$labels =& $lang -> loadLanguage();
echo 
$labels['FILE'];
?>
De esta manera tenemos un array con todos los datos, y dependiendo del archivo que se le indique estara en un idioma u otro, y tan solo tendremos que programar una aplicacion haciendo uso de: echo $labels[indice];.

Espero que sea de ayuda, ami me lo a sido de muchísima ya que para la el soporte multiidioma del PHP-EDDI-DEV se basa en ello :D

Saludillos!!!
__________________
Usuario registrado de Linux #288725
  #88 (permalink)  
Antiguo 03/11/2003, 11:59
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 22 años, 5 meses
Puntos: 0
Hacer un campo desplegable dinámico

Para hacer un combobox que coja los valores de tu base de datos, sólo escribe esto:

Código PHP:
<?php
echo "<select name='id_usuario'>";
echo 
"<option>-- Seleecione</option>";
$result=mysql_query("select NOMBRE, APELLIDOS
from USUARIOS"
$link)or die (mysql_error());
while (
$row=mysql_fetch_array($result)) {
$nombre$row["NOMBRE"];
$apellidos $row["APELLIDOS"];
echo 
"<option value=\"$nombre\">$nombre $apellidos</option>"
}
echo 
"</select>";
?>
Si además quieres que aparezca seleccionado un concreto de forma dinámica:

Código PHP:
<?php
echo "<select name='id_usuario'>";
echo 
"<option>-- Seleecione</option>";
$result=mysql_query("select NOMBRE, APELLIDOS
from USUARIOS"
$link)or die (mysql_error());
while (
$row=mysql_fetch_array($result)) {
$nombre$row["NOMBRE"];
$apellidos $row["APELLIDOS"];
echo 
"<option value=\"$id_usuario\""
//ponemos el que esté seleccionado
if ($id_usuario==$id_usuario_seleccionado) { echo "selected"; }
echo 
">$nombre $apellidos</option>";}
echo 
"</select>";
?>
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #89 (permalink)  
Antiguo 04/11/2003, 02:04
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 1 mes
Puntos: 41
Tema: Imágenes, Banners, Números aleatorios.
Pregunta: ¿Cómo mostrar un banner o imagen cualquiera (con su link y "alt") tomado de una lista aleatoriamente?
Respuesta: De una interesante dicusión en este post , surgió el script que coloco a continuación. Gracias a Cluster, a josemi y a todos los que participamos.
**************************************
Código PHP:
  //Primero, guardamos en un array bidimensional el nombre de archivo de la imagen y el link hacia donde debe enviarnos al hacerle click.
$banners[0]['imagen']="imagen0.gif";
$banners[0]['url']="www.nosenada.tal";
$banners[0]['alt']="página de nosenada";

$banners[1]['imagen']="imagen1.gif";
$banners[1]['url']="http://www.nose.tal";
$banners[1]['alt']="Entra y diviértete";

$banners[2]['imagen']="imagen2.gif";
$banners[2]['url']="pagina.html";
$banners[2]['alt']="mi página personal";

$banners[3]['imagen']="imagen3.jpg";
$banners[3]['url']="../pagina.php";
$banners[3]['alt']="visítanos y colabora";

//Si tenemos una versión de PHP menor a la 4.2.0, tenemos que inicializar el generador de números aleatorios.
srand((float) microtime() * 10000000);//si es 4.2.0 o mayor, no hace falta esta lína.

//Utilizamos la función array_rand() para elegir un índice aleatorio
$id_banner array_rand($banners);

$banner_imagen=$banners[$id_banner]['imagen'];
$banner_url=$banners[$id_banner]['url'];
$banner_alt=$banners[$id_banner]['alt']; 
Así utilizamos una etiquta algo así:
Código PHP:
echo "<a href=\"$banner_url\"><img src=\"$banner_imagen\" alt=\"$banner_alt\"></a>"
Sobre el uso de array_rand() dejo este link al manual:(en español)
http://www.php.net/manual/es/function.array-rand.php

Y este otro al post donde se dicutió algo al respecto.
http://www.forosdelweb.com/s/msg136573.html

Saludos

"Alt" agregado por sugerencia de elanime.

Última edición por jpinedo; 06/11/2003 a las 03:34
  #90 (permalink)  
Antiguo 07/11/2003, 08:34
ACHAVARRIA
Invitado
 
Mensajes: n/a
Puntos:
Como Mostrar los últimos mensajes

Sólo se debe ubicar el código en la parte de tu sitio donde quieras mostrar los títulos de los mensajes:

<?
// phpBB :: MOSTRAR ULTIMOS 10 MENSAJES
// :: WebExperto.com ::

$con=mysql_connect("servidor", usuario, password);
mysql_select_db("nombre_base_de_datos",$con);

// Cantidad de post a mostrar y prefijo de las tablas
$ultimos = 10;
$prefijo = "phpbb_";

// Consultas a la base
$result_mensaje=mysql_query("select * from $prefijo"."topics order by topic_id desc limit $ultimos",$con);
while($mostrar_m = mysql_fetch_array($result_mensaje)) {
$topic=$mostrar_m["topic_id"];
$forum_id=$mostrar_m["forum_id"];
$result_foro=mysql_query("select * from $prefijo"."forums where forum_id like $forum_id",$con);
$mostrar_f=mysql_fetch_array($result_foro);
$forum_name = $mostrar_f["forum_name"];
mysql_free_result($result_foro);
?>
<font face="verdana" size="1">»&nbsp;<a href="http://www.tusitio.com/foro/viewtopic.php?t=<?=$topic;?>" target="_blank"><? echo $mostrar_m["topic_title"]; ?></a><br>&nbsp;&nbsp;en <i><b><?=$forum_name;?></b></i></font><br>
<?
}
// Cerramos conexión
mysql_free_result($result_mensaje);
mysql_close($con);
?>

El resultado se mostrará de la siguiente forma, pero puedes acomodarlo fácilmente a tu gusto modificando el código de arriba.

» Simular Windows 98 con XP
en Informática en General
» Flash 5 y Generator
en Informática en General
» mostrar un mensaje al visitante
en ASP | ASP.net
» ¡¡¡¡¡AYUDA URGENTE!!!! bases de datos deductivas
en Bases de Datos
» Intercambio de links
en Marketing y Promoción
» tarjeta gráfica, ayuda!!!!
en Informática en General
» Extremadamente urgente...
en Informática en General
» Digitalizate
en Críticas y comentarios
» Password generado por el usuario
en PHP
» Passwords elegidos por el usuario
en ASP | ASP.net

Si resulta necesario, podemos limitar la cantidad de caracteres para el título del mensaje, lo cual es muy útil en caso de que el título sea muy largo y descompagine la estética visual del sitio.

' En este caso, limitamos a que se muestren los primeros 25 caracteres del título
$titulo=substr($mostrar_m["topic_title"],0,25);
' Y luego en lugar de $mostrar_m["topic_title"] imprimimos $titulo
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.
Tema Cerrado

SíEste tema le ha gustado a 106 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 01:37.