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

Respuesta
 
Herramientas Desplegado
Antiguo 12-dic-2002, 16:03   #31 (permalink)
AngelRoyo está en el buen camino
 
Avatar de AngelRoyo
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 207
Idea MODIFICAR IMAGENES (Educacional)


SECCION: IMAGEN
SCRIPT: CORTAR IMAGENES EN MASA


Objetivo: Script de tipo educacional para entender que manejar Imagenes en PHP es lo mismo que usar un editor como FireWork, la diferencia esta en que PHP es escrito.
- Quita Sección rectangular Inferior



Código PHP:
  /*
    CORTAR "$cutpx" DE UNA IMAGEN
    ANGEL ROYO 2002
   */

function tiempo(){

 list(
$ms,$s)=explode(" ",microtime());
 
$t=($ms $s);
 return 
$t/* Retorna el Tiempo en Segundos */

}/* Esta funcion se la agrege más nada para ver lo que se demora la PC */

function image_cut($src,$destino,$cutpx){

  
$size getimagesize($src);/* Propiedades de la imagen */
  
$im=imagecreatefromjpeg($src); /*Tomo la imagen origen */
$img=imagecreate($size[0],$size[1]-$cutpx);/*[0] ANCHO, [1] ALTO, me creo una CANVAS, algo similar que en Firework*/
  
imagecopyresized($img$im0000$size[0],$size[1]-$cutpx$size[0], $size[1]-$cutpx); /* Copio en mi CANVAS la imagen $im en la dimensión que deseo */
  
ImageJPEG($img,$destino,85); /*Exporto la CANVAS a JPG con 85% */
  
ImageDestroy($img); /* La Borro de la Cache */

/* El procedimiento es similar a usar un editor de imagenes */
}

 
$d=dir("empresa/"); /*Directorio con las imagenes de origen*/
 
$t0=tiempo();/* Opcional */
  
echo "Handle: ".$d->handle."<br/>\n";/* Opcional */
  
echo "Path: ".$d->path."<br/>\n";/* Opcional */

  
while($archivo=$d->read()) {/* Comienzo a leer la carpeta definida en dir */

          
if (eregi(".+.jpe?g$",$archivo)){
              
/* ES JPG o JPEG, por lo tanto aplicamos la funcion image_cut */

    
$img_fuente=$d->path.'/'.$archivo;
    
$img_destino='cortadas/'.$archivo;
 
image_cut($img_fuente,$img_destino,30); /*30 signifca 30 pixeles de corte, eso es lo que mide mas menos el rectangulo */

 
}

      echo 
$archivo."<br/>\n"/* Muestra el nombre de los archivos */

      
}

      
$d->close(); /* Cierro */  

      
$total=tiempo()-$t0;

      echo 
"<br/>EL PROCESO TARDO: $total (s)"
Pues ahi esta.
Se demoro aprox entre 80 y 90 s, en mi PC de 350 Mhz - 196 RAM.
173 Imagenes un total de 6.78 Megas inicial y 5.41 Megas final.
Me ahorre algunos Bytes :)
__________________
Hacerlo Bien Haciendo el Bien.
Jaso ezazu agur bero bat.
(c) 2002. Made in Chile.
Mi sistema es:
Win(98);Apache(1.3.x);PHP(4.1.1);mySQL(3.23.x)
!Califica este POSTEO¡
AngelRoyo está desconectado   Responder Citando
Antiguo 18-dic-2002, 23:41   #32 (permalink)
BVis está en el buen camino
 
Avatar de BVis
 
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Evitar que una imágen quede en la Caché del navegador.

Para evitar que una imágen quede en la caché de un navegador, sencillamente usar desde una página cualquiera:

<img src="ver_imagen.php?imagen=nombre_imagen.jpg">

Claro que nos hace falta tener el script "ver_imagen.php", debería contener esto:

Código PHP:
<?php

// Directorio donde buscaremos la imagen
$camino "./";

// Cabecera de imagen
header("Content-Type: image/jpeg"); // En este caso es jpeg, 
// pero se podría cambiar por la que nos interese.

// Cabeceras de NO CACHE
header"Expires: Mon, 20 Dec 1998 01:00:00 GMT" );
header"Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT" );
header"Cache-Control: no-cache, must-revalidate" );
header"Pragma: no-cache" );

// Leemos la imágen
@readfile($camino.$_GET['imagen']);

?>
Creo que eso es todo.
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates

Última edición por BVis; 21-dic-2002 a las 20:04.
BVis está desconectado   Responder Citando
Antiguo 19-dic-2002, 11:36   #33 (permalink)
AngelRoyo está en el buen camino
 
Avatar de AngelRoyo
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 207
mysql_fetch_assoc Menos recursos

mysql_fetch_assoc una alternativa a mysql_fetch_array.

Genera un array más pequeño, bastante util si queremos reducir consumo de recursos.

$mifila=mysql_fetch_assoc($resultado);
echo $mifila['campo'];

Solo llama por nombre de campo y no por numero de campo, he ahi su beneficio.
Saludos.
__________________
Hacerlo Bien Haciendo el Bien.
Jaso ezazu agur bero bat.
(c) 2002. Made in Chile.
Mi sistema es:
Win(98);Apache(1.3.x);PHP(4.1.1);mySQL(3.23.x)
!Califica este POSTEO¡
AngelRoyo está desconectado   Responder Citando
Antiguo 20-dic-2002, 09:25   #34 (permalink)
e-miliox está en el buen camino
 
Avatar de e-miliox
 
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Capitalizador

Tema: Manejo de Strings

Pregunta: como puedo hacer para que las primeras letras de un nombre sean puestas en mayusculas?

Respuesta:

la funcion ucwords() sirve para llevar el primer caracter de un cada palabra de un string a mayuscula (capitalizar). La puedes complementar con un strtolower() anidado para que siempre salga la primera letra en mayuscula y las demas de la palabras en minuscula

asi
Código PHP:
<?php

$varStringConFormato 
ucwords(strtolower($varStringSinFormato));

?>
si usas el nombre luis miguel MONTES BurruCHAga

saldra como resultado Luis Miguel Montes Burruchaga

(este ejemplo sale en la ayuda de php, pero lo explique un pokito mas pa que la entendieran mejor)

tambien se me ocurre otra forma utilizando ucfirst() (primer caracter de un string a mayuscula), combinado tambien con strtolower(), este ultimo metodo te podria servir mas en el caso de tratar con apellidos compuestos (de las Mercedes, del Carmen, de la Fuente , etc)... el idea consiste en separar mediante un explode() la cadena que contiene el nombre o lo que quiereas tratar...luego a cada elemento aplicas la funcion ucfirst(strtolower($elementoArray)), SI y SOLO SI no es un 'articulo' (la, las, de...)...

mas menos asi

la hice a modo de funcion :)

Código PHP:
<?
function Capitalizar($nombre)
{
    
// aca definimos un array de articulos (en minuscula)
    // aunque lo puedes definir afuera y declararlo global aca
    
$articulos = array(
    
'0' => 'a',
    
'1' => 'de',
    
'2' => 'del',
    
'3' => 'la',
    
'4' => 'los',
    
'5' => 'las',
    );

    
// explotamos el nombre
    
$palabras explode(' '$nombre);

    
// creamos la variable que contendra el nombre
    // formateado
    
$nuevoNombre '';

    
// parseamos cada palabra
    
foreach($palabras as $elemento)
    {
        
// si la palabra es un articulo
        
if(in_array(trim(strtolower($elemento)), $articulos))
            {
            
// concatenamos seguido de un espacio
            
$nuevoNombre .= strtolower($elemento)." ";
            } else {
            
// sino, es un nombre propio, por lo tanto aplicamos
            // las funciones y concatenamos seguido de un espacio
            
$nuevoNombre .= ucfirst(strtolower($elemento))." ";
            }
    }

    return 
trim($nuevoNombre);
}
?>
__________________
=PoWeReD By MySeLf!=
e-miliox está desconectado   Responder Citando
Antiguo 23-dic-2002, 20:24   #35 (permalink)
Moderador
cvander es realmente agradablecvander es realmente agradablecvander es realmente agradablecvander es realmente agradablecvander es realmente agradablecvander es realmente agradable
 
Avatar de cvander
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudadano del mundo
Mensajes: 9.350
Enviar un mensaje por MSN a cvander
Un par de funciones que me han sido muy útiles...

Tema Leyendo desde una base de datos.

Pregunta Cómo puedo mostrar los parrafos de un texto almacenado en la base de datos?

Respuesta

Código PHP:
echo nl2br($row['contenido']); 

Tema Leyendo desde una base de datos.

Pregunta Cómo puedo mostrar únicamente el primer parrafo del texto almacenado en la base de datos? (Muy útil para resumenes de artículos)
Respuesta

Código PHP:
function parrafin($string) {
$article explode("\n"$string);
$parrafo $article[0];
 return( 
$parrafo ); 
 } 

echo 
parrafin($row['contenido']); 
__________________
- Christian Van Der Henst S. [blog]
Maestros del Web
cvander esta en línea ahora   Responder Citando
Antiguo 28-dic-2002, 11:05   #36 (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.436
Tema: Uso de rand() (numeros aleatorios) - ejemplo práctico.

Pregunta: Como puedo mostrar una imagen aleatoria de una lista.?

Respuesta:

Usando la función rand() podemos hacer que PHP seleccione aleatoriamente un mumero entre un rango. Ese número lo podemos usar como indice para leer un array donde tengamos las URL's de las imagenes. Seguidamente generamos las cabeceras HTTP correspondientes y se lo enviamos al navegador.

imagen_aleatoria.php
Código PHP:
<?php
//**************************************
//*                                    *
//*        Imagenes Aleatorias         *
//*    By Cluster (clus@hotpop.com)    *
//*   28/12/2002 - Versión 1.0         *
//*                                    *
//*  Uso:                              *
//*  <img src="imagen_aleatoria.php">  *
//*                                    *
//**************************************

// Array con las imagenes (URL fisico en el servidor).
// El indice es autonumerico .. tan solo añadir o quitar entradas segun se necesite.
$imagenes[]="imagen1.jpg";
$imagenes[]="imagen2.gif";
$imagenes[]="imagen3.jpg";

// Seleccion aleatoria imagen.
$aleatoria=rand(0,count($imagenes)-1);

// Buscar la extension de la imagen
$tipo_ext=explode(".",$imagenes[$aleatoria]);
$tipo=$tipo_ext[1];

// Formar la cabecera HTTP para imagen segun su extensión

// Enviamos cabecera al navegador para avisar q va una imagen de $tipo
header("Content-type: image/$tipo");
// Le ponemos el nombre de la imagen .. Al dar a descargar aparecera con este nombre. Puede dejarse uno fijo.
header("Content-Disposition: inline; filename=".$imagenes[$aleatoria]);

// Leer la imagen de su URL y entregarla al buffer de salida
readfile ($imagenes[$aleatoria]);

?>
Su uso es bien sencillo:

1) El array $imagenes[] contiene los URL's de las imagenes (si fuera necesario usar imagenes/imagen.php o como corresponda la ruta .. indicarla). El array usa indices autonumericos .. así que no hay q preocuparse del mismo .. tan solo borren o añadan las entradas de imagenes que necesiten.

2) Su uso: <img scr="nombre_que_le_den_al_script.php"> (y ruta si fuera necesario obviamente) .. Cada vez que carge la página se seleccionará una imagen de la lista que contiene el array $imagenes.

En teoría funciona con todo tipo de imagenes (.jpg, .png, .gif ..) No así con .swf (de Flash) pues se usan otras cabeceras HTTP ..

Un saludo,

PD: Desde PHP 4.2.0 no es necesario iniciar el generador de números aleatorios. Más info en www.php.net/rand

Última edición por Cluster; 03-nov-2003 a las 07:36.
Cluster está desconectado   Responder Citando
Antiguo 29-dic-2002, 18:07   #37 (permalink)
BVis está en el buen camino
 
Avatar de BVis
 
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Sonrisa Como generar un Thumbnail (imagen pequeña) en PHP usando GD

Antes que nada avisar que se requieren las librerías GD para poder realizar los thumbnails. Y en función de la versión de GD, podremos usar una u otra función

Primero pegaré el código de una función con la que generaremos directamente un thumbnail de alta calidad.

Código PHP:
function thumbjpeg($imagen,$altura) {
     
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
     
$dir_thumb "thumbs/";
     
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
     // el thumbnail se llamaría "tn_imagen1.jpg"
     
$prefijo_thumb "tn_";

     
// Aquí tendremos el nombre de la imagen.
     
$nombre=basename($imagen);
     
// Aquí la ruta especificada para buscar la imagen.
     
$camino=dirname($imagen)."/";

     
// Intentamos crear el directorio de thumbnails, si no existiera previamente.
     
if (!file_exists($camino.$dir_thumb))
          @
mkdir ($camino.$dir_thumb0777) or die("No se ha podido crear el directorio ".$camino.$dir_thumb);

     
// Aquí comprovamos que la imagen que queremos crear no exista previamente
     
if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$nombre)) {
          echo 
$camino.$dir_thumb.$prefijo_thumb.$nombre." NO existía<br>\n";
          
$img = @imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");

          
// miramos el tamaño de la imagen original...
          
$datos getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n");

          
// intentamos escalar la imagen original a la medida que nos interesa
          
$ratio = ($datos[1] / $altura);
          
$anchura round($datos[0] / $ratio);

          
// esta será la nueva imagen reescalada
          
$thumb imagecreatetruecolor($anchura,$altura);

          
// con esta función la reescalamos
          
imagecopyresampled ($thumb$img0000$anchura$altura$datos[0], $datos[1]);

          
// voilà la salvamos con el nombre y en el lugar que nos interesa.
          
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
     }

Para llamar a la función sencillamente hacer:

Código PHP:
thumbjpeg($imagen125); 
En este caso, '$imagen', es la imagen que queremos reducir, y '125', es la altura en píxeles que queremos que tenga la imagen reducida, de modo que el ancho quede proporcionado respecto a la imagen original.

Con la instrucción “or die()” se mostrará en pantalla el mensaje entrecomillado solo en el caso de que fallara la primera sentencia de la línea.

NOTAS:

Si en lugar de GD2 disponemos de GD1, no podremos utilizar la función imagecopyresampled() y deberíamos conformarnos con la función imagecopyresized() , que utiliza los mismos parámetros, lo malo es que ésta última da como resultado una imagen de calidad más pobre. A cambio, es mucho más rápida que la anterior.

Así si tenemos GD2, podemos usar la que más nos interese, si queremos CALIDAD y no nos importa el número de ciclos consumidos en el servidor,

imagecopyresampled();

en caso contrario:

imagecopyresized();

Si lo que queremos es crear imágenes "al vuelo", sin guardarlas en ningún archivo (cosa poco recomendable si usamos la función de más calidad), el segundo parámetro de la función imagejpeg() no se debe de poner, quedando la llamada en el scritp que hay más arriba:

Código PHP:
imagejpeg($thumb); 
Bueno, démonos cuenta que este script solo sirve para reducir imágenes de tipo JPEG, no de otro, para otros formatos, tan solo habría que cambiar un par de funciones por las correspondientes en los formatos que nos interesen.

Ejemplo:

imagecreatefromjpeg() por imagecreatefrompng() o imagecreatefromwbmp() o etc.

y

imagejpeg() por imagepng() o imagewbmp() o etc.

Basilio Vera.
Cualquier pregunta: manualesvarios@lycos.es
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates

Última edición por BVis; 09-jul-2003 a las 15:16.
BVis está desconectado   Responder Citando
Antiguo 10-ene-2003, 18:54   #38 (permalink)
BooMeranGz está en el buen camino
 
Avatar de BooMeranGz
 
Fecha de Ingreso: noviembre-2002
Mensajes: 318
Enviar un mensaje por ICQ a BooMeranGz
De acuerdo Creando VirtualHost(s) y Dominios Virtuales en mi PC

Tema:
VirtualHost y Dominio Virtual

Pregunta:
¿Como trabajo con VirtualHost(s) y Dominios Virtuales en mi PC?

Respuesta:
Podemos tranquilamente usar dominios virtuales para llamar a nuestros proyectos directamente como http://miproyecto.com/ y no como http://127.0.0.22/ (o cualquier otra IP asignada).

Vamos a ver como:

Creando servidores virtuales con dominios virtuales para poder llamarlos desde nuestra misma PC:

Requisitos:
* Windows 98/ME/2000/NT/XP
* Tener Apache instalado como servidor
* Tener al menos PHP para trabajar (y probar)

Supongamos que vamos a trabajar con un nuevo web site en PHP cuyo dominio real es sitio.com y que tenemos el htdocs en el disco C:


Primer paso:

Creamos en nuestra carpeta C:\htdocs un directorio sitio1.com
Nos quedará esto: C:\htdocs\sitio1.com

En ese directorio debemos colocar los files que usemos para hacer el web site (todos).

En este ejemplo, abrimos el Block de notas y escribimos:

Código PHP:
<?
phpinfo
();
?>


Lo salvamos con el nombre de prueba.php en el directorio ..\sitio1.com\


Segundo Paso:

Ahora configuramos un VirtualHost para Apache:

Buscamos el file httpd.conf en dónde tenemos instalado Apache (dentro de la carpeta de Apache hay una que se llama "conf", este file está dentro de ella)

Lo abrimos con el Block de notas y nos vamos al final del mismo

Nos encontraremos con algo así:

Código:
#
# Use name-based virtual hosting.
#
#NameVirtualHost *

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
Nosotros agregaremos nuestro VirtualHost aqui debajo y de esta manera:

Código:
## agregamos sitio1.com ###################
<VirtualHost 127.0.0.2>
 ServerAdmin sitio1@algo.com
 DocumentRoot C:/htdocs/sitio1.com
 ServerName sitio1.com
 ErrorLog logs/sitio1.com-error_log
 TransferLog logs/sitio1.com-access_log
</VirtualHost>


Salvamos el file httpd.conf y reiniciamos Apache.

Hasta aqui, si cargamos el navegador y ponemos:
http://127.0.0.2/prueba.php (enter), veremos la info de php en el mismo.

Ya tenemos configurado el VirtualHost con la IP deseada.


Tercer paso:

Vamos a configurar el dominio virtual para esa IP:

Vamos al directorio: C:\WINDOWS\SYSTEM32\DRIVERS\ETC, allí encontramos varios files, pero nos interesan los siguientes:
HOSTS y LMHOSTS.SAM

Renombramos HOSTS como HOSTS.SAM

Abrimos el Block de notas y escribimos:

127.0.0.1 localhost
127.0.0.2 sitio1.com


Lo salvamos en ese mismo directorio como HOSTS (sin extensión)

Nuevamente abrimos el Block de notas y escribimos:

127.0.0.1 localhost #PRE
127.0.0.2 sitio1.com #PRE


Lo salvamos en ese mismo directorio como LMHOSTS (sin extensión)

Copiamos HOSTS y LMHOSTS de C:\WINDOWS\SYSTEM32\DRIVERS\ETC\ a C:\WINDOWS\

Listo, hemos configurado el dominio virtual sitio1.com

Para probarlo, cargamos el navegador y ponemos:
http://sitio1.com/prueba.php (enter), veremos nuevamente la info de php en el mismo.

Nota final:

De esta manera podemos llamar a nuestros proyectos en php/cgi/etc. con un nombre de dominio virtual o con un subdominio (podria ser mi.sitio.com) y no complicarnos
con las IP que si tenemos varios proyectos se nos olvidan.

De igual manera recuerden que si agregan mas proyectos (por ejemplo otrositio.com) deberán agregar otro VirtualHost en el file \Apache\conf\httpd.conf, al final del que ya tenemos con otra IP (por ej.: 127.0.0.3) y luego agregar estos datos en los files HOSTS y LMHOST que tenemos en C:\WINDOWS\

Por último: Recuerden NO configurar un dominio virtual con un nombre verdadero que ya esté ruteado en internet, ya que si lo hacen cuando naveguen y quieran
ir al sitio real, no podrán, a menos que estopeen Apache y renombren los files HOSTS y LMHOST.
Recomiendo en esos casos que creen subdominios virtuales, por ejemplo si trabajan con yahoo.com (ja ja por un decir...), hagan un dominio virtual como miweb.yaoho.com.

Salu2.
BooMeranGz está desconectado   Responder Citando
Antiguo 13-ene-2003, 11:03   #39 (permalink)
BooMeranGz está en el buen camino
 
Avatar de BooMeranGz
 
Fecha de Ingreso: noviembre-2002
Mensajes: 318
Enviar un mensaje por ICQ a BooMeranGz
De acuerdo PHP como Módulo de Apache bajo Windows

Tema:
PHP como Módulo de Apache bajo Windows y no como un CGI.

Pregunta:
¿Como instalo PHP como Módulo de Apache en Windows?

Respuesta:
Trataré de explicar brevemente como configurar PHP4 como módulo del servidor Apache bajo Windows:

En mi caso, he instalado:

Apache 1.3.26
PHP 4.1.2


en los siguientes directorios, Uds. deberán guiarse por sus instalaciones:

c:\www\inetpub\Apache
c:\www\inetpub\php


y el htdocs lo tengo en otro disco:

D:\www\htdocs

¡¡¡OJO!!!:
Para que cada cambio funcione, deben hacer un Restart de Apache.

Pasos a seguir:

-Editar el file \Apache\conf\httpd.conf

-Buscar #ServerName y modificarla así:
ServerName http://

-Buscar DocumentRoot y modificarla así:
DocumentRoot "D:/www/htdocs"

-Buscar ScriptAlias /cgi-bin/ y modificarla así:
ScriptAlias /cgi-bin/ "C:/www/inetpub/Apache/cgi-bin/"

-Debajo de esa línea agregar:
ScriptAlias /php/ "C:/www/inetpub/php/"

-Buscar la sección Addtype application/ y modificarla o agregarle estas líneas:
Addtype application/x-httpd-php .php
Addtype application/x-httpd-php .php3
Addtype application/x-httpd-php .php4
Addtype application/x-httpd-php .phtml


-Buscar la sección Actions y agregar:
Action application/x-httpd-php "/www/inetpub/php/php.exe"


- Buscar DirectoryIndex index.html y modificarla así:
DirectoryIndex index.html index.htm index.php index.php3 index.shtml

Este paso lo hacen solo si Apache les da error al testearlo, algunas versiones lo necesitan
-----------------------------------------------------------------------
-Buscar la sección LoadModule y agregar:
LoadModule php4_module c:/www/inetpub/php/sapi/php4apache.dll
-Buscar la sección AddModule y agregar al final:
AddModule mod_php4.c
-----------------------------------------------------------------------


-Guardar el file \Apache\conf\httpd.conf

-> En win9x/Me, copiar el file: \php\php4ts.dll al directorio x:\windows\system
-> En win NT/2k/XP, copiar el file: \php\php4ts.dll al directorio x:\windows\system32

-En el directorio \php\, buscar el file \php\php.ini-dist, renombrarlo como php.ini
y moverlo así:
-> En win9x/Me, al directorio x:\windows\system
-> En win NT/2k/XP, al directorio x:\windows\system32


Testeamos la configuración de Apache:

Ahora, vamos a menu inicio -> Apache HTTP Server -> Configure Apache Server -> Test Configuration
Si la ventana que se abre nos da:
bla, bla, Syntax OK, ya podemos probar PHP con Apache,
sinó, deberán revisar otra vez los pasos y hacer las modificaciones necesarias.

* Para probar Apache:
-Vamos a menu inicio -> Apache HTTP Server -> Control Apache Server -> Start

-Ejecutamos el navegador y escribimos esta URL: http://localhost/ <enter>
Si aparece la página de bienvenida de Apache, está bien configurado.

* Para probar PHP4:
-Vamos a menu inicio -> Apache HTTP Server -> Control Apache Server -> Start

-Con el Block de notas escribimos:

Código PHP:
<? echo "Hola, mi primera página PHP"?>
-Y lo guardamos como mi_prog.php en el directorio: /htdocs/. (En texto plano. Todos
los programas deben guardarse aqui o en subdirectorios dentro de este).

-Ejecutamos el navegador y escribimos esta URL: http://localhost/mi_prog.php <enter>

-Si aparece el texto Hola, mi primera página PHP, ¡PHP4 está funcionando!


* Para saber si PHP4 funciona como Módulo de Apache o como CGI:

-Vamos a menu inicio -> Apache HTTP Server -> Control Apache Server -> Start

-Con el Block de notas escribimos:

Código PHP:
<? phpinfo(); ?>
-Y lo guardamos como info.php en el directorio: /htdocs/

-Ejecutamos el navegador y escribimos esta URL: http://localhost/info.php <enter>

-Debe aparecer un resúmen de la configuración de PHP4 bajo Apache, en el primer recuadro buscamos Server API

-> Si a la derecha dice CGI, PHP4 está funcionando como un CGI-BIN (add-on)
-> Si dice Apache, está funcionando como módulo directo del servidor Apache


Este ejemplo utiliza variables globales y solo funciona si PHP4 es un módulo de Apache:

-Con el Block de notas, escribimos este programa y lo guardamos como: /Apache/htdocs/prueba.php

Código PHP:
<?
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="ACCESO RESTRINGIDO: Ingrese sus datos."');
header('HTTP/1.0 401 Unauthorized');
echo 
'AUTORIZACION REQUERIDA.';
exit;
}
else {
echo 
"Su nombre de usuario es: $PHP_AUTH_USER","<br>";
echo 
"Su contraseña es: $PHP_AUTH_PW","<br>";
}
?>
-En el navegador probamos: http://localhost/prueba.php <enter>

-Tambien pueden utilizar en vez de http://localhost, http://127.0.0.1


Esto es un agregado para los que tienen Windows XP:

* Resolver el problema de las sessions si no funcionan correctamente:

Lo único que tiene que hacer es crear un dir tmp en la raíz del HD primario (o sea, por ej:
C:\tmp ) y modificar en el php.ini la linea (en el root de c:\windows):

session.save_path= C:\tmp

@J@:
Sólo funciona si el TMP es creado en el directorio raiz del disco de arranque.

Salu2.
BooMeranGz está desconectado   Responder Citando
Antiguo 14-ene-2003, 13:33   #40 (permalink)
BooMeranGz está en el buen camino
 
Avatar de BooMeranGz
 
Fecha de Ingreso: noviembre-2002
Mensajes: 318
Enviar un mensaje por ICQ a BooMeranGz
De acuerdo Tools para aprovechar PHP bajo Apache en windows

Tema: Tools para aprovechar PHP bajo Apache en windows
Pregunta: ¿Donde consigo buenas utilidades para Apache/PHP?
Respuesta: Aquí, sigue estos links :)

Algunos recursos para trabajar con PHP:

A continuación, listaré algunos recursos (tools) que nos sirven para hacernos cada vez más
fácil la tarea de trabajar bajo Apache en windows con PHP (mysql, perl y otros)

A medida que encuentre otros útiles, los iré agregando con fecha. De igual manera si alguien encuentra algun tool que crea puede ir aqui, que me avise a BooMeranGz@TodoLinux.Com y lo vemos.

PHP Coder R2 Final Prerelease 3 (Agregado el 15-01-2003)
* Excelente editor de programas PHP con ejecución de los mismos teniendo instalado solo PHP4
home: www.phpide.de/programs.php

Beautify PHP v0.4.6, 02.10.2002
* Para limpiar y reorganizar el código PHP (saca lineas en blanco también)
home: http://www.bierkandt.org/beautify/
demo online: http://www.bierkandt.org/beautify/beautify_php.php
descarga: http://twtelecom.dl.sourceforge.net/..._php_0.4.6.zip

PHPConfig (GUI)
* Configura PHP desde win de la manrea más fácil, mediante una ventana :)
home: http://www.analogx.com/contents/down...rk/phpconf.htm
descarga: http://www.analogx.com/files/phpconfi.exe

PHP Debugger (DBG)
* ¿Necesitan revisar el código mientras se ejecuta y ver los posibles errores?
home: http://dd.cron.ru/dbg/

Turck MMCache for PHP 2.3.1 2003-01-12
* Acelerador de caché de ejecución de scripts PHP
home: http://www.turcksoft.com/en/e_mmc.htm
descarga: http://easynews.dl.sourceforge.net/s...e-2.3.1.tar.gz

Salu2.

Última edición por jam1138; 17-oct-2005 a las 06:53.
BooMeranGz está desconectado   Responder Citando
Antiguo 17-ene-2003, 15:06   #41 (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.436
Tema: Errores / configuración

Pregunta: Al intentar ejecutar PHP me da este error: "Security Alert! The PHP CGI cannot be accessed directly."

Respuesta:

En instalaciones de PHP como CGI, caso de PHP bajo PWS, IIS, OmniHTTPd y varios mas incluido Apache si es como CGI .. Suele presentar este error de configuración:

Security Alert! The PHP CGI cannot be accessed directly.
This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.


La solución está en configurar php.ini con la siguiente directiva:

Directiva php.ini:
; cgi.force_redirect = 1

dejarlo a:
cgi.force_redirect = 0

Reiniciar el servidor HTTP q se use y listo.

Un saludo,
Cluster está desconectado   Responder Citando