Ayuda con funciones con el PHP

  • Autor Autor hotdoguploader
  • Fecha de inicio Fecha de inicio
H

hotdoguploader

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola, estoy haciendo una pagina con php y necesito hacer un formulario que me llama una función con el php, pero no se que le pasa que me ejecuta la función al recargar la pagina. No se que hacer ayuda. Gracias.

También necesita programar un disparador que compruebe cada cierto tiempo una fecha, para ver si a llegado a su fin, si me pudieseis ayudar un poco, gracias.

A qui el código:
Formulario donde activo la función con un submit "puja()"
Selecció_427.webp

A qui la función que la hace cuando entro en la pagina y no cuando le doy a submit:

Selecció_428.webp

Se me olvido sorry, la función esta en el mismo PHP y la llamo de esta forma:

Selecció_429.webp
NOTA: Es un trabajo de clase.
 
Última edición:
Si no pones el código no podremos ayudarte.
 
No puedes llamar funciones PHP desde el cliente.
 
Utiliza: (pero no puedes acceder a una función de esa manera como te han dicho antes a no ser que se encuentre en el mismo php)
PHP:
if(isset($_POST['submit']))

Todo lo que haya dentro del if se ejecuta sólo si ha sido llamado a través de un formulario.

Para el disparador depende de lo que necesites:
- Puedes jugar con time() o date()
- Puedes utilizar el servicio Cron de tu servidor.
 
Utiliza: (pero no puedes acceder a una función de esa manera como te han dicho antes a no ser que se encuentre en el mismo php)
PHP:
if(isset($_POST['submit']))

Todo lo que haya dentro del if se ejecuta sólo si ha sido llamado a través de un formulario.

Para el disparador depende de lo que necesites:
- Puedes jugar con time() o date()
- Puedes utilizar el servicio Cron de tu servidor.

Estoy mirando haber si funciona de esta forma, pro lo que veo si funciona y entra cuando debe, pero me entra 3 veces seguidas y me puja 3 veces, intuyo que es por el 'Foreach', como puedo evadir esto, yo que solo entre 1 vez cada click que le doy?

Selecció_430.webp
 
Última edición:
Sin mirar el código, como solución mala y rápida creale un contador=0; y que solo pueda entrar al if cuando cont = 0, luego lo incrementas y no entra más.

PD: Luego te mire el código a ver si se puede optimizar.
 
Sin mirar el código, como solución mala y rápida creale un contador=0; y que solo pueda entrar al if cuando cont = 0, luego lo incrementas y no entra más.

PD: Luego te mire el código a ver si se puede optimizar.

Ya solucione el tema, solo tenia que quitar el 'onclik' se ve que al PHP no le gusta el Onclik y cada vez que se creaba un 'div' se ejecutaba la función, Al final quedo de esta forma:

Screenshot_1.webp
Screenshot_3.webp

Gracias por la ayuda igualmente. Si quieren ya pueden cerrar el tema.
 
Y sigues sin entender como trabaja el servidor y el cliente. 😕

PHP nunca te va a ejecutar una función en un onClick, ya que PHP se ejecuta en el servidor y un onClick es del cliente. La función se ejecutaba con cada div que creabas porque la llamabas en cada iteración al intentarla poner en el onClick.

Digamos que tienes una función en PHP:
PHP:
<?php
	function say_hello( $name ) {
		echo 'Hello ' . $name;
	}
?>

y creas un ciclo para crear unos botones con el evento onClick (como intantabas hacer):
PHP:
<?php $num = array( 'Juan', 'Pedro', 'Manuel', 'John' ); ?>
<?php foreach ($num as $i => $row): ?>
	<input type="button" onclick="<?php say_hello($row) ?>" value="Button <?php echo $i ?>">
<?php endforeach ?>

como, según veo, tú crees que tendrás el código es algo como:
PHP:
	<input type="button" onclick="say_hello(Juan)" value="Button 0">
	<input type="button" onclick="say_hello(Pedro)" value="Button 1">
	<input type="button" onclick="say_hello(Manuel)" value="Button 2">
	<input type="button" onclick="say_hello(John") value="Button 3">

pero lo que en realidad vas a tener es:
PHP:
	<input type="button" onclick="Hello Juan" value="Button 0">
	<input type="button" onclick="Hello Pedro" value="Button 1">
	<input type="button" onclick="Hello Manuel" value="Button 2">
	<input type="button" onclick="Hello John" value="Button 3">

ya que la llamada a la función say_hello se ejecutó en el servidor y el cliente lo único que ve es es lo que se hizo/regresó/imprimió la función.

P.D: El hilo lo puedes cerrar tú mismo creo.

Saludos.
 
Última edición:
Huyyyyy...........

Amigo, no estas desinfectando esos $_POST lo cual es malisimo en cuanto a seguridad se trata, luego porque los hackean 😕

Si tus $_POST son todos cadenas de texto, puedes por lo menos hacer:

Insertar CODE, HTML o PHP:
$_POST  = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);

Para desinfectar toda la array. Si estas insertando valores en tu base de datos, cheka
Insertar CODE, HTML o PHP:
mysql_real_escape_string()

PHP: mysql_real_escape_string - Manual

Aunque como no se que sistema estas usando ni demás cosas, no puedo recomendar nada especifico, solo lo general
 
Atrás
Arriba