Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Casidiablo

#181
PHP / Re: Impidir ataques sql.
5 Febrero 2008, 17:56 PM
He visto un código muy bueno, que es el que implementan los foros SMF... la cosa va más o menos así:

Código (php) [Seleccionar]
function db_query($db_string, $file, $line)
{
global $db_cache, $db_count, $db_connection, $db_show_debug, $modSettings;

// One more query....
$db_count = !isset($db_count) ? 1 : $db_count + 1;

// Debugging.
if (isset($db_show_debug) && $db_show_debug === true)
{
// Initialize $db_cache if not already initialized.
if (!isset($db_cache))
$db_cache = array();

if (!empty($_SESSION['debug_redirect']))
{
$db_cache = array_merge($_SESSION['debug_redirect'], $db_cache);
$db_count = count($db_cache) + 1;
$_SESSION['debug_redirect'] = array();
}

$db_cache[$db_count]['q'] = $db_string;
$db_cache[$db_count]['f'] = $file;
$db_cache[$db_count]['l'] = $line;
$st = microtime();
}

// First, we clean strings out of the query, reduce whitespace, lowercase, and trim - so we can check it over.
if (empty($modSettings['disableQueryCheck']))
{
$clean = '';
$old_pos = 0;
$pos = -1;
while (true)
{
$pos = strpos($db_string, '\'', $pos + 1);
if ($pos === false)
break;
$clean .= substr($db_string, $old_pos, $pos - $old_pos);

while (true)
{
$pos1 = strpos($db_string, '\'', $pos + 1);
$pos2 = strpos($db_string, '\\', $pos + 1);
if ($pos1 === false)
break;
elseif ($pos2 == false || $pos2 > $pos1)
{
$pos = $pos1;
break;
}

$pos = $pos2 + 1;
}
$clean .= ' %s ';

$old_pos = $pos + 1;
}
$clean .= substr($db_string, $old_pos);
$clean = trim(strtolower(preg_replace(array('~\s+~s', '~/\*!40001 SQL_NO_CACHE \*/~', '~/\*!40000 USE INDEX \([A-Za-z\_]+?\) \*/~'), array(' ', '', ''), $clean)));

// We don't use UNION in SMF, at least so far.  But it's useful for injections.
if (strpos($clean, 'union') !== false && preg_match('~(^|[^a-z])union($|[^[a-z])~s', $clean) != 0)
$fail = true;
// Comments?  We don't use comments in our queries, we leave 'em outside!
elseif (strpos($clean, '/*') > 2 || strpos($clean, '--') !== false || strpos($clean, ';') !== false)
$fail = true;
// Trying to change passwords, slow us down, or something?
elseif (strpos($clean, 'sleep') !== false && preg_match('~(^|[^a-z])sleep($|[^[a-z])~s', $clean) != 0)
$fail = true;
elseif (strpos($clean, 'benchmark') !== false && preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s', $clean) != 0)
$fail = true;
// Sub selects?  We don't use those either.
elseif (preg_match('~\([^)]*?select~s', $clean) != 0)
$fail = true;

if (!empty($fail))
{
log_error('Hacking attempt...' . "\n" . $db_string, $file, $line);
fatal_error('Hacking attempt...', false);
}
}

$ret = mysql_query($db_string, $db_connection);
if ($ret === false && $file !== false)
$ret = db_error($db_string, $file, $line);

// Debugging.
if (isset($db_show_debug) && $db_show_debug === true)
$db_cache[$db_count]['t'] = array_sum(explode(' ', microtime())) - array_sum(explode(' ', $st));

return $ret;
}


El modo de uso es simple, por ejemplo:

Código (php) [Seleccionar]
db_query("InsERT into TABLA values ('bla', 'Jojojo', '$variable')" , __FILE__, __LINE__)

Es muy bueno para echarle un ojo y aprender.

Un saludo!
#182
Si estás trabajando sobre Gnu/Linux, la programación de crons es muy sencilla y está muy bien documentada en la red. Si estás en Windows (que personalemente pienso que no es de lo mejor para este tipo de cosas), te puedo recomendar por experiencia un software llamado pycron.

Un saludo!
#183
La verdad en este caso es mejor que intentes hacerlo tu mismo... que eso de esperar que las demás personas te lo den todo no está bien. Es cierto también que lo estás pidiendo de buena gana y muy respetuosamente, pero repito, sería mejor que intentaras. En este tipo de foro es más fácil que te colaboren con problemas específicos.

Así que si tienes un problema con el programa, mientras lo estás haciendo, pues planteas tu duda y los usuarios y moderadores (excelentes, por cierto) intentarán ayudarte.

Un saludo!
#184
Java / Re: Como utilizo el siguiente codigo?
4 Febrero 2008, 14:32 PM
Cita de: DrUbLiC en  4 Febrero 2008, 09:43 AM
       
Si por ahi hubiera un  tutorial de el uso de codigos en Java se los agradeceria saludos.



http://foro.elhacker.net/index.php/topic,34891.0.html
#185
Hay algo que debes (y deben la mayoría) tener claro. En C/C++ recuerdo que los strings se podían usar como arreglos de caracteres "literalmente hablando". Por lo tanto podías hacer cosas como intentar recuperar un caracter de la cadena así:

cadena[x]

Pero, en Java la cosa cambia un poco. Las cadenas, o sea objetos de la clase String, son tratados como OBJETOS. Por tanto, es necesario acceder a sus componentes a través de métodos y variables (del objeto). En ese órden de ideas, si por ejemplo quieres en cualquier momento saber la longitud de una cadena, puedes hacer esto:

//En la variable longitud se guardará la, valga la redundancia, longitud de la cadena
int longitud = cadena.length();


De esta forma, puedes tranquilamente hacer cosas como estas (tal como te comentaba mi amigo Ragnarok):

for ( int cuenta = 1; cuenta < cadena.length(); cuenta++ )
//Lo que sea!


Un saludo!
#186
PHP / Re: Sistema de Themes
24 Enero 2008, 20:08 PM
Pero solo con CSS no podrás hacer mucho... solo cambiar colores y la posición y aspecto de algunas cosas. Si quieres que los diferentes temas sean "realmente" diferentes, has lo que dice Universal SAC.

Un saludo!
#187
Java / Re: DUDA DE CODIGO
24 Enero 2008, 19:43 PM
stdin = new BufferedReader(new InputStreamReader(System.in));  //QUE ES LO QUUE HACE ESTA LINEA??

Esto hace que todo lo que digites en el teclado se guarde en un objeto BufferedReader (en este caso stdin). Lo de la excepción es cuando haya un problema en la entrada o salida de flujos (IOException).

Basta con que leas un poco... no más:

http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html
http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html
#188
PHP / Re: generar tabla ...
21 Enero 2008, 15:01 PM
Cita de: Hans el Topo en 18 Enero 2008, 15:54 PM
no tiene sentido poner </tr> y </td>

de hecho desde que comencé con html nunca los he puesto, es una feature que tiene

los navegadores son los encargados de interpretar los códigos y realmente no tiene ninguna utilidad ya que cuando comienza otro <td> se cierra el anterior automáticamente y lo mismo ocurre con los <tr>
si fuese xml ya sería otro cantar

Pues sí... como dicen por ahí: las reglas son para violarlas!

Un saludo!
#189
PHP / Re: generar tabla ...
18 Enero 2008, 15:23 PM
Jaja, que buena excusa!
#190
PHP / Re: generar tabla ...
17 Enero 2008, 16:06 PM
Cita de: Hans el Topo en 17 Enero 2008, 01:22 AM
siguiendo tu esctructura, yo haría algo así :P

<?php
echo "<table><tr>";
                
$contador=1;
while($row mysql_fetch_array($result)){
if($contador 3){
//saltamos de línea
echo = "<tr>";
$contador 1;
}
echo "<td><a href='?action=detalle&id=" $row['idContacto'] . "'>";
echo "<img src='http://localhost/directorio/directorio/" $row['path'] . " width=100></a>";

                       
$contador ++;
}
echo "</table>";
?>


Te olvidas de cerrar el tr.

Cita de: -| Sir_Lance |- en 17 Enero 2008, 14:41 PM
Yo lo habia hecho así:
Código (php) [Seleccionar]

<table>
<?php
$x 
0;
while(
$data mysql_fetch_array($result) ){
$x ++;
if($x == 1) echo '<tr>';
echo '<td>aqui los datos y demás</td>';
if($x == 5) {
                echo 
'</tr>';
                
$x=0;
            }
}
?>

</table>


Es sí funciona! Aunque es muy largo. Va mi oferta (funciona o funciona):

Código (php) [Seleccionar]
<table><tr>
<?php
for($i=0$i<mysql_num_rows($resultado); $i++)
echo "<td> AQUI LA IMAGEN </td>".(($i+1)%== "</tr>\n<tr>" "");
?>
</tr></table>


Un saludo!

Edito: como veo que lo estás haciendo con mysql_fetch_array($result), te prevengo: en este caso lo tendrías que hacer con mysq_result.