Hola:
Un par de cosas "al vuelo":
- Definitivamente tienes que verificar el origen de las variables. Pero no es suficiente. Nunca está de más hacer una "limpieza" a las variables que llegan, por ejemplo con settype() o revisando que no contengan caracteres o cadenas indeseadas (como UNION, por ejemplo).
- Tampoco es buena idea andar "despilfarrando" el mysql_error(). Esto, ante cualquier error, muestra información sobre tu base de datos (nombres de bases de datos, tablas, campos, etc.) a cualquiera que esté enfrente. En etapa de desarrollo, es buena idea porque te ayuda a descubrir errores y depurar fácilmente, pero luego quítalo. Una buena idea puede ser manejar una variable en tu archivo de configuración como ésta:
Código PHP:
$mostrar_errores_sql = false; // o true.
y en tus comprobaciones de error puedes hacer algo como:
Código PHP:
$result = @mysql_query("SELECT *FROM tablausuarios WHERE email='$email'");
if (!$result && $mostrar_errores_sql) {
echo("<p>Error al seleccionar tabla: " . mysql_error() . "</p>");
De esa manera, sólo se mostrarán los errores, cuando tengas esa variable en "true".
Por cierto, no lo he comprobado, pero "SELECT *FROM" ¿no da error al faltar el espacio entre el * y el FROM?
Saludos