Foros del Web » Programando para Internet » PHP »

error raro de PHP

Estas en el tema de error raro de PHP en el foro de PHP en Foros del Web. Hola a todos: He programado lo siguiente: funcionamiento.php Código PHP: <? //Si no hay Accion if (!isset( $accion )){   echo "<a href='?accion=prueba'>pincha aqui para ver si funciona</a>" ; } //Si la Accion es prueba elseif( $accion == prueba ){ ...
  #1 (permalink)  
Antiguo 27/03/2006, 15:03
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 14 años, 7 meses
Puntos: 3
error raro de PHP

Hola a todos:

He programado lo siguiente:

funcionamiento.php
Código PHP:
<?
//Si no hay Accion
if (!isset($accion)){

  echo
"<a href='?accion=prueba'>pincha aqui para ver si funciona</a>";

}

//Si la Accion es prueba
elseif($accion==prueba){

  echo
"FUNCIONA";
  
}
?>
Cuando pruebo el enlace:
funcionamiento.php?accion=prueba (Debería salir la frase "FUNCIONA", pero me sale "pincha aqui para ver si funciona")

Me sale lo mismo que si pongo:
funcionamiento.php

Lo raro es que en un servidor funciona y en el otro no.
¿Porque puede ser?
¿El codigo esta bien?

Gracias
  #2 (permalink)  
Antiguo 27/03/2006, 15:05
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.462
Antigüedad: 15 años, 4 meses
Puntos: 2098
Prueba a recoger la variable con $_GET['accion'] en vez de con $accion.
  #3 (permalink)  
Antiguo 27/03/2006, 15:37
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 14 años, 7 meses
Puntos: 3
ok, todo arreglado

¿porque me funciona de la primera forma en un servidor y en otro no?
  #4 (permalink)  
Antiguo 27/03/2006, 15:46
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 4
La forma que deberias utilizar es la segunda.
Eso se debe a que register_globals en el php.ini esta en On en el primer caso, pero lo normal es (y cada vez mas) en Off, por lo que debes llamar a las variables: $_GET, $_POST,.. etc....
  #5 (permalink)  
Antiguo 27/03/2006, 15:58
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 14 años, 7 meses
Puntos: 3
Una dudilla más

¿Como puedo recibir un campo de un formulario en el que me pasa lo mismo?

y como puedo meterlo en esta select

mysql_query("UPDATE secciones SET texto=$texto WHERE id=$id",$conexion)

El campo del formulario se llama texto

lo he probado con:
mysql_query("UPDATE secciones SET texto=$_POST['texto'] WHERE id=$id",$conexion)

Pero no funciona, me da error en esa linea.

Gracias
  #6 (permalink)  
Antiguo 27/03/2006, 16:36
 
Fecha de Ingreso: septiembre-2005
Ubicación: Ourense
Mensajes: 25
Antigüedad: 12 años, 2 meses
Puntos: 1
Estas cometiendo un pequeño error pues php detecta que $_POST['texto'] forma parte de la cadena como tal. Para insertar el valor de la variable tanto $_POST['texto'] como $id debes concatenar la cadena de la QUERY con el valor de la siguiente forma:

mysql_query("UPDATE secciones SET texto='".$_POST['texto']."' WHERE id=".$id,$conexion)

de este modo imaginate que $_POST['texto'] tiene el valor "hola paco" e $id el valor 2345 la cadena para el interprete PHP sería:

UPDATE secciones SET texto='hola paco' WHERE id=2345

sin embargo en tu codigo para el interprete el valor sería:

UPDATE secciones SET texto=$_POST['texto'] WHERE id=$id

FIJATE EN LAS COMILLAS SIMPLES (') QUE HAY ANTES Y DESPUES DE ".$_POST['texto']." SON NECESARIAS SI EL CAMPO texto DE LA TABLA SECCIONES es varchar,text...

Espero haber sido de ayuda.
  #7 (permalink)  
Antiguo 27/03/2006, 17:34
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 14 años, 7 meses
Puntos: 3
Esa forma que me has puesto no me funciona, lo he conseguido hacer funcionar con el codigo:

UPDATE secciones SET texto='$_POST[texto]' WHERE id=$id

Pero nose si esta bien o si me puede dar en el futuro algún problema.
¿Esta todo correcto asi?

Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:32.