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

#1
PHP / Re: Manejo de ficheros en PHP
10 Noviembre 2009, 16:23 PM
Exacto! Era eso último, con ese cambio tanto mi código cómo el de Red Mx funcionan.

Muchas gracias a todos!
#2
PHP / Re: Manejo de ficheros en PHP
10 Noviembre 2009, 07:36 AM
Ains, edito para decir que el problema persiste, el error que devuelve ahora es:

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /homepages/14/d298835367/htdocs/update.php on line 67

Warning: file_get_contents(http://foro.elhacker.net/Smileys/cowboy/grin.gif) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /homepages/14/d298835367/htdocs/update.php on line 67

Warning: copy(/avatars/13.png) [function.copy]: failed to open stream: No such file or directory in /homepages/14/d298835367/htdocs/update.php on line 73

Creo que el problema esta en que el servidor no me deja acceder a ficheros mediante PHP.

El código es este:

Código (php) [Seleccionar]
if($avatarurl){

  $avatar = str_replace($forbidden, "", $avatarurl);
  $alloweds = array('jpg','jpeg','png','gif','bmp');
  if(!eregi('.', $avatar)){
  echo "<script>alert(\"The avatar extension is missing!\");</script>";

echo "<meta http-equiv=\"refresh\" content=\"0; url=cp.php\">";
  }else{
          $extension = explode('.', $avatar);
          $extension = $extension[count($extension) - 1];
          foreach($alloweds as $allowed){
          if($allowed == strtolower($extension)){
$correct = true;
  }
  }
  }
  if ($correct != true) $correct = false;
 
  if($correct==true){
  $query = mysql_query("SELECT id FROM usersdb WHERE username ='$username'") or die(mysql_error());
  $data = mysql_fetch_array($query);
  $id = $data['id'];
  $imagen= file_get_contents($avatar);

  $fp=fopen('temporal.dat','w');
  fwrite($fp,$imagen);
  fclose($fp);

  copy('temporal.dat', "/avatars/$id.$extension");
  $avatar = "/avatars/$id.$extension";

  $query = mysql_query("UPDATE usersdb SET avatar='$avatar' WHERE username ='$username'") or die(mysql_error());
  }else{
  echo "<script>alert(\"The avatar has a wrong format!\");</script>";

echo "<meta http-equiv=\"refresh\" content=\"0; url=cp.php\">";
  }

}


Pero el problema esta básicamente aqui:

Código (php) [Seleccionar]

$imagen= file_get_contents($avatar);

$fp=fopen('temporal.dat','w');
fwrite($fp,$imagen);
fclose($fp);

copy('temporal.dat', "/avatars/$id.$extension");


Gracias de antemano!
#3
PHP / Re: Manejo de ficheros en PHP
9 Noviembre 2009, 23:02 PM
Wow, no conocia la función get_file_contents ^.^, muchas gracias, mañana edito y te comento como me ha ido.

En mi defensa debo decir que cuando decia que $avatar = "" no pretendia hacer que la variable $avatar contubiera el fichero sino solo la dirección de este.

Muchissimas gracias de nuevo.
#4
PHP / Manejo de ficheros en PHP
9 Noviembre 2009, 19:20 PM
Hola a todos.

Estaba intentando crear un script en PHP que copiara un fichero (una imagen mas concretamente) de una URL a una carpeta en mi seridor, está en un hosting privado pero tengo control casi total sobre este (o eso me gustaria pensar).

El caso es que al ejecutar la función:

Código (php) [Seleccionar]
copy($avatar, "/avatars/$id.$extension");

Donde:

Código (php) [Seleccionar]
$avatar = "http://foro.elhacker.net/Smileys/cowboy/grin.gif"; // Por ejemplo.
$id = 29;  // Id del usuario.
$extension = "jpeg";  // Podria ser cualquier otra.


Me devuelve:

Warning: copy() [function.copy]: URL file-access is disabled in the server configuration in /homepages/14/d298835369/htdocs/update.php on line 67

Warning: copy(http://foro.elhacker.net/Smileys/cowboy/grin.gif) [function.copy]: failed to open stream: no suitable wrapper could be found in /homepages/14/d298835369/htdocs/update.php on line 67

El error lo deja muy claro, el acceso a ficheros mediante URL esta deshabilitado en la configuración del servidor, ahora bien, ¿como lo habilito? Es decir, si con configuración del servidor se refiere a .htaccess, ¿que debo cambiar? Y si no lo hace ¿a que se refiere y como lo arreglo?

Huelga decir que la carpeta "avatars" tiene todos los permisos menos ejecución y el fichero update.php los tiene todos.

Gracias de antemano.
#5
Aqui tienes: http://www.miniclip.com/games/governor-of-poker/es/governorofpoker_web.swf

No hacia falta descifrar nada >.<

Saludos!
#6
Gracias a los dos!

Ahora voy a provar. La web no va a ser en localhost, pero para provar la uso en local. Estoy haciendo las pruebas en Win Vista (si, lo sé) pero lo voy a montar en un PC con Win 98.

Saludos!

EDITO: No encuentro esa linea que me dices >.< . Por cierto, en host que debo poner: miweb.no-ip.org:9898, miweb.no-ip.org:3306 o miweb.no-ip.org a secas?

EDITO2: Por cierto, el paquete que usé es AppServ.
#7
Hola!

Gracias por responder! A la web accedo por el 9898, si. En cuanto al script, ¿cual? el de login del mySQL tiene que acceder por el puerto de mySQL? Porque en localhost pongo localhost y listos. Vale, lo he provado, con miweb.no-ip.org:3306 me da un error. En cuando a la db y al script estan en mi ordenador, todo está en mi ordenador por el momento.

Pongo el error que sale cuando pongo el puerto 3306:


Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'miweb.no-ip.org' (10061) in C:\AppServ\www\index.php on line 8

Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\AppServ\www\index.php on line 9

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in C:\AppServ\www\index.php on line 9
Cannot select database


Como ves todos los errores son consequencia del primero, que impide que me conecte a la db, con cualquier puerto que pruebe me da ese error, excepto con 9898 que se queda colgada la conexion y a los 30 segundos da error.
#8
Bueeeno gente, tengo una dudilla  ;D .

Creo que no encierra ningún misterio pero se me esta pasado algo >.< .
Tengo una web hecha que me va perfectamente el localhost.
En vez de operar en el puerto 80 opera en el 9898.
TODO, funciona al 100%, me deja loguear, registrar usuarios...
Peeeeeero si intento acceder a ella desde fuera, desde, por ejemplo, miweb.no-ip.org:9898 tambien va, pero al intentar conectar con la DB se queda cargando toda la vida. Tengo abierto el puerto 3306 (mySQL) de mi router.

Conecto a la db de la siguiente forma:


    $dbhost='miweb.no-ip.org:9898'; //En eso dudo.
    $dbusername='root'; //Esta bien puesto.
    $dbuserpass='pass';  //Esta bien puesto.
    $dbname='test';  //Esta bien puesto.

    session_start();

    mysql_connect ($dbhost, $dbusername, $dbuserpass);
    mysql_select_db($dbname) or die('Cannot select database');


Creo que paso por alto algo pero... ¿qué?

Gracias de antemano!
#9
Buenas Diego,

Antes que nada, queria agradecerte el maravilloso trabajo que haces para difundir el conocimiento, de verdad, así da gusto leer y aprender.

Seguidamente decir que estaba sumamente interesado en el libro "Persuasión Instantanea" de tu página número 15 pero este tiene el enlace roto, si tu o algun otro miembo de la comunidad pudiera subirlo y/o mandarmelo por MP le estaria sumamente agradecido (mas de lo que ya lo estoy  ;)) .

Gracias de antemano!

EDITO: Mea culpa, el libro esta inmaculadamente resubido en la página 57, nada mas que reforzar el mensaje del inicio del post. Buen trabajo Diego, vales un imperio!
#10
Nada que un questionario cutre en PHP no pueda solucionar mas bien diria...   :D