Holas:
Me he fijado en otra cosa:
No tienes bien construida la query para ver si el usuario ya existe en la bdd: no está bien concatenado.
Deberia ser algo como esto:
$query = mysql_query('SELECT * FROM usuarios WHERE usuario="' . $_POST['usuario'] . '" or correo="' . $_POST['correo'] . '"');
No has añadido las comillas que mysql quiere cuando envias cadenas...
De todos modos, para asegurarte de que la consulta esta bien construida haria lo siguiente:
$consulta = 'SELECT * FROM usuarios WHERE usuario="' . $_POST['usuario'] . '" or correo="' . $_POST['correo'] . '"';
echo $consulta;
$query = mysql_query($consulta);
El "echo" te devolverá la consulta que estas haciendo, y te podras asegurar que funciona copiando y pegandola directamente a una sesion abierta de mysql. Así vas modificando aqui y allá hasta que tengas lo que buscas. Cuando funcione le quitas el "echo" y listo!
También puedes usar un debugger, pero esta manera es mas barata

Otra cosa que tambien quitaría seria el "*" (el que hay delante del "SELECT"), pues te devolverá todos los campos, ralentizando así la consulta (No pasa nada cuando es solo 1, pero cuando haces bucles y tal... es pa tenerlo en cuenta). Yo pongo unicamente los campos que necesito: en este caso no necesitas ninguno en especial (pero al menos hay que poner 1), bastaría con hacer un "SELECT
usuario FROM usuarios WHERE blah, blah......" y la respuesta seria mas corta (y por tanto, mas rápida). Pero bueno, solo un consejo que en este caso tiene poca importancia.
A ver si puedo probar el codigo cuando llegue a casa y te confirmo si esta ok...
Saludos,
M
Ah, se me olvidaban 3 cosillas:
- 1. Se te ha olvidado una "_" en la variable POST de la SELECT: $
_POST[....]
- 2. La 3a condicion deberia empezar asi:
if(mysql_num_rows($query)==0){
......
"Si el numero de filas devueltas es igual a 0, insertar, de lo contrario, informa que ya existe el usuario en la bdd"- 3. Es recomendable que en las variables $_POST, $_GET, $_SESSION y en todas sus amigas, entrecomilles (no se si existe esa palabra

, pero pal caso...) el valor del array, por ejemplo: $_POST[
'usuario']. En principio no pasa nada, pero los debuggers suelen dar warnings si pones una cadena sin que se pongan las respectivas comillas...
Saludos, M