Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: -Riven-Ward- en 18 Abril 2004, 23:21 PM

Título: Scripts Php/MySQL
Publicado por: -Riven-Ward- en 18 Abril 2004, 23:21 PM
Buenas :).

Si, si se que se parece al post de Cobac, pero quería postear los que yo he hecho, porque me han servido mucho ;D. Espero que os sirvan :P.

IMPORTANTE: Estos scripts van sin la "seguridad que necesitan" (vamos, que unos 3 la necesitan, los otros no xD). Si quieren seguridad, ustedes se la ponen :).

Primero que nada, conexion.php que es el que nos ayudará a conectarnos en todo:

<?php 
$conexion 
mysql_connect("localhost","usuario","clave");
mysql_select_db ("basedatos"$conexion) OR die ("Base de datos inexistente, o temporalmente inactiva");
?>



TagBoard, Con MySQL y Smileys

Primero creamos la tabla en el PhpMyAdmin:

CREATE TABLE tagboard (
id int(10) auto_increment,
autor varchar(255) NOT NULL,
comentario varchar(255) NOT NULL,
fecha varchar(255) NOT NULL,
email varchar(255) NOT NULL,
PRIMARY KEY (id)
)


Ahora tagboard.php

<?php
include ("conexion.php");
if (
$comentario && $comentarios == "") {
echo 
"Porfavor, introduce un comentario";
}
elseif (
$comentario && $autor == "") {
echo 
"Porfavor, Introduce tu nick";
}
elseif (
$comentario) {
$fecha date("d/m/Y g:i:s a");
function 
smileys($var) {
$a str_replace("[","",$var) ;
$var str_replace("]","",$var) ;
$var str_replace(":D","[grin.gif]",$var) ;
$var str_replace(":)","[smiley.gif]",$var);
$var str_replace(";)","[wink.gif]",$var);
$var str_replace(":S","[huh.gif]",$var);
$var str_replace(":(","[sad.gif]",$var);
$var str_replace(":@","[angry.gif]",$var);
$var str_replace(":P","[tongue.gif]",$var);
//uno de estos por cada smiley
$var str_replace("[","<img src=\"smileys/",$var) ;
$var str_replace("]","\">",$var) ;
return 
$var;
}
$comentarios htmlentities ($comentarios);
$comentarios smileys($comentarios);
mysql_query ("INSERT INTO tagboard (autor,email,comentario,fecha) VALUES ('$autor','$email','$comentarios','$fecha')",$conexion);
?>

<html>
<head>
<script language="javascript">
function smileys () {
window.open ('smileys.php','smileys','width=100,height=100,resizable=no,toolbar=no,status=no');
}
</script>
</head>
<body>
<iframe src="comentarios.php"></iframe><br>
<form action="<?php echo $PHP_SELF ?>" method="post">
Introduce tu nick: <input type="text" name="autor"><br>
Introduce tu email: <input type="text" name="email"><br>
Introduce tu comentario: <textarea name="comentarios"></textarea><br><br>
<input type="submit" name="comentario" value="Enviar">
<br>
<a href="javascript:smileys()">Smileys</a>
</form>
</body>
</html>
<?
}
else {
?>
<html>
<head>
<script language="javascript">
function smileys () {
window.open ('smileys.php','smileys','width=300,height=400,resizable=no,toolbar=no,status=no');
}
</script>
</head>
<body>
<iframe src="comentarios.php"></iframe><br>
<form action="<?php echo $PHP_SELF ?>" method="post">
Introduce tu nick: <input type="text" name="autor"><br>
Introduce tu email/web: <input type="text" name="webemail"><br>
Introduce tu comentario: <textarea name="comentarios"></textarea><br><br>
<input type="submit" name="comentario" value="Enviar">
<br>
<a href="javascript:smileys()">Smileys</a>
</form>
</body>
</html>
<?php
}
?>


Luego comentarios.php

<?php
include ("conexion.php");
$sql "SELECT * FROM tagboard ORDER BY 'id' DESC";
$resp mysql_query ($sql);
while (
$row mysql_fetch_array ($resp)) {
echo 
"<font face=Verdana size=2><a href=mailto:".$row ["email"].">".$row ["autor"]."</a><br>";
echo 
"".$row ["comentario"]."<br>Fecha: ".$row ["fecha"]."<br><hr></font>";
}
?>


Y ahora, vamos por los Smileys. Creamos la tabla smileys,

CREATE TABLE smileys (
id int(10) auto_increment,
nombre varchar(25) NOT NULL,
url varchar(255) NOT NULL,
texto varchar(10) NOT NULL,
PRIMARY KEY (id)
)


Ahora insertamos los smileys que tengamos en el PhpMyAdmin (vamos a insertar, dentro de la tabla smileys).

Lo hacemos de la siguiente manera:

id: Dejamos en blanco
nombre: ejemplo, Grin.
url: nombre del archivo, ejemplo, grin.gif.
texto: como hacer el smiley, ejemplo, :D

Ahora creamos smileys.php

<table>
<tr><td>Nombre</td><td>Imágen</td><td>Forma de hacerlo</td></tr>
<?php
include ("conexion.php");
$sql "SELECT * FROM smileys";
$resp mysql_query ($sql);
while (
$row mysql_fetch_array ($resp)) {
echo 
"<tr><td>".$row ["nombre"]."</td><td><img src=smileys/".$row ["url"]."></td><td>".$row ["texto"]."</td></tr>";
}
?>


Recuerden que deben poner los smileys en el directorio smileys.

Eso es todo con el Tagboard ;D. Cualquier error avisarme con línea y todo.
Título: Sistema de Afiliados
Publicado por: -Riven-Ward- en 18 Abril 2004, 23:28 PM
Ahora crearemos un sistema de afiliados, que contara visitas entrantes, salientes, etc, tal como el GoldLink (ahora RivenLink xDD).

Creamos la tabla en el PhpMySql:

CREATE TABLE afiliados (
id int(10) auto_increment,
nom varchar (255) NOT NULL,
web text NOT NULL,
lec int(10) NOT NULL,
descripcion varchar(255) NOT NULL,
entrantes int(10) NOT NULL,
PRIMARY KEY (id)
)



Ahora creamos el archivo que mostraría a los afiliados, afiliados.php.


<?php
include ("conexion.php");
$sql "SELECT * FROM afiliados";
$resp mysql_query ($sql);
while (
$row mysql_fetch_array ($resp)) {
echo 
"<a onMouseOver=\"window.status='Descripción: ".$row ["descripcion"]." | Visitas Entrates: ".$row ["entrantes"]." | Visitas Salientes: ".$row ["lec"]."';return true\" href=afiliado.php?id=".$row ["id"]." target=_blank>".$row ["nom"]."</a><br>";
}
echo 
"<br><br> <a href=\"afiliate.php\">Afiliate Aqui</a>";
?>


Ahora creamos el archivo al que iría al apretar sobre un afiliado, afiliado.php

<?php
include("conexion.php");
$sql "SELECT * FROM afiliados WHERE id LIKE '$id'";
$resp mysql_query($sql);
$suma mysql_query("select * from afiliados where id like $id",$conexion);
$upd=mysql_fetch_array($suma);
$lec=$upd["lec"]+1;
$update=mysql_query("Update afiliados Set lec=$lec Where id=$id",$conexion);

while (
$row mysql_fetch_array($resp)) {
$url $row["web"];
$nombre $row["nom"];
$salidas $row["lec"];
$descripcion $row ["descripcion"];
$entradas $row ["entrantes"];
}
?>

<html>
<head>
<meta http-equiv="refresh" content="1;URL=<?php echo "$url;?>">
</head>
<body>
Nombre: <?php echo $nombre ?>&nbsp;&nbsp;(<?php echo $url ?>)</font><br>
Descripcion: <?php echo $descripcion ?><br>
Visitas salientes: <?php echo $salidas ?>&nbsp;&nbsp;&nbsp;Visitas entrantes: <?php echo $entradas ?>.</font><br>
</body>
</html>


Ahora el archivo para agregar afiliados, afiliate.php

<?php
include ("conexion.php");
if (
$nuevo) {
$id $_POST ['web'];
$id2 mysql_query ("SELECT id FROM afiliados WHERE web LIKE '$id'",$conexion);
mysql_query ("SELECT * FROM afiliados");
mysql_query ("INSERT INTO afiliados (nom,web,descripcion) VALUES ('$nom','$web','$descripcion')",$conexion);
echo 
"Has sido agregado a la base de datos con exito <img src=\"http://www.elextremo.cl/smiley.gif\">. Debes linkearnos a http://www.aquituweb.com/in.php?id=TUID. Puedes ver tu id en la sección de afiliados.";
}
else {
?>

<form action=afiliate.php action="post">
Ingresa el nombre de tu web: <input type=text name=nom><br>
Ingresa la url de tu web: <input type=text name=web><br>
Ingresa la descripcion de tu web: <input type=text name=descripcion><br>
<input type=submit name=nuevo value=Registrar>
</form>
<?
}
?>


Y por último, el archivo que contará las visitas provenientes del afiliado, in.php

<?php
include ("conexion.php");
$sql "SELECT * FROM afiliados WHERE id LIKE '$id'";
$resp mysql_query ($sql);
$en mysql_query ("SELECT * FROM afiliados WHERE id LIKE '$id'",$conexion);
$upd mysql_fetch_array ($en);
$entrantes $upd ["entrantes"]+1;
$update mysql_query ("UPDATE afiliados SET entrantes = $entrantes WHERE id LIKE '$id'",$conexion);
while (
$row mysql_fetch_array ($resp)) {
$entrantes $row ["entrantes"];
}
echo 
"Hola, la web ".$row ["nom"]." nos ha mandado $entrantes visitas :)";
?>

<html>
<head>
<meta http-equiv="refresh" content="1;URL=index.htm">
</head>
</html>


Esto es todo con el Sistema de Afiliados :).
Título: Upload de archivos en Php
Publicado por: -Riven-Ward- en 18 Abril 2004, 23:36 PM
Este es un script muy simple, pero que servira mucho cuando quieras que tus usuarios suban sus fotos a tu web :P.

upload.php

<?php
if ($enviar) {
move_uploaded_file($archivo,"archivos/$archivo_name");
$url "archivos/".$archivo_name;
chmod($url,0777);
echo 
"Archivo subido exitosamente";
}
else {
?>

<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="archivo"><br>
<input name="enviar" type="submit">
<?php
}
?>


Debemos crear la carpeta archivos y darle permisos 777. Eso es todo.
Título: Buscador Interno en PHP/MySQL
Publicado por: -Riven-Ward- en 26 Mayo 2004, 11:57 AM
Aqui os mostraré como crear un buscador interno en php, el cual buscará cualquier cosa dentro del nombre de un artículo, manual, o cuanta cosa tengas en tu base de datos...

Primero creas el archivo conexion.php (el que contendrá la conexión a la base de datos:

<?php 
$conexion 
mysql_connect("localhost","user","password");
mysql_select_db ("base_de_datos"$conexion) OR die ("La base de datos esta inaccesible, o no existe");
?>



Luego creas buscador.php, el buscador:

<?php

//Inicio Configuración
$tabla "reportes";
//Fin Configuración

if (isset ($buscar)) {
$palabra htmlentities ($palabra);
$palabra htmlspecialchars ($palabra);
include (
"conexion.php");
$sql "SELECT * FROM ".$tabla." WHERE nombre LIKE '%".$palabra."%'";
$resp mysql_query ($sql);
if (
mysql_fetch_array ($resp) <= 0) {
echo 
"<basefont face=\"Verdana\" size=\"2\">No se encontraron resultados con el termino ".$palabra.".";
}
else {
while (
$row mysql_fetch_array ($resp)) {
echo 
"Aqui los echos xDDDD";
}
}
}
else {
?>

<form action="<? $PHP_SELF ?>" method="post">
<basefont face="Verdana" size="2">Introduce el termino a buscar: <input type="text" name="palabra">
<br><br>
<input type="submit" name="buscar">
</form>
<?php
}
?>


Bueno esa es una pequeña idea, recuerda cambiar $tabla por el nombre de tu tabla y "nombre" (está entremedio de la consulta SQL) por el campo de la tabla.

Salu2!
Título: Sistema de Newsletters
Publicado por: -Riven-Ward- en 26 Mayo 2004, 12:06 PM
Con este código podrán hacer un sistema para enviar newsletters, el cuál consiste en hacer que el user se registre/ desregistre (en ese caso se borra de la base de datos) y en otra página tu puedas mandar los newsletter a todos los usuarios de una vez:

Creamos el archivo de conexión a base de datos, conexion.php:

<?php 
$conexion 
mysql_connect("localhost","user","password");
mysql_select_db ("base_de_datos"$conexion) OR die ("La base de datos esta inaccesible, o no existe");
?>


Luego creas la base de datos, usuarios, para que los users se registren:

CREATE TABLE usuarios (
id int(10) NOT NULL auto_increment,
nombre varchar (255) NOT NULL,
mail varchar(255) NOT NULL,
PRIMARY KEY (id)
)


Ahora newsletter.php , el que puedes incluir en tu index a través de un inlcude:

<?php
if ($new == "del") {
include (
"conexion.php");
$sql mysql_query ("SELECT * FROM usuarios WHERE mail LIKE '$mail'",$conexion);
if (
mysql_num_rows ($sql) != 0) {
mysql_query ("DELETE FROM usuarios WHERE email LIKE '$mail'",$conexion);
echo 
"Haz sido borrado con éxito, No recibiras mas mails con novedades.";
}
else {
echo 
"Ya haz borrado el mail, o no existe en la base de datos :).";
}
}
elseif (
$new == "ins") {
include (
"conexion.php");
$sql mysql_query ("SELECT * FROM usuarios WHERE mail LIKE '$mail'",$conexion);
if (
mysql_num_rows ($sql) == 0) {
mysql_query ("INSERT INTO usuarios (nombre,mail) VALUES ('$nombre','$mail')",$conexion);
echo 
"Registrado con éxito :).";
}
}
else {
?>

<form action="<?php $PHP_SELF ?>" method="post">
Suscribirse a Newsletter.<br><br>

Ingresa tu nombre (o nick): <input type="text" name="nombre"><br>
Ingresa tu Mail: <input type="text" name="mail"><br>
<select name="new">
<option value="ins">Suscribir</option>
<option value="del">DesSuscribir</option>
</select>
<input type="submit">
</form>
<?php
}
?>



Y por último, el archivo para enviar los newsletters, enviar.php:

<?php
if (isset ($enviar)) {
include (
"conexion.php");
$resp mysql_query ("SELECT * FROM usuarios",$conexion);
while (
$row mysql_fetch_array ($resp)) {
$nombre $row ["nombre"];
$mail $row ["mail"];
$mensaje $_POST ["mensaje"];
$men "Estimado ".$nombre.", \n ".$mensaje."";
mail ($mail,"Newsletter de Aqui el nombre de tu web!",$men,"FROM: newsletter@tuweb.com");
}
}
else {
?>

<form action="<?php $PHP_SELF ?>" method="post">
Introduce el mensaje:<br><br>
<textarea name="mensaje"></textarea>
<br><br>
<input type="submit" name="enviar" value="Enviar Newsletter">
</form>
<?php
}
?>



Según yo, no tiene errores, ya que lo uso yo, pero en cualquier caso, si los tiene, favor de avisarme...


Salu2!
Título: Contador de visitas con PHP y Archivos de texto
Publicado por: -Riven-Ward- en 29 Mayo 2004, 08:40 AM
Este script es muy fácil, solo cuenta de unas líneas... Aquí les daré dos opciones:
1- Que se cuente cada vez que entre un user a una página
2- Que se cuente una vez por día, asi obtendrías visitas reales (en mi opinión, mejor).


Si lo quieres de la primera forma, crea el archivo lec.txt y dejalo en blanco, y luego dale permisos 666 al archivo. Y despúes crea contador.php y pega este código:

<?php
$contador 
"lec.txt";
$fp fopen($contador"r");
$t fread($fpfilesize($contador));
fclose($fp);
$fp fopen($contador"w");
$t $t 1;
$gc fwrite($fp$t);
fclose($fp);
echo 
"Hemos recibido ";
include (
"lec.txt");
echo 
" visitas.<br>";
?>


Como ven, se usa fopen, fread, fwrite y fclose: podrán obtener mas información de estas funciones en el manual que publiqué con neohex, en esta dirección : http://foro.elhacker.net/index.php?topic=25674.0 .

Y si optan por la opción 2, hagan lo mismo que en el caso 1, pero peguen este código en el archivo contador.php :

<?php
if ($_COOKIE ["visitas"]) {
echo 
"Hemos recibido ";
include (
"lec.txt");
echo 
" visitas.<br>";
}
else {
$contador "lec.txt";
$fp fopen($contador"r");
$t fread($fpfilesize($contador));
fclose($fp);
$fp fopen($contador"w");
$t $t 1;
$gc fwrite($fp$t);
fclose($fp);
setcookie ("visitas","visitas",time()+86400);
}
?>


En el que se usan las mismas funciones, pero ahora lo que hace es que si no hay cookie dada, cuenta una visita mas y crea una cookie de duración de un día (86400 segundos). Y ahora, si el user vuelve a entrar, ve que hay cookie y solo muestra cuantos usuarios han entrado a la web ;D.

Salu2!
Título: Mostrar fecha con meses escritos
Publicado por: -Riven-Ward- en 16 Junio 2004, 11:23 AM
Bueno este es un script que no se diferencia mucho del script simple, pero es mas completo.

Por ejemplo, si escribiesemos esto:

<?php
$fecha 
date ("d/m/Y");
echo 
"Hoy es " $fecha;
?>


Escribiría esto en pantalla:

CitarHoy es 15/06/04

Pero, si escribiesemos esto:

<?php
$dia 
date ("d");
$mes date ("m");
$ano date ("Y");
if (
$mes == 1) {
$mes "Enero";
}
if (
$mes == 2) {
$mes "Febrero";
}
if (
$mes == 3) {
$mes "Marzo";
}
if (
$mes == 4) {
$mes "Abril";
}
if (
$mes == 5) {
$mes "Mayo";
}
if (
$mes == 6) {
$mes "Junio";
}
if (
$mes == 7) {
$mes "Julio";
}
if (
$mes == 8) {
$mes "Agosto";
}
if (
$mes == 9) {
$mes "Septiembre";
}
if (
$mes == 10) {
$mes "Octubre";
}
if (
$mes == 11) {
$mes "Noviembre";
}
if (
$mes == 12) {
$mes "Diciembre";
}
echo 
"Hoy es ".$dia." de ".$mes." de ".$ano;
?>


Nos escribiría:

Hoy es 16 de Junio de 2004

Como pueden ver, el primero es muy simple y muestra algo muy simple, pero el segundo es algo complejo y muestra casi lo mismo... Pero como decía es algo mas completo.

No falta decir que si quieren agregar la hora, solo agreguen esto al texto:

<?php
$fecha 
date ("g:i:s a d/m/Y");
?>


hay ustedes varían el contenido...

Salu2!
Título: Paginación de registros
Publicado por: -Riven-Ward- en 14 Agosto 2004, 08:43 AM
Bueno, en esta parte pondré como paginar registros, totalmente configurable. Se puede poner el número de registros por página, y todo eso.

Aqui va:

pagina.php
<?php
include ("conexion.php");

######Configuración#######
                         #
$paginas 7;            #
$tabla "aquitutabla";  #
                         #
##########################

$actual = (!isset ($pg))?1:$pg;
$sql mysql_query ("SELECT * FROM ".$tabla."");
$total mysql_num_rows ($sql);
if (
$actual == 1) {
$desde "0";
}
elseif (
$actual != 1) {
$desde $actual $paginas $paginas;
}
$tp = ($total $paginas);
if (
strstr($tp,'.')){ 
$tp explode (".",$tp);
$tp = ($tp[0]+1);
}
$resp mysql_query ("SELECT * FROM ".$tabla." ORDER BY id LIMIT ".$desde.",".$paginas."");
while (
$row mysql_fetch_array ($resp)) {
//Aqui parte la parte de modificación
echo "Registro: ".$row["campo"]."<br>";
//Aqui termina xD
}
$pag = ($tp == 1) ? página páginas;
$reg = ($total == 1) ? registro registros;
?>

<br>Encontrados <b><?=$total?></b> <?=$reg?> en <b><?=$tp?></b> <?=$pag?><br>
<?php
$anterior 
true;
$siguiente true;
if ((
$actual == 1) AND ($actual == $tp)) {
$anterior false;
$siguiente false;
}
elseif (
$actual == $tp) {
$anterior true;
$siguiente false;
}
elseif (
$actual == 1) {
$anterior false;
$siguiente true;
}
if (
$anterior) {
echo 
"<a href=\"pagina.php?pg=".($actual-1)."\">&lt; Página anterior</a> | ";
}
else {
echo 
"|";
}
for (
$i 1$i <= $tp;$i++) {
if (
$i == $actual) {
echo 
" <b>".$i."</b> | ";
}
else {
echo 
"<a href=\"pagina.php?pg=".$i."\"> ".$i."</a> |";
}
}
if (
$siguiente) {
echo 
" <a href=\"pagina.php?pg=".($actual+1)."\"> Página siguiente &gt;</a>";
}
?>


Solo debes cambiar el nombre de la tabla, el número de consultas por página, y las cosas que quieres mostrar (dentro del while).

Espero que sirva,

Salu2!

PD: Gracias a Azielito, con el arreglamos unos pequeños problemas que tenía :-*
Título: Usar imágen para mostar cosas de PHP
Publicado por: -Riven-Ward- en 13 Septiembre 2004, 04:23 AM
Bueno, ustedes conocerán las Librerías GD.

Son unas librerías (... xDD) para trabajar con imágenes. Por ejemplo, poner la IP del visitante en una imágen.

NOTA: No todos los host's aceptan GD... Pregunten con el administrador. Si no tienen GD, no pueden usar esto.

Les dejo un ejemplo que hice yo aqui, que muestra la fecha actual y la IP del visitante, con un fondo hecho en Photoshop ;D

(http://www.elextremo.cl/gd.php)

Con ésta función que voy a poner, puedes elegir la fuente que quieras que tenga el texto que pondrás, la posición del texto, el ángulo (puedes ponerlo en distintos ángulos, p.e 90°) y el tamaño de fuente. Solo se pueden usar imágenes JPG y PNG. Bueno, no SOLO esas, pero son las mas usadas y las que mejor se ven. El Gif NO se puede usar a partir de la versión 1.6 del GD... Bueno, después de esta breve explicación, va el código:

<?php
header
("Content-type: image/jpeg"); //El tipo de imágen
$im "http://www.tuweb.com/imagen.jpg"//Url COMPLETA de la imágen
$img ImageCreateFromJpeg ($im);
$color ImageColorAllocate ($img000); 
/*
Color negro... El color está en formato RGB, puedes ver esto en el Paint, o el Photoshop.
El negro es el 0 0 0 y el blanco el 255 255 255
*/
$texto "Hola, eres ".$REMOTE_ADDR;
ImageTTFText($img1002595$color"/home/pagina/public_html/arial.ttf",$texto);
/*
Pequeña explicación de esta función:
Estructura: array imagettftext ( resource imagen, int tamanyo, int angulo, int x, int y, int color, string archivo_fuente, string texto)
-> Sacado de php.net <-
La fuente debe estar en tu servidor, no es necesario que le usuario la tenga. Además, la fuente debe estar en su RUTA COMPLETA, como la que se indica arriba.
Debes cambiar la posición del texto y todo eso. Recuerda que puedes ver en que posición poner el texto con Paint, abajo sale el lugar en el que está el mouse. Te saldrá, p.e., 12,42: Ponlos en ese orden.
*/
ImageJpeg ($img); //Se muestra la imágen
ImageDestroy ($img); //Se libera la memoria y FIN :D
?>



Debo agregar que si la imágen es PNG, deben cambiar las siguientes funciónes:

header("Content-type: image/jpeg"); -> header("Content-type: image/png");

ImageCreateFromJpeg -> ImageCreateFromPng

ImageJpeg -> ImagePng

Creo que eso es todo... Para mayor información, ver la documentación de PHP.

Salu2!
Título: Obtener información de visitantes y ponerla en un .txt
Publicado por: -Riven-Ward- en 16 Septiembre 2004, 05:02 AM
En este Script se obtiene información de cada visitante que entre, como:

-Fecha y hora
-Pc
-Lenguaje
-Web de donde viene
-IP

Y todo eso se guarda en un .txt, entrantes.txt al cual debes darle permisos 777 (sin esto no funcionará):

<?php
$archivo 
"entradas.txt";
$web = (!$HTTP_REFERER)?"Ninguna web":$HTTP_REFERER;
//Se ve si el user viene de alguna web, si es así, pone de que web y si no viene de ninguna, pone Ninguna web
$fecha date("d/m/Y g:i:s a"); //Se ve la fecha y hora
$entrada "Nueva Entrada en ".$fecha.":
IP: "
.$REMOTE_ADDR."
Pc: "
.$HTTP_USER_AGENT."
Lenguaje: "
.$HTTP_ACCEPT_LANGUAGE."
Viene de: "
.$web."
\n"
//Se guardan los datos en una variable
$f fopen($archivo,"a"); //Se abre el archivo .txt
fwrite($f,$entrada); //Se ponen los datos obtenidos en el archivo
fclose($f); //Se cierra el archivo
?>


Salu2!
Título: Uso de EE.RR para hacer BBCode
Publicado por: -Riven-Ward- en 20 Septiembre 2004, 12:57 PM
Bueno, algunos de ustedes se podrán preguntar "Que #%!% son las EE.RR???", pues, son las "Expresiones Regulares", y sirven para encontrar tal cosa dentro de tal texto o variable, y ese tipo de cosas.

Esto se usa, por ejemplo, para el BBCode, tal sea cambiar [color=tal]Algo[/color] por <font color=tal>Algo</font>, etc...

En este caso, se hará para reemplazar -> [url=http://www.algo.com]Algo[/url] por <a href=http://www.algo.com>Algo</a>.

Para esta EE.RR se usará la función preg_replace, que reemplazará cualquier coincidencia con lo buscado.

Se haría asi:

<?php
function bbcode ($text) {
$text preg_replace ("/\[url=(http://\/\/www\.([0-9a-z](.+))\.([a-z]{2,4}))\](.+)\[\/url\]/i","<a href=\\1>\\5</a>",$text);
return 
$text;
}
$algo "Hola!! Mi web es [url=http://www.elextremo.cl]ESTA[/url]";
$algo bbcode ($algo);
echo 
$algo;
?>


Bueno, pueden parecer hasta letras chinas, pero aquí les explico que son cada una:

El / del principio y el / del final indican el principio y el final de la expresion regular (valga la redundancia :P).

Ahora, para poner caracteres del tipo [ . / etc se debe poner una \ antes, para que reconozca que se está hablando de texto. Es por esto que hay un \[ url=http:// , que indica que al principio debe haber un [ url=http://.

Sigue esto (http://\/\/www\.([0-9a-z](.+))\.([a-z]{2,4})) que, traducido al español, sería: cualquier dirección que empieze por http://www. y que esté seguido por cualquier caracter del 0 al 9 y de la A a la Z o otro caracter y que se puede repetir 1 o mas veces, y luego un . (punto) que debe de estar seguido por una palabra de 2 a 4 letras, solo con letras de la A a la Z. Después se pone \] que indicaría fin de [ url=http://.

Luego se usa (.+) denuevo. El . (punto) es un comodín para todos los caracteres, y que se repita 1 o mas veces.

Ahora está el cierre, que es \[\/url\], que equivaldría a [/url].

La i después del / indica que en el texto pueden haber mayúsculas y minúsculas. También se puede usar s, que indica que se pueden poner saltos de línea en el texto.

Luego, se encontrarán con un \\1. Esto indica la primera coincidencia entre los paréntesis. Luego el \\5, que igual al que está arriba.

Espero que se entienda, porque realmente fue muy complicado para mí explicar todo esto :P

Salu2!

PD: Siesque definitivamente no se entiende, porfavor envíame un IM para que trate de explicarlo mejor.
Título: Buscar carácteres inválidos en una cadena
Publicado por: -Riven-Ward- en 11 Octubre 2004, 13:01 PM
Buenas ;D

La verdad no le veo mucho sentido a este script, pero bueh xDD

A través del siguiente script, se revisa cada letra o carácter de una cadena y se le compara con cada row de un array. Si se es igual al row, osea, hay un carácter inválido, se da por falso.

Esto lo hice hoy porque hoy mismo "descubrí" que se puede tratar a una cadena como un array...

Y como un script vale mas que mil palabras (esta me la inventé yo ;D), aquí va:

<?php
$inv 
= array (
0=>32,
1=>33
);
$str "Hola amigo!";
$long strlen ($str)-1;
for (
$i 0$i <= $long$i++) {
for (
$x 0$x <= count($inv); $x++) {
if (
ord ($str[$i]) == $inv[$x]) {
$malo true;
}
}
}
if (
$malo) {
echo 
"Cadena con carácteres inválidos!";
}
else {
echo 
"Cadena correcta";
}
?>


La función ord() es para obtener el ASCII de un carácter.

Como podrán darse cuenta, en el array están los ASCII del espacio (  ) y del signo de exclamación ( ! ). Aquí les dejo la lista de carácteres ASCII, que podrían ser considerados inválidos.

Citar32 ->  (espacio)
33 -> !
34 -> "
38 -> &
39 -> '
40 -> (
41 -> )
42 -> *
45 -> -
46 -> .
47 -> /
58 -> :
59 -> ;
60 -> <
61 -> =
62 -> >
63 -> ?
91 -> [
92 ->
93 -> ]
94 -> ^
123 -> {
124 -> |
125 -> }
126 -> ~

Salu2!
Título: Función para asignar la Unidad de peso a un archivo
Publicado por: -Riven-Ward- en 20 Octubre 2004, 08:01 AM
Esta función sirve para que si tenemos un archivo de 1024 bytes, lo ponga así:

Citar1 kb

Sería así:

<?php
function tamano($arc) {
if (
file_exists ($arc)) {
$tam filesize ($arc);
$un = array ("b","kb","mb");
$ex $un[0];
$i 1
while (
$tam >= 1024 && $i count($un)) {
$tam /= 1024;
$ex $un[$i];
$i++;
}
return 
round ($tam,2)." ".$ex;
}
else {
echo 
"El archivo no existe!";
}
}
?>


Aproxima el peso del archivo y luego, según el peso, le asigna la unidad, que es vista en el Array y pueden agregarle mas.

Y lo llamas así:

<?php
echo tamano ("algo.noseque");
?>


Importante: El script y el archivo deben estar en la misma carpeta.

Es muy útil para sección de descargas y ese tipo de cosas :P

Salu2!
Título: "Explorador" de archivos
Publicado por: -Riven-Ward- en 14 Noviembre 2004, 03:10 AM
Este script sirve para "explorar" los archivos de tu PC, y ir a los que se pueden ver...

<?php
function explorar ($car) {
$tam strlen ($car)-1;
if (
$car[$tam] != "/") {
$car .= "/";
}
$dir opendir($car);
echo 
"Haz click en el archivo al cual quieras ir<br>";
echo 
"<select multiple size=\"10\" onChange=\"window.location.href=this.options[this.selectedIndex].value\">";
while (
$file readdir($dir)) {
echo 
"<option value=\"".$car.$file."\">".$file."</option>";
}
closedir($dir);
echo 
"</select>";
}
if (
$cual) {
if (!
is_dir ($cual)) {
echo 
"El archivo no existe!";
}
else {
explorar ($cual);
}
}
else {
?>

<form action="<?=$PHP_SELF?>" method="post">
<input type="text" name="cual"> (Formato C:/)<br><br>
<input type="submit" name="enviar" value="Explorar!">
</form>
<?php
}
?>


OJO: Donde pones la Unidad o carpeta que quieres explorar, tienes que poner los slashes así: /, no así: \.

Salu2!
Título: Generar contraseñas aleatorias
Publicado por: -Riven-Ward- en 28 Noviembre 2004, 22:51 PM
Con este script puedes hacer contraseñas de X largo (tu eliges, 6 por default) que incluye mayúsculas (A-Z), minúsculas (a-z) y números (0-9). La razón por la cual los otros carácteres (?, !, >, etc...) no fueron incluídos, es porque en algunas partes no aceptan esos carácteres.

Ejemplo de constraseña creada por este script: 4X0Tn1

<?php
$largo 
"6"//Este es el largo del password, puede variar
$invalidos = array (58,59,60,61,62,63,64,91,92,93,94,95,96);
$i "0";
while (
$i $largo) {
mt_srand ((double) microtime()*1000000);
$num mt_rand (48,122);
if (
in_array ($num,$invalidos)){
continue;
}
else {
echo 
chr ($num);
}
$i++;
}
?>


Espero que les sirva.

Salu2!
Título: Colorear código PHP
Publicado por: -Riven-Ward- en 11 Enero 2006, 23:50 PM
Hace tiempo que no posteaba aquí ;D ;D ;D. Pero bueno, aquí les tengo la preciada función para colorear el código PHP, que viene en 'pack' con el código para que no te hagan XSS.

Lo acabo de terminar asique quizás tenga algunas fallas, pero ya iré viendo ;D.

<style>
body {font-family: Verdana; font-size: 10pt; background-color: #5791fb;}
.codigo { border: #000000 1px solid; font-size: 10pt; font-family: Verdana; color: #000000; background-color: #EAECED; }
</style>
<?php
function pintar ($cod) {
$cod htmlentities (stripslashes ($cod));
if (
strstr ($cod"[php]")) {
$php explode ("[php]"$cod);
for (
$i 0$i count ($php); $i++) {
$pos strpos ($php[$i], "[/php]");
if (
strstr ($php[$i], "[/php]")) {
$codigo substr ($php[$i], 0$pos);
$codigo html_entity_decode($codigo) ;
$codigo "<div class=\"codigo\">".highlight_string ($codigo1)."</div>";
$n substr ($php[$i], $pos 6);
$php[$i] = $codigo.$n;
}
}
$cod implode (""$php);
}
$cod str_replace ("
"
"<br>"$cod);
return 
$cod;
}
?>


El estilo del DIV lo saqué del SMF xDDDDDDD.

Bueno, para el modo de uso les pongo un ejemplo:

Hola, este es el primer post ;).

[php]<?php
echo "xDDDDDDDD";
$tx str_replace ("xD""xD2"$tx);
?>
[/php]

<h1>Hola</h1>

Salu2!


Hagan un textarea para sacar de ahí el "post", y luego ponen eso. Se llama así:

<?php
echo pintar ($variable);
?>


Recuerden que se abre/cierra asi: .

Salu2!
Título: Re: Scripts Php/MySQL
Publicado por: chispita68 en 11 Junio 2010, 17:53 PM
Hola soy nuevo en esto del php y mysql, te pido un gran favor en que me enseyes y expliques como manejarlo, es muy importante para mi, he echo varias paginas web, pero lo que falta es usar bases de datos, y no se como empezar, por eso recurro a ti, espero tu respuesta.
Título: Obtener puertos abiertos
Publicado por: Falso Positivo en 14 Junio 2010, 22:25 PM
Obtener puertos abiertos

Es algo que me acaba de servir, busqué en mi historial de navegación la fuente pero tengo "navegación privada" en FF así que el que la vea me manda un PM y edito.

<?php
$servicios 
= array('http''ftp''ssh''telnet''imap',
'smtp''nicname''gopher''finger''pop3''www');
foreach (
$servicios as $servicio) {
   
$puerto getservbyname($servicio'tcp');
   echo 
$servicio ": " $puerto "<br />\n";
}
?>


:wq!
Título: Re: Scripts Php/MySQL
Publicado por: neopuerta en 5 Julio 2010, 03:21 AM
Cita de: chispita68 en 11 Junio 2010, 17:53 PM
Hola soy nuevo en esto del php y mysql, te pido un gran favor en que me enseyes y expliques como manejarlo, es muy importante para mi, he echo varias paginas web, pero lo que falta es usar bases de datos, y no se como empezar, por eso recurro a ti, espero tu respuesta.



Hola chispita68! si quieres te hago un sistema de registro y reconocimiento de usuarios. ;) ;)
Título: Re: Scripts Php/MySQL
Publicado por: Mafmaestro en 5 Enero 2011, 22:09 PM
Una pregunta, cuando se crea una pagina .php, hay alguna forma de ver lo que hay en en el campo <?php  ------ ?>

Me explico, tenemos un archivo que se llama pepe.php, y contiene lo siguiente:

<html>

blalblalbla

</html>

<?php

blalbvlalblad

?>

Cuando esta pagina se publica en un servidor, la parte de codigo que esta entre los campos <?php i ?> no se ve en el codigo fuente.
Ya se que es para que los hackers no puedan ver esta parte de codigo y no puedan desfacear la pagina web, pero, hay alguna forma de ver esta parte de codigo?
Título: Re: Scripts Php/MySQL
Publicado por: Castg! en 9 Enero 2011, 07:38 AM
no se puede ver para que los hackers no puedan ver esta parte de codigo y no puedan desfacear la pagina web
Título: Re: Scripts Php/MySQL
Publicado por: 50l3r en 15 Abril 2011, 18:10 PM
Conexion  a base de datos y funcion apra retornar un registro de una tabla con "x" condicion

Código (php) [Seleccionar]
<?php
//**************************************************************************************************************************************************************************************************************************
//CONEXION CON LA BASE DE DATOS
//**************************************************************************************************************************************************************************************************************************
   
function mysql_conectar(){
$link = @mysql_connect(dir_database,user_database,password_database);
if (!$link){die("<table width=100% height=100%><td valign=middle align=center><img src='images/connect.png' alt='Error' /><br /><h2 style='font-weight:bold;color:#009ee1'>Error al establecer conexion con la Base de Datos</h2></td></table>");exit;}
@mysql_select_db(database);
}
//**************************************************************************************************************************************************************************************************************************

function mysql_select_dataone($tabla,$campos,$filtro){
$data = @mysql_fetch_array(mysql_query("SELECT ".$campos." FROM ".$tabla." ".$filtro));
if(isset($data)){return $data;}else{return false;}
}

?>
Título: Re: Scripts Php/MySQL
Publicado por: 50l3r en 15 Abril 2011, 18:12 PM
Upload de archivos en PHP:

Código (php) [Seleccionar]
<?php

function 
upload($nombre_archivo,$tamano_archivo){
$aleatoriorand(0,5000000);
$permitidos = array('xml');

$extension explode('.'$nombre_archivo);$extension $extension[count($extension) -1];
$contador 0;

foreach($permitidos as $permitido){
if (strtolower($permitido) == strtolower($extension) && $tamano_archivo <= 524288000){
$contador++;
$nombre_archivo strtolower("./temp".$aleatorio."." .$extension);

if (@move_uploaded_file($_FILES['userfile']['tmp_name'], "$nombre_archivo")){
$upload[0] = true;
$upload[1] = $nombre_archivo;
}else{
$upload[0] = false;
}
}
}

if($contador == 0){
$upload[0] = false;
}
return $upload;
}

?>


Extender el array de $permitidos por todas las extensiones que querais permitir
Título: Generar código aleatorio con php
Publicado por: Carluís en 1 Octubre 2011, 00:05 AM
Con esta simple función se puede generar códigos aletorios.

Muy útil para crear contreseñas aleatorias o códigos de verificacón entre otras cosas.

<?php
function generarCodigo($longitud) {
    
$key '';
    
$pattern '1234567890abcdefghijklmnopqrstuvwxyz';
    
$max strlen($pattern)-1;
    for(
$i=0;$i $longitud;$i++) $key .= $pattern{mt_rand(0,$max)};
    return 
$key;
}

//Ejemplo de uso

echo generarCodigo(6); // genera un código de 6 caracteres de longitud.
?>
Título: Re: Scripts Php/MySQL
Publicado por: :ohk<any> en 23 Junio 2012, 17:44 PM
Sacar auto_increment de una tabla.

==========================================

Código (php) [Seleccionar]


mysql_select_db($database, $conexion);
$select = "SHOW TABLE STATUS LIKE 'nombre_de_tabla'";
$s = mysql_query($select, $conexion)or die(mysql_error());
$row_select = mysql_fetch_assoc($s);

echo $row_select['Auto_increment'];

//Imprimiria algo asi: 1 (O el numero que corresponda).



Espero les sirva de algo.

Saludos