|
|
|
|
Outline ·
[ Estándar ] ·
Lineal+
El FAQ para el webmaster, Todo aserca del php y html
| black_palma |
Nov 2 2006, 12:10 AM
|
Lineage II Admin - Osama Bin Laden
     
Grupo: Banned
Mensajes: 504
Registrado: 2-September 06
Desde: Aden Castle Town - Lineage II World
Miembro nº: 179.743

|
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: CODE <? $archivo="usuarios.txt"; //archivo donde almacenarán los usuarios activos $inactivo=600; //tiempo en segundos en que un usuario estará inactivo $contar=0; $fp=fopen($archivo,"r"); $tiempo=time(); $contenido=fread($fp,filesize($archivo)); fclose($fp); $lineas=split("\n",$contenido); $filas=file($archivo); for ($a=0; $a < sizeof($filas); $a++) { $datos=split(':',$lineas[$a]); $descontar=$tiempo-$inactivo; if ($datos[0] != $REMOTE_ADDR && $datos[1] > ($descontar)) { $res.= $datos[0].":".$datos[1]."\n"; $contar++; }} $res.="$REMOTE_ADDR:$tiempo\n"; $contar++; // Ya tenemos el total de usuarios activos $fp=fopen($archivo,"w"); fwrite ($fp,$res); fclose($fp); //Ahora damos formato a la salida, modifica esto a tu gusto //Ten en cuenta que la variable $contar contiene el nº de usuarios activos if ($contar==1){$contar="1 usuario activo";}else{$contar="$contar usuarios activos";} echo $contar; //Lo mostramos por pantalla ?> Finalmente subes el activos.php y el usuarios.txt a tu server. Y luego en el lugar de tu página donde quieras ver los usuarios activos pones: Código PHP: <? include "activos.php"; ?> [/code] Como puedes observar, puedes cambiar la ruta del archivo usuarios.txt (p. ej.: "../../usuarios.txt"); en este caso he supuesto que la aplicación y el archivo auxiliar están en la misma carpeta.
|
|
|
|
|
| black_palma |
Nov 2 2006, 12:27 AM
|
Lineage II Admin - Osama Bin Laden
     
Grupo: Banned
Mensajes: 504
Registrado: 2-September 06
Desde: Aden Castle Town - Lineage II World
Miembro nº: 179.743

|
Pregunta: ¿Como hago para saber los usuarios en linea en mi web? Respuesta: Con esta Clase PHP: 1.- Primero necesitamos usar una tabla que sera la que guarde los registros y esta debe ser su estructura: Código: CODE CREATE TABLE `usuariosenlinea` ( `timestamp` int(15) NOT NULL default '0', `ip` varchar(40) NOT NULL default '', `location` varchar(100) NOT NULL default '', KEY `timestamp` (`timestamp`), KEY `ip` (`ip`), KEY `location` (`location`) ) TYPE=MyISAM; Ahora el script, llamalo class.online.php: Código PHP: CODE <?php
class Usuariosenlinea { /* * @autor: victor simental * @uri: http://phpwebmasters.com * @param string $servidor el host para conectar, usualmente localhost * @param string $basededatos el nombre de la base de datos * @param string $nombredb el nombre de la tabla, preferentemente no editar * @param string $usuario usuario de la base de datos * @param string $pass la contraseña de la base de datos */
var $servidor = 'localhost'; var $basededatos = 'nombre_de_la_base'; var $nombredb = 'usuariosenlinea'; var $usuario = 'root'; var $pass = 'contraseña'; ## Fin de Conexion ## var $e_rror; //Segundos para borrar de la base de datos a los usuarios inactivos var $segundos = 120; var $ahora = 0;
//CONSTRUCTOR function Usuariosenlinea() {
$this->recargar();
} function cuantos() {
return $this->ahora;
} function enlinea() {
if($this->ahora == 1) {
echo $this->ahora ." Usuario en linea"; } else { echo $this->ahora ." Usuarios en linea"; } }
function ipreal(){
if ($real_ip = getenv('HTTP_X_FORWARDED_FOR')){ $explode_real_ip = explode(",", $real_ip); return trim($explode_real_ip[0]); } else { return getenv('REMOTE_ADDR'); } } function error(){
return $this->e_rror = mysql_error();
} function recargar() { $tiempo_actual = time(); $tiempo_final = $tiempo_actual - $this->segundos; $ip = $this->ipreal(); @mysql_connect($this->servidor, $this->usuario, $this->pass) or die('Error al Intentar Conectar con la base de datos '.$this->error().'');
@mysql_select_db($this->basededatos) or die('Error Seleccionando la base de datos '.$this->error().''); $result = mysql_query("SELECT ip FROM $this->nombredb WHERE ip='$ip'") or die('Error de lectura en la base de datos '.$this->error().''); if(mysql_num_rows($result) == 0){ mysql_query("INSERT INTO $this->nombredb VALUES ('$tiempo_actual','$ip','$_SERVER[REQUEST_URI]')") or die('Error al Insertar en la base de datos '.$this->error().''); } else { mysql_query("UPDATE $this->nombredb SET timestamp='$tiempo_actual' where ip='$ip'") or die('Error al Insertar en la base de datos '.$this->error().''); }
mysql_query("DELETE FROM $this->nombredb WHERE timestamp < $tiempo_final") or die('Error al intentar borrar en la base de datos '.$this->error().'');
$result = mysql_query("SELECT ip FROM $this->nombredb") or die('Error de lectura en la base de datos '.$this->error().''); $this->ahora = mysql_num_rows($result); mysql_close(); }
}
?> Y ahora la forma de uso: Código PHP: CODE <?php //Pon esta Líneas donde quires que se visualizen los usuarios online include("class.online.php");
$enlinea = new Usuariosenlinea(); $enlinea->enlinea(); ?>
|
|
|
|
|
| black_palma |
Nov 2 2006, 12:32 AM
|
Lineage II Admin - Osama Bin Laden
     
Grupo: Banned
Mensajes: 504
Registrado: 2-September 06
Desde: Aden Castle Town - Lineage II World
Miembro nº: 179.743

|
Tema: Interacción PHP+Javascript+MySQL Pregunta : ¿Cómo hacer una marquesina rotaria con resultados de una BD? Respuesta: Marquesina Rotaria de Noticias (o de lo que sea) (PHP+javascript+MySQL) La idea de esta marquesina es hacer un include( ) en donde queramos de un archivo que llamaremos marquesina.php Utiliza javascript para efectos de hacer la rotación de los titulares de las noticias (o lo que sea) y PHP para hacer que dicha marquesina algo dinámico facilmente actualizable. Para efectos del ejemplo usaremos una tabla que contenga lo siguiente: Tabla: noticias Campos: idnot fecha titulo contenido idnot (Tipo: tinyint / Atributos: UNSIGNED / Extra: Autoincrement) fecha (Tipo: DATE) titulo (Tipo: VARCHAR(50)) contenido (Tipo: longtext) Luego definimos el javascript que genera la rotación de los titulares (este lo conseguí en la red, no manejo javascript) Código: CODE <script language="JavaScript1.2">
var ancho=50 var alto=50 var velocidad=3 var contenido=' Aqui va el código html que queramos y es el que rotará para ello utilizamos PHP que está más adelante'
if (document.all) document.write('<marquee direction="up" scrollAmount='+velocidad+' style="width:'+ancho+';height:'+alto+'">'+contenido+'</marquee>')
function regenerar(){ window.location.reload() } function regenerar2(){ if (document.layers){ setTimeout("window.onresize=regenerar",450) inimarquee() } }
function inimarquee(){ document.cmarquee01.document.cmarquee02.document.write(contenido) document.cmarquee01.document.cmarquee02.document.close() thelength=document.cmarquee01.document.cmarquee02.document.height scrollit() }
function scrollit(){ if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){ document.cmarquee01.document.cmarquee02.top-=velocidad setTimeout("scrollit()",100) } else{ document.cmarquee01.document.cmarquee02.top=alto scrollit() } } window.onload=regenerar2 </script> En la parte del “var contenido” del javascript insertaremos el siguiente código de PHP que genera el html desde la base de datos. Código PHP: CODE <?php //Definimos el select de la consulta, además definimos el formato de la fecha como mi_fecha //Recogemos los datos de la tabla de noticias los ordenamo por fecha desde la más reciente //a la más antigua y las últimas 5
$ssql=("SELECT *,DATE_FORMAT(fecha,'%d-%m-%Y') AS mi_fecha FROM noticias ORDER BY fecha desc limit 5"); //consulta la base de datos, defino las variables y genero los resultados. $result=mysql_query($ssql,$conn); while ($row=mysql_fetch_array($result)) { echo"<a rel="nofollow" href=noticias/vernoticia.php?idnot=".$row['idnot'].">".substr($row[titulo],0,25)."...<br>(".$row[mi_fecha].")</a><br><br>";} ?>' con esto se genera el html de los titulos de las noticias. Por ejemplo si fuera la noticia idnot=1 , fecha=2004-01-01 , titulo=’Comienza el 2004’, contenido=’Comienza el 2004 y en la Alameda quedó la…..etc’ Se corta el título en 25 caractreres y le agrego puntos suspensivos. (substr($row[titulo],0,25) El html generado sería: CODE <a rel="nofollow" href=noticias.php?idnot=1>Comienza el 2004…<br>01-01-2044</a><br> y así hasta los 5 últimos titulares. El código final quedaría así: Código PHP: CODE <script language="JavaScript1.2">
var ancho=300 var alto=150 var velocidad=3 var contenido='<?
$ssql=("SELECT *,DATE_FORMAT(fecha,'%d-%m-%Y') AS mi_fecha FROM noticias ORDER BY fecha desc limit 5"); $result=mysql_query($ssql,$conn); while ($row=mysql_fetch_array($result)){ echo "<a rel="nofollow" href=vernoticia.php?idnot=".$row['idnot'].">".substr($row[titulo],0,20)."...<br>(".$row[mi_fecha].")</a><br><br>";} ?>'
if (document.all) document.write('<marquee direction="up" scrollAmount='+velocidad+' style="width:'+ancho+';height:'+alto+'">'+contenido+'</marquee>')
function regenerar(){ window.location.reload() } function regenerar2(){ if (document.layers){ setTimeout("window.onresize=regenerar",450) inimarquee() } }
function inimarquee(){ document.cmarquee01.document.cmarquee02.document.write(contenido) document.cmarquee01.document.cmarquee02.document.close() thelength=document.cmarquee01.document.cmarquee02.document.height scrollit() }
function scrollit(){ if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){ document.cmarquee01.document.cmarquee02.top-=velocidad setTimeout("scrollit()",100) } else{ document.cmarquee01.document.cmarquee02.top=alto scrollit() } } window.onload=regenerar2 </script> Este código lo guardamos en un archivo marquesina.php y le hacemos un include(“marquesina.php”); dentro del index.php de nuestro sitio o donde sea. Otra opción es poner todo el código directamente en la página. Luego para que funcione por completo debemos crear una página que reciba el idnot y muestre el contenido de la noticia. Con el siguiente php (archivo “vernoticia.php”) Código PHP: CODE <?php include("conectar.php"); //defino la variable que viene por get $idnot=$_GET['idnot']; //defino el Select de la consulta y luego hago la consulta $ssql=("SELECT *,DATE_FORMAT(fecha,'%d-%m-%Y') AS mi_fecha FROM noticias WHERE idnot=$idnot"); $result=mysql_query($ssql,$conn); while ($row=mysql_fetch_array($result)) { echo $fecha=$row[mi_fecha]." - "; echo "<b>".$row[titulo]."</b><br><br>";
$variable=$row['contenido']; // Convertir links (URLs) usé este código que saque del foro para revisar el contenido y ver si hay //vínculos y linkear. $variable = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a rel="nofollow" href="\\1" target="_blank">\\1</a>', $variable); $variable = eregi_replace('([[:space:]()[{}])([url]www.[/url][-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1<a rel="nofollow" href="http://\\2" target="_blank">;\\2</a>;', $variable); echo "<br>". $variable ."<br>"; } ?> <hr size="1" noshade> <a rel="nofollow" href="java script:history.back()">Volver a Marquesina</a> Finalemente puedo incluir esto en un archivo “notimivil.php” Código PHP: CODE <?
include("conectar.php"); include("marquesina.php"); ?> Pueden ver el resultado aquí http://usuarios.lycos.es/bonsaichile.../notimovil.phpLa página tiene un poco de propaganda pero nada tan terrible.
|
|
|
|
|
| black_palma |
Nov 2 2006, 12:33 AM
|
Lineage II Admin - Osama Bin Laden
     
Grupo: Banned
Mensajes: 504
Registrado: 2-September 06
Desde: Aden Castle Town - Lineage II World
Miembro nº: 179.743

|
Tema: Recomendar Sitio web Pregunta: ¿Como recomendar mi sitio web a un amigo? Respuesta: Con el siguiente ejemplo podremos crear nuestro Recomendador, ademas podrias agregar comprobaciones para que no queden sueltos algunos campos. Código PHP: CODE <?php //////////////////////////////////////////////////////////////////// // Tellfriend ver. 1.0 // Copyright (c)2000 Victor Simental // URL: http://www.Kurt-Cobain.info // This script is distributed as freeware. // It may be used and modified free of charge // for personal, academic or non-profit use. ////////////////////////////////////////////////////////////////////
if ($sub != "") {
// Mensaje de confirmacion $respuesta="Tu mensaje ha sido enviado con exíto a $email2"; $recibido="From: $email1 n"; mail( "$email2", "$subjet",
//Modifica el texto deacuerdo a tu sitio, puedes usar $titulo para el nombre de tu sitio
"$nombre Algien te ha recomendado nuestro sitio dedicado a lo que sea ubicado en http://$titulo nn$msg", $recibido ); }
// Subjet del mensaje //Se puede Modificar $subjet="Hola $nom Te han recomendado nuestro sitio en tudominio.com";
// Mensaje de textarea //Se puede Modificar
$mensaje="Visita nuestro fabuloso sitio http://www.misitio.com";
//Escribe el nombre de tu sitio y modifica unicamente $titulo //no borres www $titulo = " www.misitio.com"; $enviar = "Recomendar".$titulo; ?>
<!-- Formulario -->
<table width="100%" border="0" align="center"> <tr> <td> <div align="center"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif"><b><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"> <? echo $respuesta; ?> </font></b></font></div>
</td></tr> <tr><td> <div align="center"> <form name="form1" method="post" action="tellfriend.php"> <font size="1"> <font face="Verdana, Arial, Helvetica, sans-serif"> <input type="hidden" name="sub" value="si"> <input type="hidden" name="subjet" value="<? echo $subjet; ?>"> <br> Escribe el nombre de tu amigo:<br> <input type="text" name="nombre" value=""> <br> Escribe tu e-mail:<br> <input type="text" name="email1" value=""> <br> El e-mail de tu amigo:<br> <input type="text" name="email2" value=""> </font></font><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br> Agrega un mensaje (opcional):</font> <font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
<textarea name="msg" rows="5" cols="50"><? echo $mensaje; ?></textarea> <br><br> <input type="submit" name="Submit" value="<? echo $enviar; ?>"> <b><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"> </font></b><br> </font> Tellfriend Ver.1.0 Powered by Victor Simental</form> </div> </td> <tr><tr> <td></td> </tr></table>
<!-- Fin del script --> creo que se entiende para que funciona este script, no? Recomendar un sitio!
|
|
|
|
|
| black_palma |
Nov 2 2006, 12:35 AM
|
Lineage II Admin - Osama Bin Laden
     
Grupo: Banned
Mensajes: 504
Registrado: 2-September 06
Desde: Aden Castle Town - Lineage II World
Miembro nº: 179.743

|
Tema: E-mails Pregunta: ¿Cómo hacer que el "mensaje" de un e-mail se encuentre en un archivo .php? Nuestro problema consistía en meter la variable "$mensaje" de la función mail() en un archivo llamado "mensaje.php" y lograr que PHP interpretara el código que dicho archivo llevaba internamente: Código PHP: CODE mail($admin,"ASUNTO",$mensaje,"Content-Type: text/html; charset=iso-8859-1\nFROM: DRCYBER <$usuario>"); Primero, creas la siguiente función: Código PHP: CODE function send($var,$row) { ob_start(); include("$var"); $mensaje = ob_get_contents(); ob_end_clean(); return $mensaje; } Y sencillamente, modificas tu función mail() asi: Código PHP: CODE mail($admin,"ASUNTO",send(mensaje.php',$row),"Content-Type: text/html; charset=iso-8859-1\nFROM: DRCYBER <$usuario>"); Listo!. Ahora podrás mandar mensajes dinámicos llamando datos desde una BD o desde $_POST y $_GET. NOTA: $row es el array que usas para llamar los campos de tu BD, pej: $row[usuario], $row[contrasena], $row[email], etc.
|
|
|
|
|
| black_palma |
Nov 2 2006, 12:37 AM
|
Lineage II Admin - Osama Bin Laden
     
Grupo: Banned
Mensajes: 504
Registrado: 2-September 06
Desde: Aden Castle Town - Lineage II World
Miembro nº: 179.743

|
Tema: Reconocer el idioma del visitante Pregunta: Como puedo configurar mi pagina para diferentes idiomas Respuesta: Con HTTP_ACCEPT_LANGUAGE Código PHP: CODE if(empty($sitelang)){ //primero preguntamos si la variable que va a contener el lenguage del visitante esta vacia $sitelang = getenv("HTTP_ACCEPT_LANGUAGE"); // si esta vacia sacamos el lenguage del visitante y lo ponemos en la variable $sitelang } switch($sitelang){ //ahora cargamos el archivo que contiene el idioma segun la varible que sacamos antes case "es" : //es = español include("./lang/lang-esp.php"); //ahora cargamos el archivo que contiene las variables y sus palabras break; case "en" : //en = ingles include("./lang/lang-eng.php"); break; default : include("./lang/lang-esp.php"); //cargamos un idioma por defecto si no se encontro algun idioma break; } ahora el archivo que contiene las palabras con sus traducciones lang-esp.php Código PHP: CODE <?php define('_LOGIN','Logeado');//lo definimos con una palabra que todos los archivos de lenguage tienen que tener para definir la funcion que cumple, despues la palabra que lo va a remplazar define('_REGISTER','Registrarce'); define('_HELO','Hola'); define('_ACCEPT','Aceptar'); define('_ACCESS_ADD','Añadir'); ?> y para poner la palabra que definimos anteriormente Código PHP: CODE <? echo _REGISTER;//esto pondria en pantalla Registrarce ?> notece que las palabras que definimos hay que tratarlas como variables ejemplo para poner una palabra que definimos en alguna frace seria haci echo "hola esta un una prueba para mostrar registrado en tu idioma "._REGISTER." bla bla";
|
|
|
|
|
| black_palma |
Nov 2 2006, 12:39 AM
|
Lineage II Admin - Osama Bin Laden
     
Grupo: Banned
Mensajes: 504
Registrado: 2-September 06
Desde: Aden Castle Town - Lineage II World
Miembro nº: 179.743

|
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: CODE function comprobar_mail($mail){ if (!ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$mail)){ return FALSE; } else { return TRUE; }
} Como usar? 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: CODE $email="algo@dominio.com"; if(comprobar_mail($email)){/*Si la funcion devuelve TRUE, osea que si esta correcto muestro un mensaje o lo que quiera mostrar*/ echo "Sintax Mail Correcto"; }else{ echo "Sintax Mail Erroneo";/*Si devolivio False osea que esta mal muestro un mensaje o lo que quiera mostrar*/ } Y para verificar la existencia de una direccion se puede utilizar la funcion getmxrr() , pero solo en servidores *.nix
|
|
|
|
|
| black_palma |
Nov 2 2006, 12:39 AM
|
Lineage II Admin - Osama Bin Laden
     
Grupo: Banned
Mensajes: 504
Registrado: 2-September 06
Desde: Aden Castle Town - Lineage II World
Miembro nº: 179.743

|
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: CODE $fecha =date("d/mY | H:i:s"); setcookie("fecha",$fecha,time()+172800);// esta cookie dura 2 dias, tiene por nombre fecha y como valor la variable $fecha
if(isset($HTTP_COOKIE_VARS["fecha"]))//si la cookie existe { echo "Tu ultima visia fue el ".$HTTP_COOKIE_VARS["fecha"]; } else { echo "Es la primera ves que me visitas"; } Para destruir la cookie que acabamos de crear Código PHP: setcookie("fecha","x",time()-3600);//especificamos el nombre de la cookie, el valor no importa por eso "x" y la destruccion Mas info http://www.php.net/manual/es/function.setcookie.php
|
|
|
|
|
| Lord MinDokan |
Nov 2 2006, 09:46 PM
|
Más alto subes, más duro el golpe de la caída.-

Grupo: Moderadores
Mensajes: 3.408
Registrado: 6-February 06
Desde: Argentina, Santa Fe, Rosario
Miembro nº: 159.059

|
no lo modifiqué... lo edite y acomodé... Igual ya te digo que esta superbueno tenerte en el foro... y una cosa más... Sige mandando esos tutoriales de los cuales hablamos... esos con los que aprendiste, así lo compartes!!! Iba a postearlo yo pero veo que te sobran ganas de hacerlo Black_palma... Esperamos más tutos..... Sigue así!!!
|
|
|
|
|
| black_palma |
Nov 2 2006, 09:57 PM
|
Lineage II Admin - Osama Bin Laden
     
Grupo: Banned
Mensajes: 504
Registrado: 2-September 06
Desde: Aden Castle Town - Lineage II World
Miembro nº: 179.743

|
PREGUNTA: ¿que debo tomar en cuenta antes de hacer una web? RESPUESTA: primero que todo tienes que saber que es el contenido que queres que aparesca en tu web , juegos , musica ,etc... luego debes de pensar en tu tema (diseño) , colores , forma , banners , imagenes y finalmente empiesas a insertar contenido cuando tengas todo. algunos diseños preechos: php-nuke: es un buen diseño , no es gratis pero es muy bueno enserio , posee modulos , contadores y todo lo que necesita un webmaster nuke-evolution: es un tipo de php-nuke pero gratis nuke-et: se los recomiendo , es un muy buen diseño que viene con muchas utilidades , autoinstalacion y mucho mas (todos los que nombre son versiones copiadas del php-nuke)
|
|
|
|
|
Suscribirse a esta discusión
Recibirás una notificación vía correo cuando haya una respuesta y no estés activos en los foros.
Suscribirse a este foro
Recibirás una notificación vía correo cuando haya una nueva discusión y no estés activo en los foros.
Bajar/imprimir
Podrás bajar esta discusión en varios formatos o ver una versión apta para impresora.

Topicos similares

Topicos similares
|