Scripts Php/MySQL

Iniciado por -Riven-Ward-, 18 Abril 2004, 23:21 PM

0 Miembros y 3 Visitantes están viendo este tema.

-Riven-Ward-

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.
Usuario Banneado

-Riven-Ward-

#1
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 :).
Usuario Banneado

-Riven-Ward-

#2
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.
Usuario Banneado

-Riven-Ward-

#3
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!
Usuario Banneado

-Riven-Ward-

#4
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!
Usuario Banneado

-Riven-Ward-

#5
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!
Usuario Banneado

-Riven-Ward-

#6
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!
Usuario Banneado

-Riven-Ward-

#7
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 :-*
Usuario Banneado

-Riven-Ward-

#8
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



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!
Usuario Banneado

-Riven-Ward-

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!
Usuario Banneado