Question:
Date: 21-04-2017 13:33:38
(In Spanish)
Pues bien al mandarlo por PHP como sabreis ya el "&" lo toma como codigo no como cadena y estuve probando con urlencode, urlcode, rawurlencode y no, sigue sin cogerme la cadena.
Mi código seria el siguiente:
Son dos botones que indexo en mi sitio, uno que elimina y otro para poder editar.
Desde ya muchas gracias people!! Votes: 1 - Answers: 3 - Views: 11 Share on: Google Facebook Twitter LinkedIn Link
Enviar ampersand por URL con PHP[Resolved]
Buenas noches, quisiera saber si podriais solucionarme un error, vereis estoy realizando una aplicacion web que al recibir datos desde la BBDD puede contener datos como "S&C" que significaria por ejemplo "Sistemas y comunicacion".Pues bien al mandarlo por PHP como sabreis ya el "&" lo toma como codigo no como cadena y estuve probando con urlencode, urlcode, rawurlencode y no, sigue sin cogerme la cadena.
Mi código seria el siguiente:
Son dos botones que indexo en mi sitio, uno que elimina y otro para poder editar.
<td> <a href="?action=editar&id=<?php echo $r->acronimo; ?>"><img src="icon_editthis.png" width="30px" height="30px"/></a> </td> <td> <a href="?action=eliminar&acronimo=<?php echo $r->acronimo; ?>"><img src="delete.png" width="30px" height="30px"/></a> </td>
Desde ya muchas gracias people!! Votes: 1 - Answers: 3 - Views: 11 Share on: Google Facebook Twitter LinkedIn Link
Answers:
-
Date: 22-04-2017 00:44:26 1. al mandarlo por php? te refieres que lo envias mediante ajax?
2. php no es el encargado o no debería ser el que lea una url, si no lo que se pasa por ella usando $_GET ejemplo:
<?php $palabra = "jose";?> <a href="?action=editar&id=<?=$palabra;?>"><img src="icon_editthis.png" width="30px" height="30px"/></a> // se imprimirá lo que hay en en la url al darle click a la imagen <?=$_GET['action'] . $_GET['id'];?> // Resultado: editarjose y ya con esto hacer una setencia SQL para traer ciertos datos de la Base D Datos (:v)
Votes: 0 - Link answer -
Date: 22-04-2017 05:14:14 Hola Ana, ante todo bienvenida a la comunidad.
Leyendo tu pregunta entiendo que quieres enviar vía GET URL un "acronimo" (el cual es tu "id" para identificar el registro en la base de datos), y este puede contener el famoso ampersand &..., ahora bien, el problema que se te presenta (lógicamente) es que el mismo es interpretado como separador de parametro de URL y no como un string. Para entenderlo mejor veamos tu problema en código.
Aquí un código que emula el problema que esta teniendo Ana:
<?php if (isset($_GET['id'])) { echo '<pre>'; print_r($_GET); echo '</pre>'; exit; } ?> <a href="?action=editar&id=<?php echo 'S&C'; ?>">Clic para Editar</a>
Observar que en el array $_GET se reciben 3 parámetros en vez de 2:
Array ( [action] => editar [id] => S [C] => )
----------
La solución al caso es utilizar la función nativa de PHP urlencode(), veamos como salvar el ejemplo anterior:
<?php if (isset($_GET['id'])) { echo '<pre>'; print_r($_GET); echo '</pre>'; exit; } ?> <a href="?action=editar&id=<?php echo urlencode('S&C'); ?>">Clic para Editar</a>
Observar que ahora en el array $_GET se reciben los parámetros correctos:
Array ( [action] => editar [id] => S&C )
----------
Por otro lado, luego tienes que realizar la consulta SQL para recuperar tu registro, aquí podría suceder que el caracter & sea sanitizado (o sea, quitado) o escapado en la consulta para evitar una posible inyección sql... habrá que ver si también esta sucediendo esto o no...
Saludos y buen código! Votes: 2 - Link answer -
Date: 27-04-2017 09:22:05 Al final segui el consejo de Fernano Mosquera para dicha realización y funciona perfectamente, siento la tardanza en responder, muchisimas gracias a los dos por vuestra ayuda una maravilla!! Votes: 1 - Link answer
To actively participate in the community first must authenticate, enter the system.Sign In