elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  problema con clases php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema con clases php  (Leído 4,256 veces)
Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
problema con clases php
« en: 13 Noviembre 2011, 19:15 pm »

buenas
bueno tengo esto:

Código
  1. <?php
  2. class Ftp {
  3.  
  4. var $cid;
  5. var $result;
  6. var $FTPSERVER;
  7. var $USER;
  8. var $PASS;
  9. var $rootdir;
  10.  
  11. public function connect($mode_pasive=true){
  12. $cid=ftp_connect($FTPSERVER) or die;
  13. $result=ftp_login($cid,$USER,$PASS);
  14. if ((!$cid) || (!$resultado)) {
  15. return (false);
  16. }else{
  17. if ($mode_pasive==true){
  18. ftp_pasv($cid,true);
  19. }
  20. return (true);
  21. }
  22. }
  23. }
  24.  
  25. $ftp=new Ftp();
  26. $ftp->$FTPSERVER="ftp.260mb.com";
  27. $ftp->$USER="zeroql";
  28. $ftp->$PASS="linkql";
  29. $ftp->$rootdir="/";
  30. $ftp->connect(true);
  31. ?>
  32.  
  33.  

el problema es cuando lo pongo a prueba me sale este error
Citar
Notice: Undefined variable: FTPSERVER in C:\xampp\htdocs\sovys\class\class_ftp.php on line 61

Fatal error: Cannot access empty property in C:\xampp\htdocs\sovys\class\class_ftp.php on line 61

Me pueden decir que tengo de malo??? apenas estoy empezando a crear clases con php, y este es mi primer ensayo.

de ante mano muchas gracias.


En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: problema con clases php
« Respuesta #1 en: 13 Noviembre 2011, 19:22 pm »

Hola, las funciones como tal no adoptan las variables definidas anteriormente.
Por tanto, o las debes pasar en la misma funcion ( function($variables) ) o las debes declarar como globales (global $variable1,$variable2;).

ejemplo:

Código
  1. <?php
  2. $variable1 = 'blablabla';
  3.  
  4. function bla($variable){
  5.   return $variable;
  6. }
  7.  
  8. echo bla($variable1);
  9.  

Código
  1. <?php
  2. $variable1 = 'blablabla';
  3.  
  4. function bla(){
  5.   global $variable1;
  6.   return $variable1;
  7. }
  8.  
  9. echo bla();
  10.  

PD: En tu caso utilizando class es mas facil.
Código
  1. <?php
  2.  
  3. class aaaa {
  4. var $cid = 'xDDD';
  5.  
  6. public function mostrar(){
  7. return $this->cid;
  8. }
  9.  
  10. }
  11. $bbb = new aaaa();
  12. echo $bbb->mostrar();
  13.  
  14. ?>

Recuerda que cuando la quieres mostrar no es $this->$cid sino $this->cid, sin el siglo de variable.
Saludos


« Última modificación: 13 Noviembre 2011, 19:39 pm por drvy | BSM » En línea

Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: problema con clases php
« Respuesta #2 en: 13 Noviembre 2011, 19:37 pm »

normalmente no permite el paso de variables, pero es una clase, y si miras bien cuando se llama a la clase se definen las propiedades, eso lo he visto mucho también en otras clases, pero nose por que me salta este error!
En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: problema con clases php
« Respuesta #3 en: 13 Noviembre 2011, 19:41 pm »

Sea clase o no funciona igual  :rolleyes:

Lo que se utiliza en clase es lo que edite en el post de arriba.

$this->variable.
$this->cid;
$this->FTPSERVER;
etc..


Saludos
En línea

Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: problema con clases php
« Respuesta #4 en: 13 Noviembre 2011, 19:51 pm »

y segun tu codigo mi llamada esta bien hecha, por que esta fuera de la clase!!!
En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: problema con clases php
« Respuesta #5 en: 13 Noviembre 2011, 19:56 pm »

WTF ?

Lo que tienes mal es la función en si. No usas $this->, ni global ni nada xD
Código
  1. public function connect($mode_pasive=true){
  2. $cid=ftp_connect($this->FTPSERVER) or die;
  3. $result=ftp_login($cid,$this->USER,$this->PASS);
  4. if ((!$cid) || (!$result)) {
  5. return (false);
  6. }else{
  7. if ($mode_pasive==true){
  8. ftp_pasv($cid,true);
  9. }
  10. return (true);
  11. }
  12. }

PD: RECUERDA (y te lo puse arriba) cuando vas a usar variable en una clase. No utilices $ utiliza $this->variable.

Saludos
« Última modificación: 13 Noviembre 2011, 20:01 pm por drvy | BSM » En línea

Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: problema con clases php
« Respuesta #6 en: 13 Noviembre 2011, 20:01 pm »

Actualmente ese no es mi problema es cuando hago la llamada a la clase:

Código
  1. $ftp=new Ftp();
  2. $ftp->$FTPSERVER="ftp.260mb.com";
  3. $ftp->$USER="zeroql";
  4. $ftp->$PASS="linkql";
  5. ...
  6.  
se presenta este error:

Citar
Notice: Undefined variable: FTPSERVER in C:\xampp\htdocs\sovys\class\class_ftp.php on line 61

Fatal error: Cannot access empty property in C:\xampp\htdocs\sovys\class\class_ftp.php on line 61
La linea 62 es:

Código
  1. $ftp->$FTPSERVER="ftp.260mb.com";
  2.  

como se ve no se ha realizado la llamada a la funcion, por el momento no presentara errores en la funcion...
En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: problema con clases php
« Respuesta #7 en: 13 Noviembre 2011, 20:03 pm »

Vale vale, es que no sabia de que linea estabamos hablando xD

Pues lo mismo ^^
En vez de

Código
  1. $ftp->$FTPSERVER="ftp.260mb.com";

esto

Código
  1. $ftp->FTPSERVER="ftp.260mb.com";


Saludos
En línea

Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: problema con clases php
« Respuesta #8 en: 13 Noviembre 2011, 20:08 pm »

Ok muchas gracias ahora si me ha funcionado a la perfecccion.
muchas gracias
En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con las clases en c#
.NET (C#, VB.NET, ASP)
The Jackal 2 2,718 Último mensaje 18 Noviembre 2007, 13:10 pm
por The Jackal
Problema con clases
Java
Debci 3 2,727 Último mensaje 9 Julio 2009, 20:53 pm
por Amerikano|Cls
Problema con Clases
.NET (C#, VB.NET, ASP)
Dreamcacher 1 2,201 Último mensaje 5 Octubre 2011, 20:51 pm
por Keyen Night
Problema con clases
Java
Lain0x 5 3,733 Último mensaje 24 Noviembre 2011, 16:51 pm
por Lain0x
[RESUELTO ]Problema invisible en Clases :(
PHP
mokoMonster 0 1,879 Último mensaje 20 Enero 2012, 15:14 pm
por mokoMonster
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines