Cita: Pero un formulario con 10 campos de los cuales 4 son obligatorios seria conveniente guardarlo en una sesión?
bueno. creo que depende, ponle el caso que tu sitio fuera enfocado directamente a la recopilacion de datos, por ejemplo, Curriculums, los cuales estan siendo ingresados por un usuario registrado en tu sistema, en este caso yo creeria conveniente hasta almacenar en una base de datos los datos que ha ingresado (si el usuario pasa cierto tiempo inactivo y deduces que ya no esta interactuando con tu sistema), asi cuando regrese puede ver cual fue la ultima informacion que estuvo "Intentando ingresar", por el otro lado un usuario que no esta registrado en tu sistema no deberias de guardar su informacion que intento ingresar ya que (como sabes) hay sistemas automatizados que intentan ya sea entrar a tu sistema o bien jugar con tus formularios con fuerza bruta o como te digo sistemas automatizados lo cual te podria llevar a tener tu base de datos llena con informacion que no es de tu utilidad. y como sabes en sessiones no seria mucho problema ya que estas tienen un periodo de caducidad, la cual tu tambien puedes establecer en tus scripts.
Cita: si falta algún campo obligatorio te avisa y lo puedes modificar al momento ya que te envía al formulario, y los datos que habías puesto se mantienen, pero seria mejor usar una sesión en vez de usar if y elses?
perfecto que valides tus campos, solo me queda decirte que si tu validacion la haces con Javacript no te confies del todo, has tambien tu validacion del lado de PHP. Y si claro, es mejor guardar tus datos de formulario en una session asi en tu formulario solo comprueba si dicha variable de session existe, y si existe asignas los valores de dicha session a tu atributo value de tu input.
http://www.forosdelweb.com/f18/validacion-sin-perder-informacion-php-467705/ Cita: Y si el formulario solo es accesible para usuarios registrados, seria mejor que se guardara en la base de datos y si el formulario no se publica cuando el usuario registrado vuelva se muestren los datos que no había publicado?
lo del primer punto aplica aqui tambien.
Cita: La duda me viene porque usuarios distintos hay muchos, y no se si el usuario meterá los datos y luego por falta de algún dato decidirá publicar el anuncio después. Pero si sale de la web esos datos los perderá y tendrá que volver a escribirlos, y al tratarse de un anuncio puede que lo haya escrito de un tirón o que lo tuviese preparado en un archivo de texto a parte almacenado en su ordenador, con lo cual no tendrá que pensar otra vez en escribir el anuncio. Pero claro, el usuario quiere publicar un anuncio, y seguramente lo publicara en varios sitios, lo lógico será que lo tenga en un archivo a parte y lo vaya copiando en distintas webs, ya que seria absurdo escribir lo mismo varias veces, pero hay gente que hace lo absurdo.
dale privilegios a tus usuarios registrados y no a cualquier navegante/sistema automatizado que venga a tu sitio, y si hacen lo absurdo, tu ya sabes en que casos tomar una accion (solo usuario registrados) u otra (no guardar informacion de intento de registro en ningun medio).
un saludo.