Planteo mi caso:
Tengo una url del tipo:
index.php?hash=hash8v4Y5awyQxZrI8TgwF9+Yusw==
Cuando entro al index consulto en base de datos para verificar que si ya hay un registro con ese hash. La consulta la hago asi:
Código PHP:
$q="SELECT * FROM respuestas WHERE hash='".$_REQUEST['hash']."'";
SELECT * FROM respuestas WHERE hash='hash8v4Y5awyQxZrI8TgwF9 Yusw=='
Noten que el signo de + fue reempazado por un espacio y por lo tanto no obtengo resultados.
Luego hago lo siguiente:
Código PHP:
$q="SELECT * FROM respuestas WHERE hash='".str_replace(" ","+",$_REQUEST['hash'])."'";
SELECT * FROM respuestas WHERE hash='hash8v4Y5awyQxZrI8TgwF9+Yusw=='
Ahora el signo de + no desaparece pero sigo sin tener resultados.
Entonces lo que hice fue entrar al phpmyadmin, buscar el registro, editarlo desde ahi mismo y entonces ahora si mi consulta funciona. Pero no puedo estar haciendo esto, porque los hashes en mi base de datos serán enviados por correo electrónico, y un cron job instalado en el server se encargara cada 24 horas de leer el correo e insertarlos en la base de datos.