• Lunes 23 de Diciembre de 2024, 03:37

Autor Tema:  Re: Pasar valores  (Leído 4983 veces)

Estefania

  • Miembro activo
  • **
  • Mensajes: 34
    • Ver Perfil
Re: Pasar valores
« en: Sábado 14 de Diciembre de 2002, 15:10 »
0
Hola:
Les escribo este mensaje para realizarles una consulta.
Lo que me sucede es lo siguiente:
Cuando yo intento enviar datos de un formulario para realizar una búsqueda o para insertarlos en una base de datos dicho formulario no me envía nada.
Esto lo corrobore colocando un “echo” de manera de que me mostrara si las variables traían algo pero me muestra lo siguiente:
SELECT * FROM Tipobeca WHERE Clasebeca LIKE '%%' ORDER BY Clasebeca
Les agradecería mucho si me dijeran cual puede ser el problema.
Puede ser algo relacionado con la configuración de PHP?
 
El código de la página que recibe los datos es este:

<html>
<title>Script de busqueda</title>
<body>

<?php
$conexio = mysql_connect("localhost", "usuario", "contraseña");
mysql_select_db ("Becas", $conexio) OR die ("No se puede conectar");

if($palabra){

// SQL para la búsqueda

echo $palabra;
$sql="SELECT * FROM Tipobeca WHERE Clasebeca LIKE '%".$palabra."%' ORDER BY Clasebeca ";
echo $sql;

$result=mysql_query($sql,$conexio);
$row = mysql_fetch_array($result);
// Si hay resultados crea una tabla y los muestra
if ($row)
{
   echo "<TABLE BORDER='2'>";
     echo "</tr> n";
do {
            echo "<tr> n";
            echo "<td>".$row["Clasebeca"]."</td> n";
            echo "<td>".$row["Institucion"]."</td> n";
            echo "<td>".$row["Descripcion"]."</td> n";
            echo "<td>".$row["Carrera"]."</td> n";
         echo "<td>".$row["Duracion"]."</td> n";
            echo "</tr> n";
      } while ($row = mysql_fetch_array($result));
            echo "</table> n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
 
mysql_close ($conexio);
}
?>
 </body>
 </html>


Y el código del formulario de búsqueda es:

<html>
<title> Formulario de búsqueda</title>
<body>


<FORM method="post" ACTION="busca2.php">
<INPUT TYPE="TEXT" NAME="palabra" >
<INPUT TYPE="SUBMIT" NAME="Buscar">
</form>
</body>
</html>

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Pasar valores
« Respuesta #1 en: Sábado 14 de Diciembre de 2002, 19:33 »
0
Pués sí, podría ser algo relacionado con la configuración de PHP.

Añádele estas líneas al inicio de tu código PHP, y dime si te funcionó:

while ($HTTPVAR = each($_POST)) {
   ${$HTTPVAR[0]} = $HTTPVAR[1];
}


Salu2,
Avalon

jarry

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Pasar valores
« Respuesta #2 en: Lunes 16 de Diciembre de 2002, 18:50 »
0
Puede ser que el campo de texto de tu formulario no se llame $palabra, este suele ser un error muy comun. En caso contrario no falla dado que es tan simple mandar parametros de una pagina a otra que hasta en paginas html funciona, verificalo.
Para trabajar con cadenas en php hazlo de esta manera para no hacerte problemas a la hora de concatenar cadenas: $sql="SELECT * FROM Tipobeca WHERE Clasebeca LIKE '%$palabra%' ORDER BY Clasebeca ";
Si es configuracion del php prueba con algo tan simple como <? echo phpinfo() ?>

Diana Serna

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
    • http://www.german-shoes-online.com
Re: Pasar valores
« Respuesta #3 en: Jueves 24 de Abril de 2003, 16:40 »
0
Citar
Originalmente publicado por Avalon
Pués sí, podría ser algo relacionado con la configuración de PHP.

Añádele estas líneas al inicio de tu código PHP, y dime si te funcionó:

while ($HTTPVAR = each($_POST)) {
   ${$HTTPVAR[0]} = $HTTPVAR[1];
}


Salu2,
Avalon
texto Black

Diana Serna

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
    • http://www.german-shoes-online.com
Re: Pasar valores
« Respuesta #4 en: Jueves 24 de Abril de 2003, 16:43 »
0
Hola, yo tenia el mismo problema, pasaba datos desde una pagina HTMl a una pagina PHP y cuando trataba de leer los datos el no encontraba nada.
agrege las lineas de comando que indican y me funciono, me gustaria saber cual es la razon para estas lineas de comando????

while ($HTTPVAR = each($_POST)) {
      ${$HTTPVAR[0]} = $HTTPVAR[1];
   }


Diana:comp:

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Pasar valores
« Respuesta #5 en: Jueves 24 de Abril de 2003, 17:10 »
0
Hola Diana, la explicación está en la configuración de PHP que utiliza tu servidor.

Para tratar de solucionar algunos problemas de seguridad con PHP, se añadió la variable de configuración safe_mode. Si esta variable tiene un valor ON o 1 será necesario acceder a los valores enviados mediante un formulario a través del array $_POST. A su vez, los valores enviados literalmente en la URL, como por ejemplo los valores action, fid y tid de esta dirección
http://foros.solocodigo.com/post.php?ac ... 2&tid=1893, se accederían mediante el array $_GET.


Si la variable de configuración safe_mode se encuentra en estado OFF o 0 en tu archivo php.ini podrás acceder a los valores simplemente por el nombre de la variable.


El problema de seguridad que se plantearía en este caso es que si safe_mode no está activado, y tienes por ejemplo un formulario que solicita login y password, en lugar de utilizar tu formulario de entrada, yo podría poner esto directamente en la barra de dirección del navegador y funcionaría igual:

http://www.tuweb.com/tuscript.php?login ... rd=2713576

y me saltaría tu formulario. Es este caso no hay problema porque igual necesitaría saber el login y contraseña, pero puede haber casos en que esto pueda representar un problema de seguridad para tu script.


Lo que hacen las líneas que puse antes

while ($HTTPVAR = each($_POST)) {
   ${$HTTPVAR[0]} = $HTTPVAR[1];
}

es simplemente leer todos los datos enviados a través del formulario, crear las variables con su nombre correspondiente $login, $password, etc... y asignarles el valor introducido en el formulario. De esta forma no es necesario hacer ninguna otra modificación en el código.


Si en lugar de enviarse a través de un formulario se envían los datos en la propia URL sería lo mismo pero con el array $_GET.

while ($HTTPVAR = each($_GET)) {
   ${$HTTPVAR[0]} = $HTTPVAR[1];
}


Espero haber aclarado un poco este asunto, anda que no me he enrollado ni nada... -_-

Salu2,
Avalon

Diana Serna

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
    • http://www.german-shoes-online.com
Re: Pasar valores
« Respuesta #6 en: Martes 6 de Mayo de 2003, 23:07 »
0
Hola Avalon..
Primero mil gracias por tu respuesta, fue todo un exito..

ahora tengo otra inquietud:
en el sitio que estoy desarrollando aplique tus instrucciones y localmente me funciona perfecto ya que la variable safe_mode = off, pero cuado subo el sitio al hosting me saca error en la lineas que agrege y necesito quitarlas para que las pagina php trabajen. mi pregunta es: que tengo que cambiar en la configuracion de mi php.ini para no necesitar estas lineas de codigo???

gracias de nuevo

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Pasar valores
« Respuesta #7 en: Miércoles 7 de Mayo de 2003, 09:45 »
0
Hola Diana. ¿Qué versión de PHP tienes en el servidor de hosting? Las variables $_GET y $_POST se añadieron en la versión 4.1.0 por lo que si tienes una versión anterior no funcionará.

¿Cuál es el error que te aparece?


Otra cosa. Dices que en tu servidor local tienes safe_mode = off. En ese caso el script debería funcionar aunque quites esas líneas de código, pero por tu pregunta deduzco que no es así. ¿Qué error te da el servidor local si quitas esas líneas? :question:

Salu2,
Avalon

Diana Serna

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
    • http://www.german-shoes-online.com
Re: Pasar valores
« Respuesta #8 en: Jueves 19 de Junio de 2003, 12:52 »
0
Hola Avalon..
Que pena no responderte antes, pero la persona que maneja el hosting necesito un año para contestar mi pregunta acerca de cual version de php tiene el servidor. bueno te doy la informacion:
el servidor tiene 4.0.0. por esta razon no funciona el codigo que agrege en mi servidor local (la version que tengo en mi servidor loca es: 4.3.1) sin embargo sigo si entender por que al activar safe_mode = off  sigo necesitando el codigo en mis paginas locales???

bueno ahora te molesto con otra inquietud: quiero almacenar las siguientes variables cuando una persona accede a mi sitio web: HTTP_REFERER, SCRIPT_NAME, HTTP_USER_AGENT, cuando trato de ver la informacion en mi servidor local de estas variables, me saca dice que no estan declaradas, pero si lo hago en el hosting, me muestra la informacion correta. Creo que necesito tambien una instruccion especial para ello, sin embargo no se cual seria, trate de probar con las instrucciones para metogo get o post.

Bueno me despido, mil gracias de nuevo
Diana Serna

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Pasar valores
« Respuesta #9 en: Jueves 19 de Junio de 2003, 16:13 »
0
Hola Diana,

Es sorprendente que haya hostings que todavía utilicen la versión 4.0.0! :brickwall:

Sobre tu pregunta, prueba a utilizar la función getenv( )

 
Código: Text
  1.  
  2. $http_referer = getenv("HTTP_REFERER");
  3. $script_name = getenv("SCRIPT_NAME");
  4. $http_user_agent= getenv("HTTP_USER_AGENT");
  5.  

Espero que te sirva.

Salu2,
Avalon

Diana Serna

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
    • http://www.german-shoes-online.com
Re: Pasar valores
« Respuesta #10 en: Jueves 3 de Julio de 2003, 23:40 »
0
Hola Avalon..
Mil gracias.. tu dato me sirvio de muchisima ayuda..
pero tengo otro problemita!!! que pena te voy a volver loco con mis dudas:losiento:

bueno ahora trato de implementar dentro del sitio el carro de compras, para esto utilizo variables session, el problema que tengo es que la variables de session no me estan trabajando, en mi servidor local trabajan perfectamente pero cuando lo subo al hosting no me guarda la informacion en la variables de session, no se si tiene alguna relacion con la version del hosting que es 4.0.0 . o algun tipo de permiso..

he tratado de buscar informacion avanzada acerca de variables de session en php pero lo que e encontrado es muy basico y no me ha sido de mucha ayuda..

no se si tu tengas idea acerca de donde pueda encontrar informacion muy completa de variables session, o tienes alguna idea de mi problema!!!!!


bueno mil gracias de nuevo, quisiera preguntarte donde aprendiste tanto de php, sabes cada detalle, que se me hace increible conocer tan a profundidad un lenguaje????

Diana

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Pasar valores
« Respuesta #11 en: Lunes 7 de Julio de 2003, 21:08 »
0
Hola Diana. Las funciones básicas para trabajar con variables de sesión se añadieron en la versión 4 de PHP. En versiones posteriores se añadieron nuevas funciones pero no creo que este sea el problema por el que no funcione tu código.

rEnArD, otro miembro del foro, también tiene un problema parecido. Sus variables de sesión funcionan perfectamente en local pero cuando lo sube al servidor no le funcionan. Aquí está el tema en concreto:

http://foros.solocodigo.com/viewthread.php?tid=4191

Puede que sea un problema de configuración del servidor, no lo se :think: Si quieres puedes adjuntar la parte de código que no funciona y la pruebo en mi servidor a ver si tengo el mismo problema.


Sobre PHP la verdad es que me considero un principiante puesto que hace menos de 2 años que me inicié, todo de manera autodidacta.

Empecé con este libro:

Creación de sitios web con PHP 4

Autores:

Fco. Javier Gil Rubio
Jorge A. Tejedor Cerbel
Agustín Yagüe Panadero
Santiago Alonso Villaverde
Abraham Gutiérrez Rodríguez

Nivel: Principiante / Intermedio

Editorial: McGraw-Hill

ISBN: 84-481-3209-2

y a partir de ahí he ido investigando en sitios como www.php.net

Suelo dedicar bastantes horas a programar en PHP y me he encontrado con muchos de los problemas que se preguntan aquí en el foro, por eso algunas veces conozco la solución;)

Salu2,
Avalon

Diana Serna

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
    • http://www.german-shoes-online.com
Re: Pasar valores
« Respuesta #12 en: Miércoles 6 de Agosto de 2003, 11:07 »
0
Hola!!!!
ya solucione el problema...
nos cambiasmos de servidor, bueno aun tenemos el sitio web en el servidor viejo pero adquirimos un nuevo hosting en el que estamos haciendo pruebas y ya no tengo problemas con las variables de session.

quisiera preguntarte algo de nuevo!!!!
en este nuevo servidor trato de enviar un email con formato html, este email lo uso como publicidad, cada vez que un usuario llena una encuesta se le manda un email dando las gracias y con algo de publicidad, el problema es que cuando el usuario recibe el correo desde el nuevo servidor, el formato del email es en texto no en html, osea que las instrucciones html que coloco dentro del emial para que este tenga un color de fondo, y otras cosas las puede ver el usuario..
pienso que es algo en la configuracion del php en el nuevo servidor, pero no estoy segura..

Tu sabes algo de eso???

bueno y de nuevo mil mil gracias

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Pasar valores
« Respuesta #13 en: Miércoles 6 de Agosto de 2003, 19:40 »
0
Hola Diana. Es posible que te falte indicar las cabeceras para que el cliente de correo lo reconozca como mensaje en formato HTML.

Sería algo así:

$cabeceras = "MIME-Version: 1.0rn";
$cabeceras .= "Content-type: text/html; charset=iso-8859-1rn";

$para = "loquesea@loquesea.com";
$asunto = "Prueba";
$mensaje = "Esto es una prueba";

mail($para, $asunto, $mensaje, $cabeceras);


Espero que sea esa la solución a tu problema.

Por cierto, me gustaría hacerte un comentario y espero que no te lo tomes a mal.

Sería de agradecer que cuando alguna de las respuestas que aquí se han dado te haya servido de ayuda, lo dijeras enseguida, en lugar de esperar a la próxima vez que tengas una duda. No es un capricho, se trata siemplemente de que:

1) la persona que te ha dado la respuesta sepa que el tiempo invertido para ayudarte ha valido la pena

y

2) otras personas que puedan tener el mismo problema que tú, sepan que la respuesta efectivamente funciona. Si no dices nada, nadie sabe si el problema fué resuelto o no.

Creo que todos los miembros del foro deberíamos adquirir el compromiso de cerrar un tema en cuanto haya sido solucionado.

Este asunto se lleva tratando desde hace un tiempo en esta encuesta:

http://foros.solocodigo.com/viewthread.php?tid=3181


Otra recomendación es que cada vez que tengas una nueva duda crees un nuevo tema en lugar de responder dentro de otro tema que no tiene nada que ver con el original. Sin ir más lejos, este tema comenzó tratando el Paso de valores y hemos acabado hablando de variables de sesión, formatos de correo y otros temas que no tienen nada que ver con el tema original.

Así Diana espero que no te molesten estos comentarios, hechos con todo cariño, que sólo buscan mejorar el rendimiento del foro en beneficio de todos :yes:

Salu2,
Avalon

Diana Serna

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
    • http://www.german-shoes-online.com
Pasar valores
« Respuesta #14 en: Jueves 7 de Agosto de 2003, 18:33 »
0
hola avalon!!!
que pena:oops: tienes razon. lo que pasa es que muchas veces con los afanes olvidamos a hacer las cosas bien, pero bueno de ahora en adelante tratare de seguir tus recomendaciones...
tengo mas dudas con el email, pero entoces voy a abrir otro tema exponiendo mi problema.

Gracias