Scripts Php/MySQL

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

0 Miembros y 1 Visitante están viendo este tema.

-Riven-Ward-

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

-Riven-Ward-

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

-Riven-Ward-

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

-Riven-Ward-

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

-Riven-Ward-

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

-Riven-Ward-

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

chispita68

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.
Para sobrevivir, te aferras a todo lo que conoces y entiendes y lo llamas realidad....
Pero el conocimiento y la comprensión son ambiguos.
La realidad puede ser una ilusión....
Todos los seres humanos viven con las creencias equivocadas
¿No es esa otra manera de ver las cosas?

Falso Positivo

#17
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!
Don't worry, be hacked....

neopuerta

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. ;) ;)
:PNeoPuerta :P

La Mejor web

Mafmaestro

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?