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 - WHK

#4241
PHP / Re: syntax error, unexpected T_STRING
1 Octubre 2008, 09:40 AM
Mira, lo que yo siempre hago para ver algún error de sitnaxis en SQL imprimo en pantalla la query de la siguiente manera:

Código (php) [Seleccionar]
<?php
/* .. .. */
$query "
insert into pale_loteria_nacional ('
"
.$primero."', '".$segundo."', '".$cantidad."', '".$agencia."
',)"
;

echo 
$query; exit(0);
/* .. .. */
?>


Después copio lo que me aparezca y lo pego en el phpmyadmin y al dar ejecutar este me dirá cual es el error detalladamente y en que linea se produjo, una forma eficaz para personas que saben lo básico sobre bases de datos MySQL.
#4242
PHP / Re: Como puedo hacer esto?
28 Septiembre 2008, 21:27 PM
Te sirve?

Código (php) [Seleccionar]

<?php
/* .. .. */
if(!$id){
 echo 
"<div class = 'diverror'>
<span style = 'color:#0000FF; font-size:14px'>
No se puede dejar el campo vacio</span></div>"
;
}else{
 
$sql "DELETE FROM socios WHERE idsocio = '".(int)$id."';";
 if(
mysql_query($sql$conex)){
  echo 
"<div class = 'diverror'>
<span style = 'color:#0000FF; font-size:14px'>
El usuario ah sido borrado correctamente.</span></div>"
;   
 }else{
  echo 
"<div class = 'diverror'>
<span style = 'color:#0000FF; font-size:14px'>
El usuario \""
.htmlspecialchars($id,ENT_QUOTES)."\" NO existe.</span></div>";   
 }
}
/* .. .. */
?>

#4243
Ni se te ocurra procesar $client en una query hacia la base de datos sin antes filtrarlo ya que agregando slashses no solucionas una inyección sql ni un xss.
#4244
PHP / Re: syntax error, unexpected T_STRING
28 Septiembre 2008, 21:06 PM
Citarsyntax error, unexpected T_STRING
Ese error te está diciendo que hay una linea sin terminar, por ejemplo puede que le falte el ";" al final o que no hayas cerrado un parentesis o algo por el estilo.

Por lo que escribiste veo dos fallas, uno que le falta el ";" al final y lo otro que para hacer una consulta hacia la base de datos debes utilizar funciones y no escribirlo directamente sobre el código php, por ejemplo como te dijeron mas arriba:

Código (php) [Seleccionar]

$sql = "
INSERT INTO pale_loteria_nacional (primero, segundo, cantidad, agencia)
VALUES ('$primero', '$segundo', '$cantidad', '$agencia');
";


Con eso estarías definiendo la consulta que vas a hacer, ahora debes realizar la consulta con
mysql_pconnect()
mysql_select_db()
mysql_query(,)
mysql_fetch_row()
mysql_free_result()
mysql_close()

Te recomiendo que leas un poco para que puedas tener la idea un poco mas clara:
http://cl2.php.net/mysql

Sin mas que decir te recomioendo que no expongas las variables directamente sobre la consulta mysql o tendrás graves problemas de seguridad, lee también sobre injección sql:
http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL

Para evitar estas cosas lee sobre la función mysql_real_escape_string() y set_magic_quotes_runtime()

Código (php) [Seleccionar]

<?php
/*  .. ..  */

set_magic_quotes_runtime(0);
error_reporting(0);

$servidor_bd 'Localhost';
$basededatos 'nombre de la base de datos';
$usuario_bd  'usuario de la base de datos';
$pass_bd 'contraseña del usuario de la base de datos';

if(!
$conectar_sql mysql_pconnect($servidor_bd$usuario_bd$pass_bd)){
 echo 
"No se puede conectar a la base de datos";
 exit(
1);
}else{
 if(!
mysql_select_db($basededatos,$conectar_sql)){
  echo 
"No existe la base de datos seleccionada";
  exit(
1);
 }
}

$sql "
INSERT INTO pale_loteria_nacional (primero, segundo, cantidad, agencia) 
VALUES ('"
.
mysql_real_escape_string($primero)."', '".
mysql_real_escape_string($segundo)."', '".
(int)
$cantidad."', '".
mysql_real_escape_string($agencia)."');
"
;

if(
mysql_query($sql,$conectar_sql)){
 echo 
"Datos insertados dentro de la base de datos.";
}else{
 echo 
"No se pudo establecer los valores dentro de la base de datos.";
}

/*  .. ..  */
?>



http://cl2.php.net/manual/es/function.mysql-real-escape-string.php
http://cl2.php.net/manual/es/function.set-magic-quotes-runtime.php

Si después de todo esto todavía tienes preguntas puedes volver a hacerlas acá mismo.
#4245
PHP / Re: Cuenta descarga
28 Septiembre 2008, 20:49 PM
En mysql solo bastaría con hacer una querye buscando la tabla donde se alojan las cantidades de descargas totales donde cuando alguien descarga algo entonces esa tabla se actualiza con UPDATE, hecha un vistazo a mi sistema filemanager aver si te da nuevas ideas, hasta podrías hacer tu propio sistema

https://sourceforge.net/projects/whkfilemanager/

Ahora de ti depende si el UPDATE lo haces antes o después de terminar la descarga, así solo tu sabes si el contador es por las descargas reales o con intentos frustrados nincluidos  :P
Ahi un ejemplo de como queda:

http://www.jccharry.com/descargas/

Recuerdo que un dia que puse un sistema prefabricado tube problemas ya que ese sistema traia fallas y debido a eso alguien pudo ingresar a mi servidor por lo cual me decidí a crear mi propio sistema para ya no tener mas problemas o por lo menos no confiar en sistemas que uno no conoce que tan seguros son.
#4246
PHP / Re: multiples checkbox en php
28 Septiembre 2008, 19:49 PM
Código (php) [Seleccionar]
<form...>
<?php
foreach ($alumnos as $variable => $valor){
 echo 
'
<input type="checkbox" name="'
.$variable[$valor].'" value="1" />presente<br />
<input type="checkbox" name="'
.$variable[$valor].'" value="2" />atrasado<br />
 '
;

?>

</form>

Te sirve?
#4247
PHP / Re: Manera mas segura de guardar una clave en BD
28 Septiembre 2008, 19:40 PM
Una forma que yo utilizo es la siguiente:

Código (php) [Seleccionar]
$sql = "
SELECT `estado` FROM `paginas`
WHERE `id`
LIKE CONVERT(_utf8 '".mysql_real_escape_string($_GET[$variable_std])."' USING latin1)
COLLATE latin1_swedish_ci
LIMIT 1;";


Para Ingresar carácteres normales dentro de una query, base64 si es una buena idea, es mas, así lo hice yo en mi sistema filemanager pero lo malo es que después si quieres modificar la base de datos o crear un buscador será muy dificil.

Código (php) [Seleccionar]
$sql = "
SELECT `sección` FROM `paginas`
WHERE `id`
LIKE CONVERT(_utf8 '".(int)$_GET[$variable_num])."' USING latin1)
COLLATE latin1_swedish_ci
LIMIT 1;";


Al preestablecer (int) antepuesto a una variable o constante estás declarando que solo se aceptarán datos numéricos evitando también una inyección sql como por ejemplo index.php?id=-1+union+all+select+1,2,3...
Y cuando hago un Select y necesito una sola columna siempre termino en LIMIT 1 para evitar posibles fugas.

mysql_real_escape_string() Esta función te permite evitar inyecciones sql siempre y cuando el valor esté encerrado dentro de comillas ya que desde acá no podrás escapar con ningún tipo de carácter.
Ahora también es bueno eliminar los slashses que agrega el apache de la siguiente forma:
Código (php) [Seleccionar]
set_magic_quotes_runtime(0);

Eso es lo que se yo sobre seguridad básica cuando programas en php utilizando mysql.
#4248
Prueba con esto:
Código (php) [Seleccionar]
<?php

session_start
(); 
$user $_POST["usuario"].":".$_POST["contraseña"];

switch(
$user){
 case 
"carlos:xxxx" 
  
$_SESSION["autentificado"]= "SI"; break;
 case 
"angel:atleti" 
  
$_SESSION["autentificado"]= "SI"; break;
 case 
"jluis:holaa" 
  
$_SESSION["autentificado"]= "SI"; break;   
 default :
  
$_SESSION["autentificado"]= "NO"; break;   
}

if(
$_SESSION["autentificado"] == "SI"){
 
header ("Location: 312.html");
}else{
 
header("Location: asdas.php?errorusuario=si");
}

?>


De todas formas te recomiendo no usar la variable "contraseña" debido a la letra "ñ" ya que es un carácter especial y a veces da problemas al momento de programar.
#4249
PHP / Re: Incluir un php en todas las páginas?
16 Septiembre 2008, 00:43 AM
Gracias a ambos, probaré con lo del php.ini primero porque no tengo la shell de mi servidor, si no resulta ahi veo que hago.
#4250
PHP / Incluir un php en todas las páginas?
14 Septiembre 2008, 22:53 PM
Hola,
Necesito saber si alguien sabe como puedo incluir un archivo php en todas las demás páginas.. me explico..

La idea es que al hacer una petición GET a un php este comienze automáticamente incluyendo el archivo 1.php como cabecera y después que se ejecute el resto.

Habrá alguna configuración en htaccess para que haga esto? con el mod rewrite no puedo porque estoy utilizando permalinks en algunas partes de mi servidor y necesito que un sistema de logueo se encargue de filtrar todas las peticiones que pasen por ellas, blog, portal, todo. La idewa es no hacer un include a todo ya que hay páginas que no siempre son index.php y tendría que modificarlos cada ves que salga alguna actualización de ellos.

Algo así como lo hace iespana que cuando ves un archivo html te incrusta su publicidad arriba automáticamente sea cual sea la página si es html.