¡Advertencia!
Este tema no ha tenido respuestas en más de un mes. Recuerda que si deseas añadir una nueva debes cumplir con las normas de la web.
Bueno quería saber si: <form action=" es una variable de php y lo mismo con <div> y también me gustaría saber que significan  y para qué se usan.

Bueno quería saber si: <form action=" es una variable de php y lo mismo con <div> y también me gustaría saber que significan  y para qué se usan.


Ninguna son variables

<form Que yo sepa, es Para crear formularios, Y div es una capa. ejemplo

<div>Hola a todoss</div>

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻

Bueno quería saber si: <form action=" es una variable de php y lo mismo con <div> y también me gustaría saber que significan  y para qué se usan.


Ambas son etiquetas HTML.
identificarás las variables PHP, porque tienen $ al principio.
Y están dentro de la etiqueta <?php ?>
Hola. Esto lo podría buscar en internet, es cierto, pero estoy empezando con POO y esta es mi primera clase, y lo pongo por si tenéis algo que comentar

Bueno, el tema es que quiero poner un return a un array, ¿cómo lo hago? Está en la función lista_conectados().


<?php
	class conectados {
		var $time;
		function __construct($time) { //Yo creo que aquí lo editaré, y pondre que directamente lo siguiente:
			$this->time=$time-900; //$this->time=time()-900
		}
		function cant_conectados() {
			$conect = mysql_query ("SELECT * FROM sesiones WHERE activo='1' AND conexion>'".$time."' ");
			$cantidad_conectados = mysql_num_rows($conect);
			return $cantidad_conectados;
		}
		function lista_conectados() {
			$conect = mysql_query ("SELECT * FROM sessiones WHERE activo='1' AND conexion>'".$time."' ");
			while ($lista = @mysql_fetch_array($conect) ) {
				$id = $lista['id_usuario'];
				$qusuario = mysql_query ("SELECT * FROM usuarios WHERE id='".$id."' ");
				while ($usuario = @mysql_fetch_array($qusuario) ) {
					$usuario = $usuario['usuario'];
				}
			$lista[] =  "".$usuario." (".$id.") <br />";
			/* ¿Como lo pongo el return? */
			}
		}
	}
?>


Y ya que estamos, ¿para que sirve poner un función como public o private? Sí, sé que para acceder a ella desde fuera de la clase o no, ¿pero para que sirve en la practica distinguirlo?

Edito: realmente no sé si está bien hecho, ¿cómo cojo el $time para las funciones para que todo funcione como debería ir? porque si time=0, el script funcion correctamente, pero registrara todos los usuarios conectados de siempre... Y no he probado a ver si funciona eso bien o no. Entonces, pues no sé si funciona o no xDDD

Hola. Esto lo podría buscar en internet, es cierto, pero estoy empezando con POO y esta es mi primera clase, y lo pongo por si tenéis algo que comentar

Bueno, el tema es que quiero poner un return a un array, ¿cómo lo hago? Está en la función lista_conectados().

Yo me estreso un poco ayudando en esto sobre todo porque me meten MySQL en todos los códigos y yo aún no he querido sentarme a dominar eso, pero haré el intento...

Tienes 2 alternativas, la más sencilla (a simple vista, aún no la he probado) es retornar la variable $lista. Sin [], porque igual sigue siendo un arreglo y cuando le pones echo verás que te dirá "Array".
La otra era declarar otra variable como atributo de la clase que sea el arreglo, cargarlo y luego retornarlo, eso es por si lo necesitas en algún otro lado dentro de la clase.

Y ya que estamos, ¿para que sirve poner un función como public o private? Sí, sé que para acceder a ella desde fuera de la clase o no, ¿pero para que sirve en la practica distinguirlo?

Por el momento, acostúmbrate a llamar a todas tus variables y métodos que sean atributo de la clase como private y public. No sé, no te acostumbres al var, que a la hora de cambiar de lenguaje te la vas a liar.
Estas diferencias se ven más reflejadas cuando trabajas con muchas clases. Por ejemplo, en Java para programar tu importas clases (librerías en otros lenguajes) y si esas clases declaran sus variables públicas, estarás hecho un caos porque no sabrás cómo llamar a tus variables en el programa principal ya que todos los nombres te los habrán usado xDD!!!

Se ve más reflejado en otros lenguajes que no sea PHP, porque en otros debes declarar variables, y no puedes cambiar esa declaración hasta donde he experimentado o lo que mi lógica me permite comprender. Sin embargo tú al declarar una variable, no le exiges el tipo de dato que contiene, por lo tanto puedes manipularlo cuantas veces quieras.

Edito: realmente no sé si está bien hecho, ¿cómo cojo el $time para las funciones para que todo funcione como debería ir? porque si time=0, el script funcion correctamente, pero registrara todos los usuarios conectados de siempre... Y no he probado a ver si funciona eso bien o no. Entonces, pues no sé si funciona o no xDDD



<?php
	var $time;
		function __construct($time) { //Yo creo que aqu&#237; lo editar&#233;, y pondre que directamente lo siguiente:
		$this->time=$time-900; //$this->time=time()-900
?>

Una cosa, nunca llames igual a una variable de entrada como a una variable dentro de la clase. El $time que metes al constructor deberías llamarlo de otra forma xD... Ahí si no sabría decirte exactamente como solucionarlo, porque no entiendo bien la lógica que quieres aplicar y debería sentarme a pensarla un poco xD
El Mysql es muy simple y altamente interesante en el desarrollo web. Deberías mirartelo.

La otra era declarar otra variable como atributo de la clase que sea el arreglo, cargarlo y luego retornarlo, eso es por si lo necesitas en algún otro lado dentro de la clase.

No entiendo exactamente lo que quieres decir con esto. Y lo otro, no sé si me funcionaría, dentro de un rato lo pruebo, porque yo lo que quiero es hacer un array con todos los usuarios conectados, y luego fuera de la clase, hacer que se muestren todos los usuarios con un for.

Sobre el time... ¿Por qué recomiendas no llamar a las dos variables igual?

Y no me he explicado bien. Yo en el constructor cojo y digo que la varible $time es tal. Y los metodos de la función los pongo simplemente así

<?php
function escribir_time() { //Función inventada para explicarlo sin consultas a la db
$hora_anterior = $time - 3600 //Time hace una hora
return $hora_anterior
}
?>


¿Esa función estaría bien?
El Mysql es muy simple y altamente interesante en el desarrollo web. Deberías mirartelo.

Sí, lo tengo claro pero... Prefiero dominar un gran porcentaje de PHP para luego meterme en esto.


No entiendo exactamente lo que quieres decir con esto. Y lo otro, no sé si me funcionaría, dentro de un rato lo pruebo, porque yo lo que quiero es hacer un array con todos los usuarios conectados, y luego fuera de la clase, hacer que se muestren todos los usuarios con un for.

A lo que me refiero es algo como esto:

<?php
class Ejemplo{
	private $arreglo_lista;

	public function hola(){
		$hey = array('Primero', 'Segundo', 'Tercero');

		for($i = 0; $i <= count($hey)-1; $i++){
			$arreglo_lista[$i] = $hey[$i];
		}

		return $arreglo_lista;
	}
}
?>


La variable $arreglo_lista fue declarada como atributo de la clase. Luego en el método hola(), le asignamos a cada espacio del arreglo un valor.

Donde:
$arreglo_lista[0] = 'Primero';
$arreglo_lista[1] = 'Segundo';
$arreglo_lista[2] = 'Tercero';

Al hacer llamado a ese método, retornará el arreglo $arreglo_lista para manipularlo como quieras en el programa principal.

Sobre el time... ¿Por qué recomiendas no llamar a las dos variables igual?

Creo que no te daría error, pero es recomendable que no. No sé si en PHP pase, pero sería como tener 2 variables llamadas igual, en PHP vuelvo y digo no sé si sea así porque ahí se usa el $this->variable.



Cj, me dí cuenta que básicamente, no estás aplicando programación orientada a objetos. Las funciones que pones, no son métodos de la clase...

Debes colocarle su modo de acceso a las funciones, es parte del estandar de POO.

Sí, lo tengo claro pero... Prefiero dominar un gran porcentaje de PHP para luego meterme en esto.

Creo que ya puedes empezar a usar base de datos sin problemas, no es, ni mucho menos, lo mś complicado de PHP

A lo que me refiero es algo como esto:

<?php
class Ejemplo{
	private $arreglo_lista;

	public function hola(){
		$hey = array('Primero', 'Segundo', 'Tercero');

		for($i = 0; $i <= count($hey)-1; $i++){
			$arreglo_lista[$i] = $hey[$i];
		}

		return $arreglo_lista;
	}
}
?>


La variable $arreglo_lista fue declarada como atributo de la clase. Luego en el método hola(), le asignamos a cada espacio del arreglo un valor.

Donde:
$arreglo_lista[0] = 'Primero';
$arreglo_lista[1] = 'Segundo';
$arreglo_lista[2] = 'Tercero';

Al hacer llamado a ese método, retornará el arreglo $arreglo_lista para manipularlo como quieras en el programa principal.

Creo que la parte del bucle for es inútil, porque cuando usas $array('primero','segundo','tercero'), automaticamente $array[0] es primero, $array[1] es segundo...

Es decir, que directamente podrías retorar el array $hey y ya está.


Creo que no te daría error, pero es recomendable que no. No sé si en PHP pase, pero sería como tener 2 variables llamadas igual, en PHP vuelvo y digo no sé si sea así porque ahí se usa el $this->variable.

Error no me ha dado, pero si es cierto que igual en otros lenguajes si me lo daría. Aunque con lo poco original que soy yo para el nombre de las variables...

Cj, me dí cuenta que básicamente, no estás aplicando programación orientada a objetos. Las funciones que pones, no son métodos de la clase...

Debes colocarle su modo de acceso a las funciones, es parte del estandar de POO.

¿Y si pongo su modo de acceso si es POO pero como lo tengo puesto yo no es POO? A mi no me cuesta nada poner public o private. Aunque sigo sin entender para que sirve poner public o private si usas php. ¿Algo más tiene que haber, no?

De todas formas, esa es la primera clase que he hecho en php. Y lo que intento es hacer cosas sencillitas con POO y poco a poco hacer cosas más complejas.

Y no me has respondido a lo que te decía antes. Si yo tengo una variable definida dentro de una clase, como es $time en esa clase, ¿puedo usarla en un metodo, sin poner en la función que hay que introducir la varible $time en la funcion? No sé si me explico.
Creo que ya puedes empezar a usar base de datos sin problemas, no es, ni mucho menos, lo mś complicado de PHP

Una vez lo intenté, pero tuve un gran lío intentando conectar al MySQL, inclusive al del APACHE y pues, me ha entrado flojera.

Creo que la parte del bucle for es inútil, porque cuando usas $array('primero','segundo','tercero'), automaticamente $array[0] es primero, $array[1] es segundo...
Es decir, que directamente podrías retorar el array $hey y ya está.

Era una forma de explicarte como cargar datos a un arreglo declarado como atributo de la clase.
Y ahí me equivoqué, luego de la línea 4 en adelante, todos los $arreglo_lista deben ser $this->arreglo_lista xDD

Ese fue un ejemplo sencillo, ahora te mando uno más desgraciado, por así decirlo.

Y no me has respondido a lo que te decía antes. Si yo tengo una variable definida dentro de una clase, como es $time en esa clase, ¿puedo usarla en un metodo, sin poner en la función que hay que introducir la varible $time en la funcion? No sé si me explico.

No, no puedes. Porque la clase no reconocería esa variable que está FUERA de la clase, primero debes asignarla para luego utilizarla.
¿Hace falta definir como public el constructor de una función?
¿Hace falta definir como public el constructor de una función?

Supongo que no, igual mi definición de constructor la aplico muy distinta...

Yo nunca utilizo el __construct para designar un constructor, la otra definición (y la más acertada según mi criterio, ya que tengo entendido, en otros lenguajes se aplica así), es una función pública con el mismo nombre de la clase.

Por ejemplo:


<?php
class Hola{
   private $prueba;

   public function Hola($entrada){
           $this->prueba = $entrada;
   }
}

// Programa principal

$objeto = new Hola("valor_de_entrada");

?>
Despues de haber conseguido retorar un array correctamente, me pregunto, ¿Cómo hago para retornar un arreglo en un array ya existente? Por ejemplo:


<?php
$array = array("Uno","Dos","Tres");
function continuar_array() {
$continua = array("cinco","seis","siete");
return $continua;
}
//Y combinamos los dos array
?>

Se me ocurre hacerlo con un for, contando la cantidad de valores que tiene $array, y con un for poner en $array[$z] = $array2[$y] (donde $z == 4 e $y == 1, luego valen 5 y 2, etc...). Supongo que asi funcionaría, pero tiene que haber alguna otra forma, ¿no?
Una duda que tengo desde hace mucho, me haría un poco más fácil la vida en la programación.

Si quiero censurar "x" cosa en un formulario, por ejemplo en uno de registro, puedo utilizar el htmlentities()?

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻

Una duda que tengo desde hace mucho, me haría un poco más fácil la vida en la programación.

Si quiero censurar "x" cosa en un formulario, por ejemplo en uno de registro, puedo utilizar el htmlentities()?


Como no sabes censurar  la cosa de un formulario

Como no sabes censurar  la cosa de un formulario


De saber si sé, pero no sé si esta funcion sirva para algo en especial.

Ví en algunos códigos que antes del formulario se usaba la funcion, pero de allí, ni idea, soy nuevo en esto.

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻
Te pongo un ejemplo:

Tu tienes un sistema de comentarios. Un usuario malicioso puede poner el siguiente código en el comentario:

<script>window.location="http://www.sitio-malicioso.com"; </script>

Esto lo que haría es redireccionar a la página sitio-malicioso, siendo imposible acceder a los comentarios de la noticia. Esto lo puedes evitar con htmlentities. Por ejemplo subtituiría el < por < escrito en html (no se como es el código ahora).

Si lo que buscas es que si un usuario, siguiendo el ejemplo, comente y escriba una palabra malsonante, puedes hacer esto:

Por ejemplo:
$cadena = "El cielo es azul.";
$cadena = str_remplace("azul","rojo",$cadena);
echo $cadena; //Imprimiría "El cielo es rojo.".
Mmmm... Una duda me ha surgido en la cabeza. Cuando tu haces una consulta de mysql, y pones...

if ($query)

¿Cómo interpreta eso el php? ¿cómo isset($query) o como $query == true? Y no solo despues de una consulta. Por ejemplo si haces una función que te pide que retorne 1 o 0 (o true o false), y luego tu haces un if con eso.

Mmmm... Una duda me ha surgido en la cabeza. Cuando tu haces una consulta de mysql, y pones...

if ($query)

¿Cómo interpreta eso el php? ¿cómo isset($query) o como $query == true? Y no solo despues de una consulta. Por ejemplo si haces una función que te pide que retorne 1 o 0 (o true o false), y luego tu haces un if con eso.


Lo interpretaría como ambas, porque para comprobar si es TRUE o FALSE debe estar definida (isset()).
Y lo otro no lo entendí muy bien xD

Mmmm... Una duda me ha surgido en la cabeza. Cuando tu haces una consulta de mysql, y pones...

if ($query)

¿Cómo interpreta eso el php? ¿cómo isset($query) o como $query == true? Y no solo despues de una consulta. Por ejemplo si haces una función que te pide que retorne 1 o 0 (o true o false), y luego tu haces un if con eso.


Cuando usas if ($query) PHP lo interpretaría como "Si se cumplió la variable query", en este caso es una consulta a la DB por lo que si se llevó acabo correctamente te daría TRUE, por otro lado te daría false.

Y sobre la función digamos que puedes indicar en la misma función que valor tome, por ejemplo:


<?php
function checar($session){
if ($session == "SI"){
$session = TRUE;
}else{
$session = FALSE;
}
return $session;
}

if (checar($_SESSION['admin']) == TRUE){
echo "Bienvenido";
}else{
echo "Acceso no autorizado";
}
?>


Obviamente es un ejemplo muy claro en donde a propósito deje cada parte del código a vista para que entiendas, creo que no habrá problemas con eso, saludos.

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻
tengo una duda, yo tengo ejemplo  este codigo:

<?php 
$array = array("Frase 1", "Frase 2", "Frase 3", "Frase 4", "Frase 5", "Frase 6", "Frase 7", "Frase 8", "Frase 9", "Frase 10", "Frase 11");
$r = array_rand($array,1);
echo  $array  [$r];
?>

pues funciona muy bien, pero las frases salen en negro y quiero que salgan en blanco, e intentado un monton de formas pero todas me tiran error

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻