Vous êtes sur la page 1sur 19

-----------------------Subir archivos con PHP por FTP Un pequeo tutorial sobre el manejo del FTP en PHP, en concreto sobre

el proceso d e subir archivos al servidor. Entremos en materia. Creamos un archivo php comn usando nuestro editor favorito. En l creamos un formul ario como cualquier otro, con las siguientes opciones <form name="enviador" method="post" action="recibe.php" enctype="multipart/formdata"> <input type="hidden" name="MAX_FILE_SIZE" value="1000"> Archivo: <input type="file" name="archivo"> <input type="submit"> Aqu hay que notar algunas cosas: Primero, en el enctype="multipart/form-data", le decimos que el contenido del fo rmulario ser cifrado por partes, esto es necesario para que el manejo de archivos sea ms fcil para nuestro script, ya que sera muy dficil poder transmitir de golpe u n archivo muy pesado por ejemplo. Luego viene un campo de tipo hidden, esto ltimo es opcional, pero lo recomiendo p ara limitar el tamao del archivo a transmitir, la macro MAX_FILE_SIZE se encargar de esa gestin. Veamos ahora la contraparte, el archivo recibe.php que es el que se encarga de h acer la conexin FTP mediante PHP. <?php // Primero creamos un ID de conexin a nuestro servidor $cid = ftp_connect("www.cg.edu.mx"); // Luego creamos un login al mismo con nuestro usuario y contrasea $resultado = ftp_login($cid, "usuario","noteladigo"); // Comprobamos que se creo el Id de conexin y se pudo hacer el login if ((!$cid) || (!$resultado)) { echo "Fallo en la conexin"; die; } else { echo "Conectado."; } // Cambiamos a modo pasivo, esto es importante porque, de esta manera le decimos al //servidor que seremos nosotros quienes comenzaremos la transmisin de datos. ftp_pasv ($cid, true) ; echo "<br> Cambio a modo pasivo<br />"; // Nos cambiamos al directorio, donde queremos subir los archivos, si se van a s ubir a la raz // esta por dems decir que este paso no es necesario. En mi caso uso un directori o llamado boca ftp_chdir($cid, "boca"); echo "Cambiado al directorio necesario"; // Tomamos el nombre del archivo a transmitir, pero en lugar de usar $_POST, usa mos $_FILES que le indica a PHP // Que estamos transmitiendo un archivo, esto es en realidad un matriz, el segun do argumento de la matriz, indica // el nombre del archivo $local = $_FILES["archivo"]["name"]; // Este es el nombre temporal del archivo mientras dura la transmisin $remoto = $_FILES["archivo"]["tmp_name"]; // El tamao del archivo $tama = $_FILES["archivo"]["size"]; echo "<br />$local<br />"; echo "$remoto<br />"; echo "subiendo el archivo...<br />";

// Juntamos la ruta del servidor con el nombre real del archivo $ruta = "/srv/www/htdocs/boca/" . $local; // Verificamos si no hemos excedido el tamao del archivo if (!$tama<=$_POST["MAX_FILE_SIZE"]){ echo "Excede el tamao del archivo...<br />"; } else { // Verificamos si ya se subio el archivo temporal if (is_uploaded_file($remoto)){ // copiamos el archivo temporal, del directorio de temporales de nuestro servido r a la ruta que creamos copy($remoto, $ruta); } // Sino se pudo subir el temporal else { echo "no se pudo subir el archivo " . $local; } } echo "Ruta: " . $ruta; //cerramos la conexin FTP ftp_close($cid); ?> -----------------------Usuarios activos con PHP sin BD Veremos cmo conocer y mostrar la cantidad de usuarios que estn visitando el sitio en forma simultnea almacenando los datos en un archivo de texto. El cdigo que vamos a utilizar en este artculo, consta simplemente en editar un arc hivo de texto (usuarios.dat) cada vez que ingresa un usuario y almacenar el nmero de IP y la hora de inicio de sesin del usuario en ese archivo. Cdigo fuente activos.php <? // Usuarios activos con PHP sin utilizar bases de datos // Tiempo en segundos en que expira la sesin. $fin_session = 600; // En usuarios.dat guardaremos el IP y hora en que el usuario inicio la sesin $arr = file("usuarios.dat"); $contenido = $REMOTE_ADDR.":".time()." "; for ( $i = 0 ; $i < sizeof($arr) ; $i++ ) { $tmp = explode(":",$arr[$i]); if (( $tmp[0] != $REMOTE_ADDR ) && (( time() - $tmp[1] ) < $fin_session )) { $contenido .= $REMOTE_ADDR.":".time()." "; } } $fp = fopen("usuarios.dat","w"); fputs($fp,$contenido); fclose($fp); $array = file("usuarios.dat"); $USUARIOS_ACTIVOS = count($array);

// Imprimimos la cantiadad de usuarios activos echo "Hay ".$USUARIOS_ACTIVOS." usuarios activos"; ?> Para que el script funcione correctamente, tendremos que crear el archivo usuari os.dat sin incorporarle nada de contenido y darle permisos de escritura. ------------------------------------------------Crear documentos PDF usando PHP Crear archivos PDF (Portable Documento File) nos da muchos beneficios y si quier es saber mucho ms de ellos visita la el artculo PDF en la Wikipedia ya que aqu nos enfocaremos a cmo crear documentos PDF. En estos ejemplos estoy usando FPDF, que es una clase escrita en PHP para crear documentos PDF, es completamente gratuita. [Descargar FPDF]. Para no hacerlo tan aburrido, vamos al grano: <?php require( fpdf.php ); $pdf=new FPDF(); $pdf->AddPage(); $pdf->SetFont( Arial ,'B ,16); $pdf->Cell(40,10, Este es un ejemplo de creacin de un documento PDF con PHP ); $pdf->Output(); ?> En la segunda lnea llamamos al archivo fpdf.php [require( fpdf.php )]. La accin empieza cuando llamamos al constructor, en la tercera lnea. Creamos el nu evo documento PDF [new FPDF()]. El constructor puede recibir como parmetro la ori entacin [P (normal) por default y L (landscape, apaisado)], la unidad de medida [ pt (punto), mm (milmetros) por default, cm (centmetros) y in (pulgadas)] y el form ato [A3, A4, A5, Letter, Legal]. Los tres son opcionales. Con AddPage() agregamos una pgina y recibe como parmetro la orientacin, pero si no se le asigna una aqu, tomar el valor que se haya pasado al crear el objeto. SetFont() define el formato de fuente con el que vamos a escribir texto en el do cumento. Puede recibir por parmetro la familia (Arial, Courier, Times, etc), si n o se define una familia (es decir, se manda una cadena vaca) la famlia que se usa r ser la que se est usando desde el principio del documento. Cell() inserta una celda en el documento. En este ejemplo solo se pasaron como p armetro el ancho de la celda (40), el alto (10) y el texto que est dentro de la ce lda (Este es un ejemplo de creacin de un documento PDF con PHP). Estos parmetros s on opcionales y podemos ver la lista de parmetros que pueden usarse con Cell() en el manual de FPDF, en la seccin donde se explica Cell. Por ltimo, Output(), como su nombre lo dice, je, manda la salida del archivo a PD F y como por arte de magia, tenemos un archivo pdf creado con PHP. Espero les sirva Saludos ----------------------------------------Encriptar contraseas en MD5 con PHP Si en nuestra pgina web tenemos un sistema de usuarios y queremos proteger las co ntraseas para prevenir posibles vulnerabilidades en nuestro servidor, es una medi da eficaz encriptar las contraseas, de manera que si alguien puede acceder a ella

s no pueda ver la contrasea si no su encriptacin. Para mejorar este sistema, lo que haremos es usar un algoritmo de encriptacin de un solo sentido, es decir que no se puede desencriptar de ninguna manera, como p or ejemplo md5. Para guardar la contrasea encriptada en md5, usaremos la funcion md5() de PHP: <? $contrasena = md5 ( $contrasena ); ?> Ya podemos guardar la contrasea en nuestra base de datos o fichero, pero... como h aremos para comprovar la contrasea en el inicio de sesin? Muy fcil, como en la base de datos tenemos la contrasea en md5, encriptaremos la c ontrasea que escribe el visitante de la misma manera que hemos encriptado la cont rasea del usuario en el momento de su regstro, ahora ya podremos comparar la contr asea enviada con la almacenada en el servidor, si la encriptacin coincide es que l a contrasea es correcta. Pero si no usamos una transmisin segura (pe: SSL) sigue habiendo un problema, cua ndo el usuario enva los datos al servidor, la contrasea es enviada sin encriptar, y en ese momento puede ser capturada por un tercero. Para evitar esto, podemos e ncriptar la clave en el ordenador del cliente usando JavaScript gracias a Javasc ript MD5 , en lugar de encriptarla en el servidor usando PHP. ------------------------------------------Cookies con PHP El uso de cookies es muy frecuente para cosas como recordar la contrasea de una a rea de usuarios, saber cuantas visitas hemos recibido de un mismo usuario o para distinguir a ese usuario entre otros muchos. El uso de cookies en PHP es muy sencillo, para enviar cookies al usuario utiliza remos la funcin setcookie() pero no podemos llamar a esta funcin donde queramos. L a funcin setcookie debe ser utilizada antes de cualquier salida al navegador, es decir, hay que usarla antes que cualquier echo o funcin que impriman algo en pant alla y antes de cualquier etiqueta HTML. Un fallo muy comn es poner espacios o sa ltos de lnea antes de "<?php" eso tampoco est permitido antes de llamar a la funcin setcookie. La funcin setcookie toma esencialmente 3 parmetros, tiene ms, pero estos son los bsi cos. El primero es el nombre de la cookie, el segundo el valor y el tercero el t iempo de expiracin, es decir, en que fecha deber el navegador del usuario borrar e sa cookie. Por ejemplo: setcookie("webtaller",1,time()+30*24*60*60); Con esta sentencia pondremos una cookie llamada webtaller, con el valor 1 y que expirar dentro de 30 das. Tambin tenemos que tener en cuenta que la cookie no la te ndremos disponible hasta que el usuario recargue la pgina. Para leer una cookie lo podemos hacer con la variable $_COOKIE['nombrecookie']. Por ejemplo: if(isset($_COOKIE['webtaller'])) { $_COOKIE['webtaller']++; setcookie("webtaller",$_COOKIE['webtaller'],time()+30*24*60*60);

} else { setcookie("webtaller",1,time()+30*24*60*60); } Con este pequeo script lo que hemos hecho es un contador de visitas por usuario. De esta forma sabremos cuantas visitas ha hecho el usuario a la pgina donde ponga mos este cdigo. Por Alex. Director Tcnico de WebTaller. ---------------------------Encriptacin de contraseas en PHP Si lo que estamos almacenando es, por ejemplo, nmeros de tarjetas de crdito, una s imple ojeada de un usuario malintencionado bastar para echar por tierra la reputa cin de nuestro negocio, y la economa de nuestros clientes. Para evitarlo, PHP incl uye la funcin crypt(), que transforma la contrasea que le hemos dado en un algorit mo codificado. Su forma de utilizacin es la siguiente: crypt('contrasea', 'clave') La sentencia nos devolver una palabra codificada, que ser la que almacenaremos en la base de datos. Vemoslo con un ejemplo. Teniendo la contrasea "0meg@", creamos la clave "@gem0", y ponemos en marcha la funcin crypt(). crypt('0meg@', '@gem0'); Dicha funcin nos devolver siempre el texto @gjp9yNbGspM6, a menos que se le cambie la clave, as genera otro texto distinto, el cual no puede ser descifrado, pero p odemos tener la seguridad que la palabra "0meg@", utilizando la clave "@gem0", s iempre dar como resultado @gjp9yNbGspM6, por lo que podamos utilizarlo de la sigu iente manera. En vez de la lnea de cdigo siguiente, que verifica el nombre y la contrasea: if ( $user == "admin" && $pass == "0meg@" ) { ... } Lo sustituimos por la siguiente lnea de cdigo: if ( $user == "admin" && crypt($pass, '@gem0') == "@gjp9yNbGspM6" ) { ... } De esta sencilla manera, sin saber cual era la contrasea original, podemos trabaj ar con ella con la seguridad de que nadie podr descrifrarla.

----------------------------------------Crear tablas Dinmicas con Smarty y PHP

Una pgina dinmica tiene tablas, listas, etc... y a priori no puedes saber el nmero de elementos que tendr. Smarty (por lo que he leido, que no probado) hace muchas cosas, menos lo que (pa ra mi) deberia. Una pgina que tiene que ser dinmica tendr tablas, listas, etc... y a priori no puedes saber el nmero de elementos que tendr. Por eso es necesario poder extraer, parsear, modificar, sustituir... bloques de la plan tilla. Y no puedes decirle a un diseador que te disee los bloques por separado por que le desmontas (por lo menos el mio). Pedirle la abstraccin de disear un bloque por separado es un sacrilegio para l :-( Veamos, En Smarty, se peude hacer lo que dices [1], pero a mi no me gusta, por que es meter cdigo en las plantillas, yo prefiero hacer plantillas de N elementos, y en php asignar los valores, si no hay, pues simplemente se quedan en blanco o con un texto ... yo que se "you web here", que es lo que acabo de hacer hace 2 minutos para la aplicacin que comentaba ayer x). Sobre lo de los diseadores.... pues, si le pagas, es apra que haga lo que quieres, o no? :). o cuando haces reforma en casa, es el albail el que decide el color de los azulejos? Esto est pensado para 4 columnas (de ah el 25%, pero evidentemente, se puede mejorar... <table> <tr> {section name=numloop loop=$elementos} <td width="25%">{$elementos[numloop]}</td> {if not ($smarty.section.numloop.rownum mod $cols)} {if not $smarty.section.numloop.last} </tr><tr> {/if} {/if} {if $smarty.section.numloop.last} {* creamos las celdas vacias que toquen *} {math equation = "n - a % n" n=$cols a=$elementos|@count assign="cells"} {if $cells ne $cols} {section name=pad loop=$cells} <td width="25%"> </td> {/section} {/if} </tr> {/if} {/section} </table>

----------------------------------------Crear un log de errores en PHP Un log de errores, es un archivo que almacena los errores que se han producido d urante la ejecucin de un programa, aadir un log de errores a nuestra pgina, nos per mitir controlar cuando se ha producido un error para corregirlo y evitar que se r epita en el futuro. Para crear un log, abriremos el archivo en modo 'a' (escritura al final) y escri biremos el error indicando la fecha, para simplificar el trabajo lo podemos incl uir todo en una funcin:

<?php function error($numero,$texto){ $ddf = fopen('error.log','a'); fwrite($ddf,"[".date("r")."] Error $numero: $textorn"); fclose($ddf); } ?> Una vez declarada la funcin, tansolo tendremos que llamarla de la siguiente maner a cuando se produzca un error para que se guarde en error.log: <?php // Si no existe la cookie sesion if(!isset($_COOKIE['sesion'])){ // Guardamos un error error('001','No existe la cookie de sesion'); } ?> De esta manera, cada vez que un usuario entra a esta pgina sin la cookie sesion, se almacena una nueva lnea en el fichero indicando: [fecha] Error 001: No existe la cookie de sesion Vamos a ver ahora como podemos mejorar esto de manera que ademas de poder grabar los errores que nosotros definamos en nuestro sitio, nos almacene los errores p roducidos durante la ejecucin del script php. Esto lo conseguiremos indicando al interprete Zend que llame a la funcin error() cada vez que el cdigo PHP contenga un error con la funcin set_error_handler: <?php set_error_handler('error'); ?> Entonces, el cdigo completo nos queda de la siguiente manera: <?php function error($numero,$texto){ $ddf = fopen('error.log','a'); fwrite($ddf,"[".date("r")."] Error $numero:$textorn"); fclose($ddf); } set_error_handler('error'); ?> Y de esta manera damos por finalizado nuestro script para generar un log de erro res personales y de PHP. Autor: Ignside -------------------------------------Direccin IP Para conseguir la direccion IP de nuestro visitante desde PHP usaremos lo que se llama variables globales. Estas variables son variables que proporciona PHP acerca del visitante, consigui endo informacion cmo su IP, su nombre de Host, su sistema operativo... La variable global que usaremos es $REMOTE_ADDR que definiremos de la siguiente

manera: global $REMOTE_ADDR; Y una vez definida ya tendremos una variable con la direccion IP del visitante l ista para usar: <? global $REMOTE_ADDR ; $echo $REMOTE_ADDR ; ?> O bien podemos acceder a la ip usano directamente el array superglobal _SERVER, evitandonos as el tener que declarar la variable: <? echo $_SERVER [ 'REMOTE_ADDR' ]; ?> Nota: Tened cuidado los que useis un servidor gratuito, es posible que no tenga las variables globales activadas. ----------------------------------------Cmo detectar el navegador y mostrarlo con PHP Con este script podremos derectar qu navegador usa el visitante y mostraselo. <?php function FUNC_brouserUsr(){ //echo FUNC_brouserUsr(); if((ereg("Nav", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Gold", $_SERVER["HTTP_USER_AGENT"])) || (ereg("X11", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Mozilla", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Netscape", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("MSIE", $_SERVER["HTTP_USER_AGENT"]) AND (!ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])))) $browser = "Netscape"; elseif(ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE"; elseif(ereg("Lynx", $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx"; elseif(ereg("Opera", $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera"; elseif(ereg("Netscape", $_SERVER["HTTP_USER_AGENT"])) $browser = "Netsca pe"; elseif(ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqu eror"; elseif((eregi("bot", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Google", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Slurp", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Scooter", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Spider", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Infoseek", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Bot"; else $browser = "Other"; return $browser; } echo FUNC_brouserUsr(); ?> -----------------------------------------Banear IP de Web con PHP En este Articulo os Dire Como Banear a un Usuario de una web con archivo .txt pa ra que no pueda entrar en nuestra Web baneados.php <?php if (isset( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ])) {

$ip = $_SERVER [ 'HTTP_X_FORWARDED_FOR' ]; } elseif (isset( $_SERVER [ 'HTTP_VIA' ])) { $ip = $_SERVER [ 'HTTP_VIA' ]; } elseif (isset( $_SERVER [ 'REMOTE_ADDR' ])) { $ip = $_SERVER [ 'REMOTE_ADDR' ]; } else { $ip = "Anonima" ; } $baneados = file ( "baneados.txt" , "r+" ); $nbaneados = count ( $baneados ); function banear ( $ip , $baneados , $nbaneados ){ for ( $i = 0 ; $i < $nbaneados ; $i ++){ if ( $ip == $baneados [ $i ]){ echo "<br><br><br><br><center> Estas Baneadp de la Web y no Puedes Entrar<br> En via Un Email al Webmaster para Hablar con el</center>" ; die(); } } } banear ( $ip , $baneados , $nbaneados ); ?> Tendras k hacer un Include del archivo en las Paginas que quieras k el visitante este baneado, Ejemplo en el index.php pondriamos si el archivo anterior se llam a baneados.php: <? include( "baneados.php" ) ?> Muy facil, Despues en el Archivo Baneados.txt salen las Ips baneadas, Si borras una podra entrar de new a la web. ---------------------------------------------------Contador de Visitas Bsico con PHP En este articulo aprenderemos a crear un contador de visitas por medio del PHP. Explicacin Con este script tu puedes crear un contador de visitas que llegan a tu sitio web ...(una mini estadistica personalizada)...en este ocacin usaremos el PHP con gest ionador y procesador del codigo... Desarrollo Donde se guardaran el n de visitas seran en un documento de texto llamado visitas .txt. <?php //script made in ZONE WEB $counterFile = "visitas.txt"; function displayCounter($counterFile) { $fp = fopen($counterFile,"rw"); $num = fgets($fp,5); $num += 1;

print "$num"; exec( "rm -rf $counterFile"); exec( "echo $num > $counterFile"); } if (!file_exists($counterFile)) { exec( "echo 1 > $counterFile"); } displayCounter($counterFile); ?> ----------------------------------------------------Otra forma de medir el tiemp o de ejecucin de scripts En un artculo anterior explicaba la forma de medir el tiempo de ejecucin de un scr ipt PHP, en este artculo explico exactamente lo mismo, pero esta vez usando funci ones estandar de PHP. Al igual que en el otro artculo, en este usaremos dos funciones time_start() y ti me_end(). La primera, time_start(), inicia el temporizador o cronmetro mientras q ue la segunda funcin, time_end(), termina el temporizador y devuelve el tiempo tr anscurrido desde la llamada a la funcin time_start(). Por lo tanto, cuando queramos mder el tiempo de ejecucin de un script o un cdigo, situaremos la funcin time_start() al principio de este cdigo y time_end() al final del cdigo. Dicho esto, lo primero que haremos es crear un script que llamaremos benchmark.ph p y que contendr las 2 funciones comentadas y que incluiremos en cualquier script cuyo tiempo de ejecucin querramos medir. Las funciones El contenido de benchmark.php ser: <?php function time_start() { global $starttime; $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $starttime = $mtime; } function time_end() { global $starttime; $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; return ($mtime - $starttime); } ?> Como incluir las funciones en un script Ahora supongamos que queremos obtener el tiempo de ejecucin de cierto script llam ado actualizacion_bbdd.php , con independencia de su contenido modificaremos este s cript de forma que quede as: <?php // Incluir funciones de temporizador

include('benhcmark.php'); // Iniciar temporarizador time_start(); // Contenido del script original // Mostrar el tiempo de ejecucin echo time_end(); ?> Y esto es todo. Suerte! ---------------------------------------------------------------Test de velocidad de conexin a Internet en PHP Estudiando rpidamente los sistemas que obtienen un reflejo aproximado de la conex in a Internet, medida en Kbps; se me ocurri realizar algo similar en PHP. Cual es la utilidad? Se puede determinar en cuanto tiempo aproximado se descargara un archivo de Inte rnet. Por ejemplo, si estamos elaborando una pgina de descargas y queremos mostrarle al usuario en cuanto tiempo APROX, estar ese archivo en su PC. En realidad algo extremadamente sencillo ya veremos ms adelante porque. Teora Bsica Es importante resaltar que un carcter CUALQUIERA siempre tendr un tamao de 1 Byte, es decir 8 impulsos electrnicos ( 8 Bit) , por lo cual una cadena de texto que co ntenga mil veinticuatro caracteres en total, tendr una dimensin de 1024 Bytes lo q ue seria igual a 1 KB. 1 KB es igual 1024 Bytes 1 MB es igual a 1024 KB 1 GB es igual a 1024 MB 1 TB es igual a 1024 GB El cdigo fuente: archivo : test.php <?php set_time_limit ( 0 ) ; $tiempo_micro [ 1 ] = microtime ( ) ; $q_espacios = explode ( " " , $tiempo_micro [ 1 ] ) ; $tiempo_ [ 1 ] = $q_espacios [ 1 ] + $q_espacios [ 0 ] ; $contenido = file_get_contents ( 'http://localhost/cargar_bytes.php' ) ; /* cambiar por path real (URL) http://tudominio/cargar_bytes.php)*/ $tamano_KB = strlen ( $contenido ) / 1024 ; $tiempo_micro [ 2 ] = microtime ( ) ; $q_espacios = explode ( " " , $tiempo_micro [ 2 ] ) ; $tiempo_ [ 2 ] = $q_espacios [ 1 ] + $q_espacios [ 0 ] ; $tiempo_utilizado = number_format ( ( $tiempo_ [ 2 ] - $tiempo_ [ 1 ] ) , 3 , ". " , "," ) ; $velocidad = round ( $tamano_KB / $tiempo_utilizado , 2 ) ; echo 'Su velocidad de conexin es de: ' . $velocidad . ' Kbps Se enviarn:' . $taman o_KB . ' Kb, Tiempo utilizado: ' . $tiempo_utilizado . ' Segundos <hr>' ; for ( $i = 10 ;

$i >= 1 ; $i -- ) { $val_Kb = $i * 100 ; if ( $velocidad >= 800 ) $velocidad_ = 800 ; else $velocidad_ = $velocidad / 2 ; if ( $velocidad >= $val_Kb && ! $col ) { echo '<div style="background-color:#F 0F0F0; width:500px; float:left">' ; echo '<img width="' . ( $velocidad_ ) . '" height="8" style="background-color: # FF0000" border="0">' ; echo '</div><b>Su conexin</b><br />' ; $col = true ; } echo '<div style="background-color:#F0F0F0; width:500px; float:left">' ; echo '<img width="' . ( $val_Kb / 2 ) . '" height="8" style="background-color: # 000099" border="0">' ; echo '</div>' . $val_Kb . ' Kbps<br />' ; } ?> archivo : cargar_bytes.php <?php echo str_repeat ( "i" , 1024000 ) ; ?> Explicando: Creamos el archivo cargar_bytes.php, que contendr nicamente un proceso aleatorio d e repeticiones hasta que alcance el valor de 1024000, 1000 KB, utilizando la fun cin str_repeat(); que funciona en algo similar a un bucle. Se repetir 1024000, la letra i. Llamaremos el archivo test.php Primero que nada utilizaremos la funcin set_time_limit(), para indicar que no hay limite en el tiempo de ejecucin del script, recordemos que por default viene en el php.ini 30 segundos, y si este tiempo se alcanza se produce un error fatal de tiempo de ejecucin. Obtenemos el tiempo en ese instante en microsegundos Luego hacemos una apertura del archivo anterior y obtenemos el contenido, median te la funcin file_get_contents(), cabe destacar que el parmetro que debemos utiliz ar debe seguir el esquema: protocol:// para que se tome como una URL y se extrai ga el resultado del proceso repetitivo anterior, de lo contrario se asumir que el archivo es local y se ejecutara el cdigo fuente directamente: es decir debemos c olocar; file_get_contents( http://eldominio/carcar_bytes.php'), para que funcione correcta mente. Pero no imprimiremos en pantalla el contenido, solo lo cargaremos. Agrupamos en la variable $tamano_KB, la longitud de caracteres de $contenido, y lo dividimos entre 1024; para pasarlo de BYTES A KB. Luego de la apertura, volvemos a obtener el tiempo en microsegundos para verific ar cuanto tiempo trascurri durante la ejecucin del paso anterior y agrupamos ese v alor en la variable $tiempo_utilizado, le damos formato con la funcin number_form at(); Obtenemos la velocidad en KBPS, dividiendo el total de KB cargados , entre el ti empo empleado;

Por ejemplo si: 100 Kb, son cargados en 2 segundos, la velocidad en ese instante es de 50 Kbps, pero puede variar dependiendo de muchos factores. Imprimimos el resultado, y generamos un atractivo esquema visual. -----------------------------------------------Dectectar el Pas del visitante con PHP Una de las grandes necesidades de todo desarrollador web radica al momento de co nocer el pas del visitante bien sea para redireccionarlos a mdulos o pginas con par ticularidades o caractersticas propias de cada determinacin, entre otras funciones que se pueden desarrollar en el entorno. Ejemplo: Si tenemos una pgina de productos y catlogos (Comercio Web) y deseamos mo strare al visitante el precio del referido producto o artculo expresado monetaria mente en su moneda local. Entre otras infinidades de particularidades. En realidad el proceso de la deteccin del pas a travs del nick se realiza a partir de la direccin IP devuelta por superglobales como $_SERVE['REMOTE_ADDR'], tomando como soporte o base una serie criterios de posibilidades almacenados lgicamente en archivos de base de datos, para su posterior validacin y deduccin de sus cuatro s componentes esenciales menores todos a 255. En Php solo existen alguna funciones que permiten obtener informacin acerca de ma quinas conectadas a una red especifica por medio de las Funciones de Red, pero n o creamos que una funcin o un par de funciones nos harn todo el trabajo; por el co ntrario solo sern bases para todo el ensamblaje. Ciertamente la empresa Maxmind, desarrolladora por excelencia de este tipo de he rramientas con soporte para diferentes tecnologas GeoIp , logro solucionar este gran problema con un 95% de efectividad con un conjunto de funciones y un archivo de bases de datos. Para poder utilizar esta herramienta deberemos descargar la base de datos: GeoIP.dat.gz > http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz Biblioteca de vnculos y funciones: Geoip.inc http://www.maxmind.com/download/geoip/api/php/geoip.inc Fianlemente realizaremos un test con las siguientes lineas: <?php require("geoip.inc"); /*requerimos la biblioteca o liberia */ $abir_bd = geoip_open("GeoIP.dat",GEOIP_STANDARD); /* apertura y lectura del arc hivo utilizando la constante GEOIP_STANDARD como forma de lectura que adquiere v alor en geoip.inc */ /* imprimimos el nick del pas */ echo geoip_country_name_by_addr($abir_bd, $_SERVER['REMOTE_ADDR']); /* liberamos memoria cerrando el resorce devuelto por $abir_bd de la apertura*/ geoip_close($abir_bd); ?> Desventajas y Sugerencias: Seria un gravsimo error que incluyeramos estas lineas en todas nuestra pginas, rec ordemos que cada vez que esta se carge llamara a si mismo el archivo geoip.inc y

GeoIP.dat, este ultimo supera los 700 Kb de tamao y puede considerablemente exte nder el tiempo de carga de la pgina. Sugerencias: Podemos almacenar el valor del nick o cdigo del pas en una session ($_SESSION) pre feriblemente, o en su defecto en COOKIES; para que de este modo solo se lea una vez ya que lgicamente el visitante no cambiara de IP a cada vez que refresque o n avegue en una pgina.

--------------------------------------------------------------------------function displayCounter($counterFile) { $fp = fopen($counterFile,"rw"); $num = fgets($fp,5); $num += 1; echo "$num"; exec( "rm -rf $counterFile"); exec( "echo $num > $counterFile"); } <div id="contador"> <?php $counterFile = "count.txt"; displayCounter($counterFile); if (!file_exists($counterFile)) { exec( "echo 1 > $counterFile"); } ?> </div>

--------------------------------------------------------------------------------------------cuanto mas le puedo aumentar la ram a mi laptop??? ayuda? quisiera saber cuanto puedo expandirle la ram a mi laptop es una compaq presario CQ50-102LA tengo un procesador AMD semprom SI-40 de 2.00 GHz con 160 disco d. w indows 7 ultimate de 32 bits con 1 gb de ram... tbm quisiera saber si le puedo a umentar el disco duro ayuda por favor de antemano gracias hace 1 ao Reportar abusos ???????? Mejor respuesta - elegida por los votantes le puedes aumentar hasta 4 gigas y tambin le puedes poner otro disco duro de hast a 500 gigas y hasta le puedes cambiar el procesador por un amd turion x2 rm 70 o rm 72 o rm 75 y otros mas pero no los recuerdo sobres hermano suerte aaaa y si te interesa yo tengo un amd turion 64 x2 rm-72

mi correo por si te interesa CARTTONES@hotmail.com sobres saludos hace 1 ao

Compaq Presario CQ50-102LA, Se le podr poner otro procesador? Opciones el 16-11-2009 08:18 PM Hola que tal a toda la comunidad, lo que pasa es que tengo una Compaq Presario C Q50-102LA y la verdad por mi parte la experiencia ha sido grandiosa, pero me he dado cuenta de que se ve limitada en desempeo debido al procesador con el que ven ia de fabrica (AMD Sempron SI-40), mi pregunta es si ser posible cambiarle este p rocesador por uno de arquitectura de doble nucleo, y de ser posible que procesad ores son soportados; he investigado en varios lugares y nadie ha sabido darme un a respuesta solida. Espero ser explicito en cuanto a mi duda. De antemano muchas gracias. Atte: Julio RESPONDER garely Estudiante graduado Mensajes publicados: 373 Registrado: 07-09-2009 Mensaje 2 de 2 (1.154 Visitas) Informar al Moderador 0 Re: Compaq Presario CQ50-102LA, Se le podr poner otro procesador? Opciones el 16-11-2009 11:52 PM Que tal: Bueno..si puedes hacerlo pero tendras que modificar algunas otras cosas en tu c omputadora, realmente puedes gastarte mas que adquiriendo un equipo con el proce sador que deceas. Procesadores que pueden ser soportados: AMD Athlon(TM) II Dual-Core Processor for Notebook PCs M320 (2.1GHz, 1MB L2 Cach e) AMDTurion(TM) II Dual-Core Processor M500 (2.2GHz, 1MB L2 Cache) Si esta informacion te ayuda sonrie y picale a la estrellita de este mensaje par a darme un kudo

Memoria RAM para Compaq Presario CQ50-102LA Opciones el 05-10-2011 03:17 PM Hola, por favor alguien podria decirme cual es la capacidad maxima de memoria RA M a la que puedo expandir este modelo (Compaq Presario CQ50-102LA), ya tengo rat o buscando en la red pero no encuentro nada, aun en la pagina de la empresa y pu

es me interesa aumentar la RAM por la paqueteria de programas que utiliso en mi trabajo. A quien se tome la molestia de contestar, Gracias!! RESPONDER Chuyaca Estudiante graduado Mensajes publicados: 149 Registrado: 29-04-2009 Mensaje 2 de 5 (415 Visitas) Informar al Moderador 0 Re: Memoria RAM para Compaq Presario CQ50-102LA Opciones el 05-10-2011 07:50 PM Hola: Mximo soportado: 4 GB Tipo de memoria soportada: PC2-6400, 800-MHz, DDR2 PC2-5300, 667-MHz, DDR2 Configuraciones soportadas: 4096-MB total system memory (2048 2, dual-channel) 3072-MB total system memory (2048 + 1024) 2048-MB total system memory (2048 1,1024 2, dual-channel) 1536-MB total system memory (1024 + 512) 1024-MB total system memory (1024 1, 512 2, dual-channel) 512-MB total system memory (512 1) De acuerdo a tu sistema operativo: Windows 7 Starter - Slo 2 GB mximo Cualquier otra versin de Windows 7 de 32 bits - 3.3 GB mximo (aunque coloques los 4 GB) Cualquier versin de Windows 7 de 64 bits - Soportar los 4 GB. Por lo tanto, si conservas Windows 7 Home Basic de 32 bits en tu equipo, te sugi ero slo colocar 3 GB. Saludos. Avisa si funciona y manda kudos... No soy experto, pero s un poco de eso de las computadoras... creo????? RESPONDER Erick-Mayo Estudiante Mensajes publicados: 2 Registrado: 05-10-2011 Mensaje 3 de 5 (413 Visitas) Informar al Moderador 0 Re: Memoria RAM para Compaq Presario CQ50-102LA Opciones el 05-10-2011 10:41 PM

Gracias por responder, yo no se mucho de mi equipo tiene actualmente windows XP y bits? o solo me quedaria como mensionas el sistema en windows 7 home basic a 32

equipos de computo y por eso pregunto, correr a 32 bits, lo puedo cambiar a 64 Chuyaca, con un maximo de 3 GB de RAM con bits?

disculpa si pregunto otra vez pero como mensiono, yo no se mucho de equipos de c omputo, Gracias. RESPONDER Chuyaca Estudiante graduado Mensajes publicados: 149 Registrado: 29-04-2009 Mensaje 4 de 5 (411 Visitas) Informar al Moderador 0 Re: Memoria RAM para Compaq Presario CQ50-102LA Opciones el 05-10-2011 11:15 PM No te preocupes... Si tienes Windows XP, le podrs aumentar hasta 3 GB. Si le pones las 4 GB, slo te r econocer 3.3 GB, por lo que no te conviene tanto ponerle los 4 GB. Si le puedes instalar el Windows XP de 64, pero se me hace mucho embroyo slo para que te reconozca 1 GB ms de memoria. Saludos. Avisa si funciona y manda kudos... No soy experto, pero s un poco de eso de las computadoras... creo????? RESPONDER gerove Profesor Sobresaliente Mensajes publicados: 2.432 Registrado: 09-09-2010 Mensaje 5 de 5 (407 Visitas) Informar al Moderador 0 Re: Memoria RAM para Compaq Presario CQ50-102LA [ Editado ] Opciones el 06-10-2011 02:24 AM - fecha de ltima edicin 06-10-2011 02:28 AM Hola, Aunque basicamente, lo que indica Chuyaca, es lo habitual, yo te recomiendo instalar los 4 Gb de Ram (2 +2 GB) ya que el equipo cuenta con la Tecnologia Dual Channel, la cual quedaria sin activar al tener modulos de tamao distinto, (por ejemplo: 1+2 Gb) en las ranuras de la ram. Un sistema de 64 bits, tiene mas ventajas que solo el mero echo de administrar m as ram, posibilita al equipo de un mejor rendimiento en general,

siempre y cuando el hardware del equipo lo soporte ( en este caso si lo soporta) , tengas los controladores para 64 bits (en tu equipo no los hay para XP, si para Vista y Siete) junto a programas que utilices que funcionen o fueron diseados para version de 64 Bits. Si lo vieses necesario, podrias aumentar el rendimiento, cambiando el procesador AMD Sempron SI-40 de 2,0 GHz? por alguno de estos otros: Turion Ultra Dual-Core ZM-82 2.20-GHz processor (35W, 2-MB L2 cache) Turion Ultra Dual-Core ZM-80 2.10-GHz processor (35W, 2-MB L2 cache) Turion Dual-Core RM-70 2.00-GHz processor (35W, 1-MB L2 cache) Athlon X2 Dual-Core QL-60 1.90-GHz processor (35W, 1-MB L2 cache)? Informacion y controladores http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01492674&tmp_task=prodinfoC ategory&cc=mx&dlc=es...? Manual de componentes http://h10032.www1.hp.com/ctg/Manual/c01572022.pdf? ----------------------------------------------------------------Obtener el nombre del equipo en php $nombre_host = gethostbyaddr($_SERVER['REMOTE_ADDR']); echo $nombre_host; -----------------------------------------------------------------obtener el horario y huso horario en php date("h:i:s", strtotime("-6 hours")) -------------------------hacer un reloj dinmico en php y javascript html> <head> <title>Reloj con Javascript</title> <script language="JavaScript"> function mueveReloj(){ momentoActual = new Date() hora = momentoActual.getHours() minuto = momentoActual.getMinutes() segundo = momentoActual.getSeconds() horaImprimible = hora + " : " + minuto + " : " + segundo document.form_reloj.reloj.value = horaImprimible setTimeout("mueveReloj()",1000) } </script> </head> <body onload="mueveReloj()"> Vemos aqu el reloj funcionando... <form name="form_reloj"> <input type="text" name="reloj" size="10"> </form>

</body> </html> -------------------------------------------------------------------------------function inhabilitar() { alert ("Material Protegido") return false } document.oncontextmenu=inhabilitar function event_false() { window.event.returnValue = false } document.onselectstart = event_false

Vous aimerez peut-être aussi