hola, mi opinion es que se debe validar con java script y con php, con ambos, java script es mas rapido, no se recargara la pagina si el usuario introduce valores no validos, y php para mi es mejor, pero se complica un poquito a la hora de validar un formulario, en el sentido que si algunos datos son correctos y otros no, se borraria todo el formulario y a empesar de nuevo con todo, es ahi donde hay que hacer varias cosas.
si se envian campos vacios o con valores incorrectos, que de un mensaje de error, pero que no se borren los campos correctos (al recargar la pagina), asi no se molestaria el usuario en llenar el form otra vez.
yo estoy haciendo algo asi, y la validacion hasta ahora la estoy haciendo con php (despues hago lo de java script), pero me falta esta parte, por que seria muy incomodo para el usuario que despues de llenar todo un formulario, si se equivoco solo en una coma, tener que escribir toooooOo otra vezzzzzzZz