PHP - Problemas para recoger mediante post unos valores de un formulario

   
Vista:

Problemas para recoger mediante post unos valores de un formulario

Publicado por Sam (138 intervenciones) el 09/03/2016 23:24:05
Hola amigas/os, a ver si me pueden ayudar con esto que me lleva de cabeza.

Estoy haciendo un servicio en php pero no me coge los valores que le envio por el formulario.

Sin embargo cuando fuerzo a que coja unos valores de unas variables en vez de tenerlo que recoger a traves del formulario. entonces si que me los recoge y funciona todo.

Y no se por que ocurre esto no es que es lo que esta fallando por mas que lo miro.

Todas las rutas estan bien ya que si en el archivo 2 descomento $id = '3'; y comento //$id = $_POST['COD_MUSICO']; entonces si funciona todo como digo.

Agradeceria algo de ayuda exclarecedora.

Este es mi codigo:

archivo 1 llamado: formulario_servicios.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
 
	<head>Formulario</head>
 
	<body>
 
		<form name="formulario" method="post" action="client_NO_WSDL.php">
 
		<input type="text" name="COD_MUSICO" placeholder="COD MUSICO" /><br><br>
 
		<input name="submit" type="submit"value="mostrar" />
 
		</form>
 
	</body>
 
</html>



archivo 2 llamado "client_NO_WSDL.php"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
	require_once 'server_NO_WSDL.php';
 
	/*
	 * Ahora crearé la instancia, y asignar la clase
	 */
 
	$params = array('uri' => 'localhost/mis_trabajos/Tarea_6_php/server_NO_WSDL.php');
	$server = new SoapServer(NULL, $params);
	$server->setClass('misMetodos'); //Nombre de la clase que he creado
	$server->handle();
 
 
	$objeto_ut6 = new misMetodos;
 
 
	//$id = '3';   
	$id = $_POST['COD_MUSICO'];
	echo $objeto_ut6->Dame_Nombre_Musico($id);
 
?>


archivo 3 llamado "server_NO_WSDL"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
 
class misMetodos
{
	private $con;
 
	public function __construct()
	{
		$this->con = (is_null($this->con)) ? self::conexion_bbdd() : $this->con;
	}
 
	static function conexion_bbdd()
	{
		$con = mysql_connect('localhost', 'ut6', 'ut6');
 
		$db = mysql_select_db('ut6', $con);
 
		return $con;
	}
 
 
	public function Dame_Nombre_Musico($id)
	{
		$id_musico = $id['COD_MUSICO'];
		$sql = "SELECT NOMBRE_MUSICO FROM MUSICOS WHERE COD_MUSICO = '$id_musico'";
		$qry = mysql_query($sql, $this->con);
		$res = mysql_fetch_array($qry);
 
		return $res['NOMBRE_MUSICO'] . "<br/>";
	}
 
} //fin class misMetodos
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de VRM

Problemas para recoger mediante post unos valores de un formulario

Publicado por VRM (171 intervenciones) el 10/03/2016 07:49:12
Hola:

En el programa: client_NO_WSDL.php

en la linea
1
$id = $_POST['COD_MUSICO'];
creas una variable $id con el contenido del input COD_MUSICO que es de tipo string
en la linea
1
echo $objeto_ut6->Dame_Nombre_Musico($id);
la envías como parámetro a la función Dame_Nombre_Musico
En la clase misMetodos método Dame_Nombre_Musico
en la linea
1
$id_musico = $id['COD_MUSICO'];
la usas como si fuera un array asociativo.

Revisa esto porque creo que ese es el error. Yo borraría esa linea y cambiaría la siguiente para dejarla como
1
$sql = "SELECT NOMBRE_MUSICO FROM MUSICOS WHERE COD_MUSICO = '$id'";

Saludos de Víctor.-

Resulta más cómodo que uses la opción de insertar código ( el icono </> ) se ve más rápido y es más fácil referirse a él por el número de la linea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas para recoger mediante post unos valores de un formulario

Publicado por sam (138 intervenciones) el 10/03/2016 12:02:12
Nada ni poniendo lo que me has dicho, ni reajustando la funcion en el archivo 3 dejandola asi:

1
2
3
4
5
6
7
8
public function Dame_Nombre_Musico($id)
{
	$sql = "SELECT NOMBRE_MUSICO FROM MUSICOS WHERE COD_MUSICO = $id";
	$qry = mysql_query($sql, $this->con);
	$res = mysql_fetch_array($qry);
 
	return $res['NOMBRE_MUSICO'] . "<br/>";
}

cuando envio el formulario en el archivo 2 no me recoge el valor de post.

Hice pruebas comentando lineas de codigo en el archivo 2, y cuando comento la linea:
1
$server->handle();


entonces si me recoge el valor de formulario por post.

pero claro, esta linea no puede estar comentada , ya que para que funcione el servicio soap debe existir.

de echo cuando sustituyo el valor de post por el de un valor fijo de una variable en el archivo 2, entonces todo funciona.

help!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de VRM

Problemas para recoger mediante post unos valores de un formulario

Publicado por VRM (171 intervenciones) el 10/03/2016 13:02:39
Hola:

En la linea 7 yo pondría:
1
echo "<pre>";print_r($res);echo "</pre>"
Para ver que da la consulta a la base de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas para recoger mediante post unos valores de un formulario

Publicado por sam (138 intervenciones) el 10/03/2016 13:27:31
No sale nada.
Cuando mando el formulario con un numero en este caso la url dice:

localhost/mis_trabajos/clien_NO_WSDL.php?COD_MUSICO=2

sale eso porque lo mando por get, para ver si envia el valor. y si lo hace.

pero no lo coge en el archivo NO_WSDL.php

:-(((
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de VRM

Problemas para recoger mediante post unos valores de un formulario

Publicado por VRM (171 intervenciones) el 10/03/2016 17:42:25
Hola:
Disculpa, se me olvidó decir que cuando no sale nada es que devuelve false.
Puedes verificarlo con la línea
1
var_dump($res);
Eso quiere decir que:
A) tienes un error en la sintaxis del comando sql
B) El campo que aparece en el comando no existe
C) La tabla no existe

Saludos de Víctor.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas para recoger mediante post unos valores de un formulario

Publicado por sam (138 intervenciones) el 10/03/2016 17:52:09
cuando pongo var_dump , me da bool(false),

pero no se por que no llega el valor de post al archivo 2 la verdad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de VRM

Problemas para recoger mediante post unos valores de un formulario

Publicado por VRM (171 intervenciones) el 11/03/2016 08:33:47
Hola:

Mirando más a fondo veo:

a) ¿Para qué sirven las lineas 9 a 12 de client_NO_WSDL.php.? ¿Estás creando un servicio SOAP? Para una cosa tan simple mejor las eliminas.

b) En la linea 15 de client_NO_WSDL.php te falta abrir y cerrar paréntesis, la linea debe ser:
1
$objeto_ut6 = new misMetodos();

La creación de la conexión a la base de datos parece estar bien, aunque yo lo haría de otra manera: yo extendería la clase mysqli.

Suerte.

Saludos de Víctor.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar