![]() |
FAQ's de PHP Encuentras el FAQ en: http://www.forosdelweb.com/wiki/PHP Categorías:
Update marzo 2009: Estamos probando el funcionamiento del FAQ de PHP desde el Wiki del foro. |
Tema: Para Novatos con PHP Créditos: Cluster, BooMeranGz, El_Metallick Pregunta: ¿Cómo puedo comenzar con PHP? ¿Dónde puedo obtener información/software sobre PHP? Respuesta: Página web oficial de PHP: (la madre del cordero, es bueno visitarla de vez en cuando y ver los "change-log" y demas informacíon de las nuevas revisiones de PHP .. )Manual en línea de PHP:
Nota: Lamentablemente las versiones en castellano no las actualizan al mismo tiempo q la versión en ingles .. así q lo mejor suele ser ver en ingles el tema y luego en castellano .. si parece ser q es lo mismo .. pues te lo lees en castellano si quieres .. Pero suele ser mas completo en Ingles.Pre-instaladores WAPM (Windows+Apache+PHP+Mysql):
Guía de Instalación manual: Tutoriales en castellano:
Tutoriales y artículos sobre PHP (en ingles):
Recursos (Scripts/código):
Editores de Código PHP: De interes: Sitio especializado en pruevas a aplicaciones PHP comunes .. avisan de vulnerabilidades .. Está bueno apuntarse a su lista de correo .. sobre todo si sueles usar aplicaciones PHP como; PHP-Nuke, phpbb, etc ... http://www.phpadvisory.com/ Seguridad bajo PHP, prevenir SQL injection .. Cross-Site Scripting .. asegurar sesiones .. etc. (gracias a "fullmental") http://phpsec.org/projects/guide/ |
Estoy intentando recoger unas variables que paso de un script a otro y no me llegan. Tema: Configuración. Pregunta: Estoy intentando recoger unas variables que paso de un script a otro y no me llegan .. ¿que puede ser? Respuesta: Desde la versión 4.2.x en adelante, los chicos de PHP.net dejaron la directiva register_globals a OFF por defecto (ver php.ini). Edita tu php.ini .. ahi veras la directiva: register_globals = OFF .. pasalo a ON para trabajar de la forma habitual con tus variables que envias de formularios/URL's entre otras. Un saludo, |
register_globals .. ON u OFF? variables Globales? Tema: Seguridad/buenas maneras xD Pregunta: Que diferencias hay entre usar para pasar variables de un script a otro: $variable_nombre, $HTTP_xxx_VARS['variable_nombre'], $_XXX['variable_nombre']. Respuesta: Cuando recogemos variables via $variable, estamos asumiendo que son Globales, es decir q da igual por el metodo/tipo de envio que se use (en caso de formularios es lo q se indica en el method= .. si entran por el URL es GET .. si son cookies, sessiones, variables de servidor ... etc no distinguimos.). Con array $HTTP_xxx_VARS[] (donde xxx es el metodo/tipo: GET, POST, SERVER, COOKIE, SESSION, FILES .. etc) filtramos las variables que recogemos segun su metodo de envio esperado. Es decir, no aceptamos nada mas q lo q esperamos. Si enviamos variables por metodo POST las recogeriamos: $HTTP_POST_VARS['variable'] Y no aceptariamos ninguna variable (con nombre "variable") que venga por GET .. ademas de distinguirla con respecto a si es una variable de session, cookie, file .. etc. Este array $HTTP_xxx_VARS está disponible desde las versiones 4.0.x en adelante y hoy por hoy (ver fecha de la faq) estan habilitadas y se pueden usar .. auque "dicen" q a futuro desaparecera en nuevas versiones de PHP. El array "superglobal" ($_GET, $_POST, $_SERVER .. etc) que denomina PHP, está disponible desde la versión 4.1.x en adelante y es a futuro lo q deberiamos usar a la hora de recoger nuestras variables de formularios y demas medios. Ademas $_xxx te permite trabajar sin problemas con servidores con la directiva register_globals a ON u a OFF. Su forma de trabajar seria igual q para $HTTP_xxx_VARS .. solo q el array "superglobal" ahora es "global" es decir .. si llamanos en una funcion a $_GET por ejemplo .. no debemos de declararlo como global $_GET. mas info Variables predefinidas de PHP: http://www.php.net/manual/es/languag...predefined.php Un saludo, |
¿Que es una "sesion" de PHP? Tema: Sesiones Pregunta: ¿Que es una "sesion" de PHP? Respuesta: Básicamente es una forma de almacenar variables (sean simples, arrays e incluso objetos) -temporalmente- en el servidor. No así como las cookies q se almacenan en el cliente (PC del usuario). Estas variables se guardan en el servidor en un fichero que se crea en el momento de que almacenamos una variable. La ubicación la determina la directiva de php.ini session.save_paht. El nombre que se le da a ese fichero creado es: sess_asdf234arfae34q (similar) donde el "código" que hay despues de _ es lo que denominan "SID" Identificador Unico de Sessión. Lea también una versión más completa al respecto sobre Sesiones, en esta FAQ: http://www.forosdelweb.com/showpost....&postcount=129 |
Como guardo y leo una variable de sesión Tema: Sesiones Pregunta: Como guardo y leo una variable de sesión. Respuesta: Para PHP > 4.1.x y register_globals a ON o a OFF ... Preferentemente usar este método. (en el ejemplo se asume que se propaga el SID automático ... ese parametro lo define la directiva de php.ini session.use_trans_sid = 1 (1 activado, 0 desactivado .. propagación manual).) guarda_variable_session.php Código PHP: lee_variable_session.php Código PHP: guarda_variable_session.php Código PHP: Código PHP: http://www.forosdelweb.com/showpost....&postcount=129 |
Esta es conocida Tema: Instalación Pregunta: No puedo instalar PHP como módulo de Apache, por qué? Respuesta: En plataformas Windows , los directorios son referidos con una barra invertida "\" (ASCII 92), es por eso que en algunos archivos de configuración deben reemplazarse las barras comunes "/" éstas. El archivo de instalación de PHP nos indica que debemos agregar la línea: Código: LoadModule php4_module C:/php/sapi/php4apache.dllCódigo: LoadModule php4_module C:\php\sapi\php4apache.dll |
Tema Mostrar datos de BD Pregunta ¿Cómo distribuir los resultados de un query en columnas? Respuesta Usando la función módulo de PHP. Código de ejemplo con comentarios: Código PHP: |
Tema Formato de número Pregunta ¿Cómo puedo formatear un número? Respuesta Con number_format() Sintaxis: number_format(numero, decimales, separador_decimal, separador_miles) Ejemplo: $numero = 12345.2534 $number = number_format($numero, 2); // $number = 12345.25$number = number_format($numero, 0); // $number = 12345 $number = number_format($numero, 2, ".", ","); // $number = 12,345.25 $number = number_format($numero, 4, ",", "."); // $number = 12.345,2534 |
Tema: SEGURIDAD Pregunta: Autentificar usuarios en base de datos Respuesta: Puedes hacer lo siguiente:
Nota: Este tipo de autentificación es via HTTP y funciona bajo PHP instalado como Módulo de Apache y no como CGI |
TEMA: Manejo de cadenas PREGUNTA: PHP no me respeta los saltos de linea de mi texto. RESPUESTA: Si tu texto proviene de un campo <textarea> de un formulario o de un fichero, los saltos de linea vendran como caracteres \n. Y como el texto lo quieres mostrar dentro de una pagina HTML, debes cambiar esos caracteres por la cadena <br>, que es el salto de linea de HTML. La forma mas sencilla de hacerlo es con la funcion nl2br(). Su uso es muy sencillo: Código PHP: |
Tema: Archivos Pregunta: ¿Cómo puedo subir archivos a través de un formulario? Respuesta: Con el siguiente ejemplo. Código PHP: El código sube un archivo via HTTP POST, este se guarda automaticamente con un nombre y en una carpeta temporales del servidor mientras corre el codigo, despues el mismo servidor lo borra (por seguridad). La función is_uploaded_file() verifica que este procedimiento haya sido exitoso. Posteriormente el archivo es movido a su posición final con la función move_uploaded_file(). Notas:
Código PHP:
Código PHP:
Espero les sea de utilidad. :adios: |
Las clásicas... Tema: Como envio un email en formato HTML Respuesta: Código PHP: http://css-discuss.incutio.com/?page=StyleInEmail (grácias a uamistad por el link) |
Mas clasicas Tema: Archivos Pregunta: Como genero un reporte en EXCEL a partir de una tabla Respuesta: Solo necesitas grabar una Tabla HTML y salvarla con extension XLS. EXCEL reconocera automaticamente el formato. Ejemplo: Código PHP: |
Y mas... Tema: Conexion Base de Datos Pregunta: No se como trabajar con PHP y MySQL Respuesta: Código PHP: |
TEMA: Encuestas en php y mysql PREGUNTA: Como hacer una encuesta en php RESPUESTA: Para hacer una encuesta con sus resultados graficados debes crear un tabla con los siguients campos (optativos) 1.- Idencuesta: identificador de cada encuesta 2.- pregunta:campo que almacena las pregunta 3.- respuesta1: campo que almacenara la respuesta a tu encuesta 4.- respuesta2:lo mismo que lo anterior esto dependera de la catidad de respuesta que tenga tu encuesta (por lo general 3 o 4) 5.- valor1: este campo almacena la cantidad de respuestas a cada respuesta o sea valor1 guardara todos los clic o respuestas que den en respuesta1. 6.- total:almacena el total de la suma de los campos valor1, valor2 o los que tengas 7.-Crea una imagen pequeña de uno 4x9 gif o cualquier formato para que te muestre los resultados graficados ****ENCUESTA:PHP**** Código PHP: Código PHP: Gracias NOTA: .. la llamada a la funcion javascript window.open( .. parametros) .. Ha de estar en una sola linea y sin espacios entre los parametros, pese q si hacen un cut-and-paste veran esos saltos de línea y algun espacio por medio. |
Tema: Reconocer características del visitante Pregunta: Tengo una web en varios idiomas, ¿Cómo puedo mostrar a mis visitantes la que más se ajuste a sus preferencias? Respuesta: Usando la cabecera HTTP_ACCEPT_LANGUAGE que nos enviará su navegador al pedirnos que le mostremos la web. Para leer correctamente esa cabecera y no quedarnos sólo con el primer valor que contenga, usaremos el siguiente script: Código PHP: |
Tema: Obtener Valores Pregunta: ¿Como obtengo la fecha del servidor? Respuesta: Código PHP: - como obtengo el mes? - y el dia? - y el año? :-D |
Tema: Leer ficheros Pregunta: ¿Cómo puedo ver el código fuente de otra página? Respuesta: Usando show_source(). El siguiente ejemplo presenta un formulario que se ejecuta en la misma página. Si hemos especificado ya el archivo, nos muestra el código. Si no hemos especificado el archivo, nos muestra el formulario. Código PHP: |
Tema: Leer ficheros Pregunta: ¿Cómo leo los metatags de una página web? Respuesta: Usando get_meta_tags() El siguiente código es una modificación del anterior. Sólo se ha incluído la parte de resolver $arxiu, por lo que se debe llamar desde un formulario con <input type="text" name="arxiu"> o pasándole a la URL ?arxiu=http://direccion Código PHP: |
Tema: Manejo arrays (arreglos, matrices ..) Pregunta: Como paso un array de un script.php a otro.php Respuesta: Hay que serializar el array para enviarlo por el URL o en un formulario en un campo "hidden" ... Y, en el script que reciba el array debera de des-serializarlo. A todo esto, es recomendable eliminar los slahes (\ barra invertida) que se generan si usamos magic_quotes_gpc a ON y codificar las variables con urlencode() para eviatar problemas con cartacteres en nuestros arrays tipo: puntos, comillas y otros caracteres. enviar_array.php Código PHP: Código PHP: Si usasemos un formulario para enviar nuestra array .. solo tendriamos que usar un campo hidden común de formulario y alplicar la funcion array_envia(). Un saludo, |
SMTP utilizando Sockets en PHP Estuve probando cómo hacer para autenticar usuario SMTP por Sockets y este código me ha dado buenos resultados: :-D :-D /////////////// Archivo mail.php ///////////////////// set_time_limit(0); include("cmailer.php"); $m = new cMailer(); $m->AgregaDireccion("[email protected]"); $m->AgregaDireccion("[email protected]"); $m->AgregaRemitente("[email protected]"); $m->AgregaAsunto("Mensaje de prueba"); $m->AgregaMensaje("Este es un sencillo mensaje de prueba configurando Username y Password"); $m->AgregaServidor("smtp.isp.com"); $m->AgregaNombreUsuario("nombreusuario"); $m->AgregaContrasenya("contraseña"); $m->Autenticar(); $m->Enviar(); ?> /////////////////// Archivo cmailer.php////////////////////////////// class cMailer { var $_Direcciones; var $_cantidadDirecciones = 0; var $_ConexionSMTP; var $_Remitente; var $_ServidorSMTP; var $_Asunto = ""; var $_Mensaje; var $_NombreUsuario; var $_Contrasenya; var $_Autenticar = 0; function cMailer() { } function AgregaNombreUsuario($NombreUsuario) { $this->_NombreUsuario = $NombreUsuario; } function AgregaContrasenya($Contrasenya) { $this->_Contrasenya = $Contrasenya; } function Autenticar() { $this->_Autenticar = 1; } function NoAutenticar() { $this->_Autenticar = 0; } function AgregaDireccion($Direccion) { $this->_Direcciones[$this->_cantidadDirecciones] = $Direccion; $this->_cantidadDirecciones++; } function AgregaRemitente($Remitente) { $this->_Remitente = $Remitente; } function AgregaMensaje($Mensaje) { $this->_Mensaje = $Mensaje; } function AgregaAsunto($Asunto) { $this->_Asunto = $Asunto; } function Enviar() { $cadenaEHLO = "EHLO ".$this->_ServidorSMTP."\r\n"; fputs($this->_ConexionSMTP, $cadenaEHLO); if($this->_Autenticar == 1) { $cadenaAUTH = "AUTH LOGIN\r\n"; fputs($this->_ConexionSMTP, $cadenaAUTH); $cadenaNombreUsuario = base64_encode($this->_NombreUsuario)."\r\n"; fputs($this->_ConexionSMTP, $cadenaNombreUsuario); $cadenaContrasenya = base64_encode($this->_Contrasenya)."\r\n"; fputs($this->_ConexionSMTP, $cadenaContrasenya); } $cadenaMAIL = "MAIL FROM: ".$this->_Remitente."\r\n"; fputs($this->_ConexionSMTP, $cadenaMAIL); for($i = 0; $i < $this->_cantidadDirecciones; $i++) { $cadenaRCPT .= "RCPT TO: ".$this->_Direcciones[$i]."\r\n"; } $cadenaRCPT .= "\r\n"; fputs($this->_ConexionSMTP, $cadenaRCPT); $cadenaDATA1 = "DATA\r\n"; fputs($this->_ConexionSMTP, $cadenaDATA1); if($this->_Asunto != "") { $cadenaSubject = "Subject: ".$this->_Asunto."\r\n\r\n"; fputs($this->_ConexionSMTP, $cadenaSubject); } $cadenaDATA2 = $this->_Mensaje."\r\n.\r\n"; fputs($this->_ConexionSMTP, $cadenaDATA2); fputs($this->_ConexionSMTP, "QUIT\r\n"); fclose($this->_ConexionSMTP); } function AgregaServidor($Servidor, $Puerto = 25) { $this->_ConexionSMTP = fsockopen("$Servidor", "$Puerto", $e, $em, 5) or die("No puedo abrir el socket"); echo fgets($this->_ConexionSMTP, 4096)." \n"; $this->_ServidorSMTP = $Servidor; } } ?> |
Tema: Creacion de foros con PHP y MySQL Pregunta:Como pyuedo crear un foro en PHP y MySQL Respuesta Hace mucho tiempo me pidieron que pusiera el tutorial en una web, aqui la tienen: http://www.zonaphp.com/index.php?mod...ion=leer&id=23 Editado por josemi: Actualizado el link |
Tema: Variables Pregunta: ¿Por qué pierde el valor mi variable dentro de mi función? Respuesta: Para poder acceder y modificar el valor de una variable definida fuera de una función hay que referenciarla dentro de la función con global. Por ejemplo: Código PHP: |
Tema: Web Modulares Pregunta: Como hago esas páginas web que las secciones q incluyen son del tipo index.php?id=2 Respuesta: La filosofía de ese tipo de webs es en usar la funcion include() (o require()) para incluir (valga la rebundancia) el código que pertenezca a ese identificativo .. en nuestro ejemplo una variable llamada id .. como podria ser cualquier otro nombre. La decisión de que página ha de cargar se puede hacer de varias formas .. siendo la mas común usar el condicional: switch .. Código PHP: nombrequeledemos.php?id=nº (podriamos usar identificativos no numericos .. tan solo usar case tipo: case "nombre" ... Ahora, El sistema es mas versatil .. no se trata solo de "redirecionar" (si usamos include() ) .. sino de Incluir dentro de otro "armazón" (plantilla-template) base que usemos .. por ejemplo: Código PHP: |
Comprimir archivo a .gz Faltaba Yo :-0 TEMA: COMPRIMIR A .GZ DESARROLO: Código PHP: 1. Abrir en modo binario(lectura), acceder a la data y cerrar. 2. Abrir en modo binario (escritura), comprimir , escribir y cerrar Nota: Deve estar instalada la libreria ZLIB. ver manual :) Saludos |
Tema: Presentación Pregunta: ¿Cómo puedo mostrar código HTML coloreado? Respuesta: PHP incluye las funciones highlight_string() y show_source() para resaltar el código PHP usando colores que facilitan la comprensión del código. Ahora bien, es necesario que el código esté emmarcado por etiquetas PHP válidas como <? ?> o <?php ?>. Para usar estas funciones para colorear un código HTML normal, usaremos la siguiente estrategia: Código PHP: |
Tema: Configuracion. Pregunta: Necesito cmabiar la directiva register_global a On y no tengo acceso al archivo php.ini???. Reapuesta: Esto unicamente funciona en Apache con php como modulo del mismo y que el usuario tenga la directiva AllowOverride seteada a all o a Options. Si las condiones se cumplen, creen un archivo .htacces que contanga la siguiente linea. php_flag register_globals On Esto es muy util cuando tenemos que dejar corriendo apliaciones que no estan programadas para usar las variables super globales $_*, en lo que se lleva acabo su pronta actualizacion. |
Tema: Trucos. Pregunta: ¿Como hago para alternar los colores de las filas de una tabla, como en los foros? Respuestas: Con este sencillo codigo: Código PHP: |
Tema: Trucos Pregunta: Muy bonito lo de alternar dos colores, pero ¿podrias hacerlo para rotar cuatro colores? Respuesta: Pues claro, con ayuda de nuestros amigos los arrays: Código PHP: |
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: 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 :) |
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: |
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. |
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: 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: |
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: 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: |
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: 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 |
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: Código PHP: 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: Ejemplo: imagecreatefromjpeg() por imagecreatefrompng() o imagecreatefromwbmp() o etc. y imagejpeg() por imagepng() o imagewbmp() o etc. Basilio Vera. Cualquier pregunta: [email protected] |
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: 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: #Código: ## agregamos sitio1.com ###################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. |
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: 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: -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: -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. |
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 [email protected] 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. |
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, |
Tema: Funciones encriptación/desencriptación para PHP. Pregunta: ¿Como puedo usar las funciones de 'mcrypt' para PHP bajo Windows? Respuesta: Su instalación: * Sustituir la libreria php_mcrypt.dll original de php-4.3.0-Win\extensions por la que incluye este .zip * Copiar libmcrypt.dll hacia el c:\windows\system * php.ini editarlo: ; extensions=php_mcrypt.dll dejarlo en (para activarla): extensions=php_mcrypt.dll Una vez instalado .. ejecutar el servidor HTTP que usemos (o reiniciarlo si lo teniamos en marcha) .. Hacer un <? phpinfo(); ?> para comprobar q este todo correcto .. Para testearlo con ejemplos de código: http://www.php.net/manual/en/ref.mcrypt.php Testeado en PHP 4.3.0 bajo Windows98 como Módulo de Apache. Un saludo, |
Tema: Usuarios activos Pregunta: ¿Cómo sé los usuarios activos que hay en mi web? Respuesta: Tu servidor debe admitir funciones de lectura y escritura en archivos de texto. Empezamos creando un archivo usuarios.txt EN BLANCO. A continuación creamos otro archivo activos.php cuyo contenido sea: Código PHP: Código PHP: ¡¡¡Espero que les sea de ayuda!!! :-D Saludos :policia: |
Manejo de fechas Tema: Manejo de fechas. Pregunta: Conversión formato fecha tipo Año-Semana-Dia semana a formato standar dd/mm/aaaa Respuesta: Tengo fechas en el siguiente formato: AAAASSD donde: AAAA = año 2003 SS = semana 04 D = dia de la semana 3 (miercoles) Necesito convertirlas a formato común: 2003043 --> 22/01/2003 Código PHP: |
Tema: Descargas - Downloads de archivos. Pregunta: ¿Como puedo hacer descargas con opción 'Resume'? Créditos: MartinAcevedo Respuesta: Nota: Solo funciona bajo PHP como Módulo de Apache .. Código PHP: |
Tema: Manejo de Fechas y formularios HTML. Pregunta: Como obener la fecha actual en listas desplegables HTML con la fecha de hoy seleccionada. Respuesta: Código PHP: |
Tema: Consultas SQL Pregunta: Como se cuantos registros tengo en una tabla? Respuesta: Facil utilizando mysql_num_rows(); Código PHP: Saludos :arriba: |
Tema: Cookies Pregunta: Como creo, leo y destruyo una cookie? Repuesta: Para crear una cookie usar setcookie("nombre","valor","tiempo"); Para leertla $HTTP_COOKIE_VARS["nombre_cookie"] Para destuirla setcookie("nombre","valor",time()-3600); Código PHP: Código PHP: Saludos :arriba: |
Tema: SESSIONS Pregunta: Como manejo el SID de una session en la url? Repuesta: Para no tener que programar manualmente el PHPSESID en nuestros script y no preocuparnos por que el cliente no acepte las cookies de nuesta session deberemos tener en nuestro php.ini las siguientes directivas activadas (1) o descativadas (0) session.use_cookies=0 session.use_trans_sid=1 Si no es asi o no tenemos acceso al php.ini deberemos poner en todos nuestros script que usen sessiones lo siguiente: Código PHP: |
Otra para mail Tema: Seguridad -Mail Pregunta: Como puedo comprobar si un email es valido? Respuesta: Con una sencilla funcion donde reviso el email usando expresiones regulares, en case de no cumplirse devuelve FALSE si se cumple devuelve TRUE Código PHP: simple, solo debo pasar por la funcion el email que quiero revisar y comprobar que es lo que esta funcion devuelve con un simple if como se muestra a continuacion Código PHP: getmxrr() , pero solo en servidores *.nix El uso de esta funcion para la verificacion de existencia de una direccion de mail se explica Aqui Saludos :arriba: |
| La zona horaria es GMT -6. Ahora son las 20:30. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.