Formulario en web alojada en SERED

Hola;

he creado un formulario en HTML y dado forma en una hoja de estilos CSS. Ya lo tengo todo como quiero.
Ahora sólo me falta configurar los campos "no estéticos".
He estado leyendo por aquí que creais una hoja en PHP. ¿Es totalmente necesaria?

Tengo mi web con SERED que tiene PERL. Y he encabezado el formulario de esta forma.

<FORM ACTION="aaaaaaaaaaaa" METHOD="post">
<input type=hidden name="to" value="[correo eliminado]">
<input type=hidden name="return-url" value="http://www.cccccccccccc.es/gracias.html">

Donde las "b" son mi correo y las "c" con la ubicación de una hoja de confirmación.

Lo que no se como rellenar son las "a".

No sé avanzar.Una ayuda?
Gracias anticipadas.
Ale! ya me has liado otra vez. Después del HTML y CSS (creía que me bastaría) ahora estoy con el curso de php... esto no acaba nunca?? Y por ahí he visto eso de MySQL... NOOOOOOOOO!!!!. :roll: Bueno, dejaré este hilo aqui aparcado por ahora. Cuando termine ese curso de php sigo con las dudas.
Ah,lo de PERL, es que lo había visto por algún lado en el CPanel.
amigo por que no pones algo asi (creo que es esto que conste no e revisado la causa de tu error pero para lo que quieres siempre sugiero esta estructura)

//obtener datos
$NOMBRE=$_POST['NOMBRE'];
$APELLIDO=$_POST['APELLIDO'];
$SEGUNDOAPELLIDO=$_POST['SEGUNDOAPELLIDO'];
$EMAIL=$_POST['EMAIL'];
pones los datos faltantes

if($NOMBRE&&$APELLIDO&&$SEGUNDOAPELLIDO&&$EMAIL&&el resto de datos va aqui)

{
//insertar datos
mysql_connect("el cervidorr","el usuario","la contraceña") or die (mysql_error());
mysql_select_db("la BD") or die (mysql_error());


$insertar = mysql_query("INSERT INTO news VALUES ('$NOMBRE','$APELLIDO','$SEGUNDOAPELLIDO','$EMAIL','el resto de los datos')") or die (mysql_error());

die ("formulario enviado (aquí puedes poner los códigos de tu pagina o hacerle una llamada a una hoja que los contenga)");

}
else
echo "Favor llenar todos los campos.!";

bueno amigo esto es lo que yo recomiendo para estos casos es enciyo y limpio.

PD: te explico un poco lo que ise

- $NOMBRE=$_POST['NOMBRE']; aquí obtengo la información enviada en el formulario y la convierto en una variable.
- if($NOMBRE&&$APELLIDO&&$SEGUNDOAPELLIDO&&$EMAIL&&el resto de datos va aqui) aqui me aseguro de que todos los campos estén llenos, de lo contrario mostrara esto echo "Favor llenar todos los campos.!";
- $insertar = mysql_query("INSERT INTO news VALUES ('$NOMBRE','$APELLIDO','$SEGUNDOAPELLIDO','$EMAIL','el resto de los datos')") or die (mysql_error()); aquí le digo donde debe insertar dichos datos, que conste debe ir en el mismo orden de las tablas de la bd.
die ("formulario enviado (aquí puedes poner los códigos de tu pagina o hacerle una llamada a una hoja que los contenga)"); por ultimo lo que muestra una vez que el formulario aya sido correctamente escrito y correctamente enviado

este código todavía se puede mejorar, se le pueden agregar algunos elementos de seguridad y demás pero vamos te e dado una muy buena idea de como iniciar tu código ¿o no ?
a ora lo demás depende de ti.
¿Este codigo php es el que debo llamar desde el html del formulario?
¿Antes tenia dos: uno que es config.php y otro que es insertardatosentabla.php ; ¿este sustituye a los dos?

Hay algunos campos que no son obligatorios,¿ deberia explicar a los usuarios que quieran enviarlo que pongan ceros o sinó no se enviará? en la misma base de datos tengo puesto que diversos campos no son necesarios rellenar.
ok ok ya bamos complicando (o mejorando el codigo),
la verdad es tan simple como no inclui unas cosas deja e explico.

los codigos que te e dado los puedes poner en la misma oja donde tienes el formulario y eliminas el archivo confing
quedando algo asi
<?php
// con esto le decimos que solo se ejecute si se utiliza el formulario
if ($_POST['post'])

{
//obtener datos
$NOMBRE=$_POST['NOMBRE'];
$APELLIDO=$_POST['APELLIDO'];
$SEGUNDOAPELLIDO=$_POST['SEGUNDOAPELLIDO'];
$EMAIL=$_POST['EMAIL'];
pones los datos faltantes

if($NOMBRE&&$APELLIDO&&$SEGUNDOAPELLIDO&&$EMAIL&&el resto de datos va aqui)

{
//insertar datos
mysql_connect("el cervidorr","el usuario","la contraceña") or die (mysql_error());
mysql_select_db("la BD") or die (mysql_error());


$insertar = mysql_query("INSERT INTO news VALUES ('$NOMBRE','$APELLIDO','$SEGUNDOAPELLIDO','$EMAIL','el resto de los datos')") or die (mysql_error());

die ("formulario enviado (aquí puedes poner los códigos de tu pagina o hacerle una llamada a una hoja que los contenga)");

}
else
echo "Favor llenar todos los campos.!";  
};
 ?>

<FORM ACTION="aqui pones el misno nombre de la oja en el que estas trabajando" METHOD="post">
<input type=hidden name="to" value="[correo eliminado]">
<input type=hidden name="return-url" value="http://www.cccccccccccc.es/gracias.html">

para hacer que algunas partes no sean necesarias basta con modificar esta linea


if($NOMBRE&&$APELLIDO&&$SEGUNDOAPELLIDO&&$EMAIL&&el resto de datos va aqui)

con esta linea solo le estamos diciendo que si todos los caracteres que estén dentro de ella estas escritos que los guarde en la bd, aora si queremos que uno sea opcional simplemente no lo ponemos en esta linea y ya asi de simple :3

aora porsiacaso no quieres que el formulario este en miama oja solo deves hacer lo siguiente
colocas todo el codigo que te di en "insertardatosentabla.php" sin el if osea
<?php
//obtener datos
$NOMBRE=$_POST['NOMBRE'];
$APELLIDO=$_POST['APELLIDO'];
$SEGUNDOAPELLIDO=$_POST['SEGUNDOAPELLIDO'];
$EMAIL=$_POST['EMAIL'];
pones los datos faltantes

if($NOMBRE&&$APELLIDO&&$SEGUNDOAPELLIDO&&$EMAIL&&el resto de datos va aqui)

{
//insertar datos
mysql_connect("el cervidorr","el usuario","la contraceña") or die (mysql_error());
mysql_select_db("la BD") or die (mysql_error());


$insertar = mysql_query("INSERT INTO news VALUES ('$NOMBRE','$APELLIDO','$SEGUNDOAPELLIDO','$EMAIL','el resto de los datos')") or die (mysql_error());

die ("formulario enviado (aquí puedes poner los códigos de tu pagina o hacerle una llamada a una hoja que los contenga)");

}
else
echo "Favor llenar todos los campos.!";  
 ?>

y modificas la linea del form que ace referencia a el osea esta
<FORM ACTION="aaaaaaaaaa" METHOD="post">

por ultimo para comodidad de los usuarios deves especificar en el form cuales caracteres son requeridos y cuales no :3 eso es todo.

cualquier otra duda solo pregunta amigo
Voy a ello. Te estaba esperando,ya me has dado faena para un ratito. Gracias! [;)]
Luego te cuento.
Haciendome pasar por un usuario,al rellenar el formulario,siempre me sale el mensaje de llenar todos los campos.

Te pego el enlace de la web que estoy creando aqui:

http://www.pipilotta.es/comprar/online.html


Que por cierto,estoy viendo que según el navegador,se visualiza de formas diferentes.
He estado haciendo mas pruebas.
De la linea
if($NOMBRE&&$APELLIDO&&$SEGUNDOAPELLIDO&&$EMAIL&&e l resto de datos va aqui)

tal y como me has dicho,eliminé los datos que no son indispensables,acorde y en mismo orden que en la bd. Pero sigue diciendo que debo rellenar todos los campos.
Asegurate de dejar la línea así:

if($NOMBRE&&$APELLIDO&&$SEGUNDOAPELLIDO&&$EMAIL)

y no dejar nada tras &EMAIL, como acá:

if($NOMBRE&&$APELLIDO&&$SEGUNDOAPELLIDO&&$EMAIL&&e l resto de datos va aqui)
Si si asi está.

Pongo el codigo entero escondiendo la clave.


<?php
//obtener datos
$NOMBRE=$_POST['NOMBRE'];
$APELLIDO=$_POST['APELLIDO'];
$SEGUNDOAPELLIDO=$_POST['SEGUNDOAPELLIDO'];
$TELEFONO=$_POST['TELEFONO'];
$DIRECCION=$_POST['DIRECCION'];
$LOCALIDAD=$_POST['LOCALIDAD'];
$REGION=$_POST['REGION'];
$CODIGO=$_POST['CODIGO'];
$PAIS=$_POST['PAIS'];
$CONTORNOPECHO=$_POST['CONTORNOPECHO'];
$CONTORNOCINTURA=$_POST['CONTORNOCINTURA'];
$CONTORNOCADERA=$_POST['CONTORNOCADERA'];
$LARGOFALDA=$_POST['LARGOFALDA'];
$LARGOMANGA=$_POST['LARGOMANGA'];
$TALLEDELANTERO=$_POST['TALLEDELANTERO'];
$TALLETRASERO=$_POST['TALLETRASERO'];
$REFERENCIAS=$_POST['REFERENCIAS'];
$SEGURO=$_POST['SEGURO'];
$VALEDESCUENTO=$_POST['VALEDESCUENTO'];
$FORMADEPAGO=$_POST['FORMADEPAGO'];
$OTRAINFO=$_POST['OTRAINFO'];
$EXISTENCIA=$_POST['EXISTENCIA'];

if($NOMBRE&&$APELLIDO&&$EMAIL&&$TELEFONO&&$DIRECCION&&$LOCALIDAD&&$REGION&&$CODIGO&&$PAIS&&$REFERENCIAS&&$SEGURO&&$FORMADEPAGO)

{
//insertar datos
mysql_connect("pipilott_primerabasededatos","aqui usuario","aqui clave") or die (mysql_error());
mysql_select_db("la BD") or die (mysql_error());


$insertar = mysql_query("INSERT INTO news VALUES ('$NOMBRE','$APELLIDO','$SEGUNDOAPELLIDO','$EMAIL','el resto de los datos')") or die (mysql_error());

die ("formulario enviado (gracias.html)");

}
else
echo "Debes llenar todos los campos obligatorios.!";
?>
Mierda!!! si,en esa linea no,pero en la de mas abajo si lo tengo como dices. Voy a probar. :oops:
También he visto que me he saltado el campo "email" en obtener datos..... que desastre!! es fruto de la occecación.Voy a repasar todo por cienmillonésima vez,ahora os cuento.:oops:
Prueba de esta manera:
1º quita las comillas de dentro de los POST:

//obtener datos
$NOMBRE=$_POST;
$APELLIDO=$_POST;
$SEGUNDOAPELLIDO=$_POST;
$EMAIL=$_POST[correo eliminado];
pones los datos faltantes

2º entre parentesis verifica que las variables NO estan vacias:

if(($NOMBRE!=="")&&($APELLIDO!=="")&&($SEGUNDOAPELLIDO!=="")&&($EMAIL!=="")) else {
Saludos.
Con los errores de antes sigue igual. Voy a probar lo que me pone toti.
Error en línea 29. Ahora si que tengo un lio...[:?]


<?php
//obtener datos
$NOMBRE=$_POST;
$APELLIDO=$_POST;
$SEGUNDOAPELLIDO=$_POST;
$EMAIL=$_POST[correo eliminado];
$TELEFONO=$_POST;
$DIRECCION=$_POST;
$LOCALIDAD=$_POST;
$REGION=$_POST;
$CODIGO=$_POST;
$PAIS=$_POST;
$CONTORNOPECHO=$_POST;
$CONTORNOCINTURA=$_POST;
$CONTORNOCADERA=$_POST;
$LARGOFALDA=$_POST;
$LARGOMANGA=$_POST;
$TALLEDELANTERO=$_POST;
$TALLETRASERO=$_POST;
$REFERENCIAS=$_POST;
$SEGURO=$_POST;
$VALEDESCUENTO=$_POST;
$FORMADEPAGO=$_POST;
$OTRAINFO=$_POST;
$EXISTENCIA=$_POST;
$VERIFICACION=$_POST;

if(($NOMBRE!=="")&&($APELLIDO!=="")&&($EMAIL!=="")&&($TELEFONO!=="")&&($DIRECCION!=="")&&($LOCALIDAD!=="")&&($REGION!=="")&&($CODIGO!=="")&&($PAIS!=="")&&($REFERENCIAS!=="")&&($SEGURO!=="")&&($FORMADEPAGO!=="")&&($VERIFICACION!=="")) else {
//insertar datos
mysql_connect("pipilott_primerabasededatos","usuario",""clave") or die (mysql_error());
mysql_select_db("la BD") or die (mysql_error());


$insertar = mysql_query("INSERT INTO news VALUES ('$NOMBRE','$APELLIDO','$SEGUNDOAPELLIDO','$EMAIL','$TELEFONO','$DIRECCION','$LOCALIDAD','$REGION','$CODIGO','$PAIS','$CONTORNOPECHO','$CONTORNOCINTURA','$CONTORNOCADERA','$LARGOFALDA','$LARGOMANGA','$TALLEDELANTERO','$TALLETRASERO','$REFERENCIAS','$SEGURO','$VALEDESCUENTO','$FORMADEPAGO','$OTRAINFO','$EXISTENCIA''$VERIFICACION')") or die (mysql_error());

die ("formulario enviado (gracias.html)");

}
else
echo "Debes llenar todos los campos obligatorios.!";
?>
Y si teneis todos razón pero el problema es la bd? Igual la tengo mal configurada.¿Y si la elimino? Con que me lleguen los pedidos al correo es suficiente. Tener base de datos es porque el tutorial de CCTV lo ligaba a ella,no porque me sea necesaria.
Así a bote pronto....

Hace una consulta a la base de datos, poniendo como condición que si ningún campo está en blanco haga..... no dice qué quieres que haga, te vas directamente al else. Ese else creo que te sobra.

Mira a ver así:

<?php
//obtener datos
$NOMBRE=$_POST[NOMBRE];
$APELLIDO=$_POST[APELLIDO];
$SEGUNDOAPELLIDO=$_POST[SEGUNDOAPELLIDO];
$EMAIL=$_POST[EMAIL];
$TELEFONO=$_POST[TELEFONO];
$DIRECCION=$_POST[DIRECCION];
$LOCALIDAD=$_POST[LOCALIDAD];
$REGION=$_POST[REGION];
$CODIGO=$_POST[CODIGO];
$PAIS=$_POST[PAIS];
$CONTORNOPECHO=$_POST[CONTORNOPECHO];
$CONTORNOCINTURA=$_POST[CONTORNOCINTURA];
$CONTORNOCADERA=$_POST[CONTORNOCADERA];
$LARGOFALDA=$_POST[LARGOFALDA];
$LARGOMANGA=$_POST[LARGOMANGA];
$TALLEDELANTERO=$_POST[TALLEDELANTERO];
$TALLETRASERO=$_POST[TALLETRASERO];
$REFERENCIAS=$_POST[REFERENCIAS];
$SEGURO=$_POST[SEGURO];
$VALEDESCUENTO=$_POST[VALEDESCUENTO];
$FORMADEPAGO=$_POST[FORMADEPAGO];
$OTRAINFO=$_POST[OTRAINFO];
$EXISTENCIA=$_POST[EXISTENCIA];
$VERIFICACION=$_POST[VERIFICACION];

if(($NOMBRE!=="")&&($APELLIDO!=="")&&($EMAIL!=="")   &&($TELEFONO!=="")&&($DIRECCION!=="")&&($LOCALIDAD!=="")&&($REGION!=="")&&($CODIGO!=="")&&($PAIS!=="    ")&&($REFERENCIAS!=="")&&($SEGURO!=="")&&($FORMADEPAGO!=="")&&($VERIFICACION!=="")) 
   {
   //insertar datos
   mysql_connect("pipilott_primerabasededatos","usuario","clave") or die (mysql_error());
   mysql_select_db("la BD") or die (mysql_error());
   $insertar = mysql_query("INSERT INTO news VALUES   ('$NOMBRE','$APELLIDO','$SEGUNDOAPELLIDO','$EMAIL','$TELEFONO','$DIRECCION','$LOCALIDAD','$REGION','$CODIGO','$PAIS','$CONTORNOPECHO','$CONTORNOCINTURA','$CONTORNOCADERA','$LARGOFALDA','$LARGOMANGA','$TALLEDELANTERO','$TALLETRASERO','$REFERENCIAS','$SEGURO','$VALEDESCUENTO','$FORMADEPAGO','$OTRAINFO','$EXISTENCIA''$VERIFICACION')") or die (mysql_error());
   die ("formulario enviado (gracias.html)");
   }
else
   {
   echo "Debes llenar todos los campos obligatorios.!";  
   }
?>                         

Además pusite esto (dos veces las comillas dobles juntas):

("pipilott_primerabasededatos","usuario",""clave")
Revisa si copias y pegas. Al añadir codigo a los mensajes a veces se meten espacios en blanco que luego te pueden dar errores.
Te mande el codigo con un pequeño error:

Te metí un "else" por error.Tienes que borrarlo (marcado en rojo)

if(($NOMBRE!=="")&&($APELLIDO!=="")&&($EMAIL!=="") &&($TELEFONO!=="")&&($DIRECCION!=="")&&($LOCALIDAD !=="")&&($REGION!=="")&&($CODIGO!=="")&&($PAIS!==" ")&&($REFERENCIAS!=="")&&($SEGURO!=="")&&($FORMADE PAGO!=="")&&($VERIFICACION!=="")) else {

De todas formas, si ya no te dice nada: "Debes llenar los campos obligatorios", es que ya hemos pasado el problema del formulario. Ahora el problema es la base de datos. Prueba lo que te digo (Quita el "else")

Si te sale otro error lo mandas.

Saludos.
Jorgens_CCTW escribió:Además pusite esto (dos veces las comillas dobles juntas):

("pipilott_primerabasededatos","usuario",""clave")

Eso fue al borrar los campos para esconderlos y publicarlo aqui.

Bueno con las modificaciones que hemos hecho ahora,seguimos parecidos:

Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host 'pipilott_primerabasededatos' (1) in /home/pipilott/public_html/comprar/insertardatosentabla.php on line 31
Unknown MySQL server host 'pipilott_primerabasededatos' (1)

En el tuto, escribimos lo de "localhost" . ¿Aqui no es necesario?

Si no fuese porque es realmente importante para mi web, ya habria tirado la toalla.[:(]
toti escribió:Prueba de esta manera:
1º quita las comillas de dentro de los POST:

//obtener datos
$NOMBRE=$_POST;
$APELLIDO=$_POST;
$SEGUNDOAPELLIDO=$_POST;
$EMAIL=$_POST[correo eliminado];
pones los datos faltantes

amm amigo no es por mal pero asi no es la estructura de dichos codigos,
las comillas son los limitadores del nombre del campo de post

toti escribió:2º entre parentesis verifica que las variables NO estan vacias:

if(($NOMBRE!=="")&&($APELLIDO!=="")&&($SEGUNDOAPELLIDO!=="")&&($EMAIL!=="")) else {
Saludos.

ammmm esa estructura esta muy mal, solo le estas diciendo que si cada uno de los contenidos es = a la nada entones ejecute mas eso no es lo que se pide y en dado caso la estructura con los paréntesis no es necesaria .-.

haver amigo te esta diciendo que no encuentra el cervidor de la bd
en dado caso el error esta aqui
mysql_connect("aqui es donde va el cervidor de la bd","usuario","clave") or die (mysql_error());
mysql_select_db(" AQUI BA EL NOMBRE DE LA BD") or die (mysql_error());

creo que eso es todo
El operador $a !== $b significa NO IDENTICO: la expresión es cierta cuando ambas variables no son idénticas.
Y en el codigo de Npra estamos buscando esto exactamente, que el campo no este vacio.

EL CODIGO CORRECTO PARA GUARDAR LOS DATOS EN LA BASE ES ESTA:

$NOMBRE=$_POST;
$APELLIDO=$_POST;
$SEGUNDOAPELLIDO=$_POST;
$EMAIL=$_POST[correo eliminado];

if(($NOMBRE!=="")&&($APELLIDO!=="")&&($SEGUNDOAPELLIDO!=="") &&($EMAIL!=="")){

// Conexión con el servidor
mysql_connect(localhost, usuario, password) or die ("error1".mysql_error());
// Selección de Base de Datos
mysql_select_db( nombre_base_de_datos) or die ("error2".mysql_error());
//Insertamos los datos en la base
mysql_query ("INSERT INTO `nombre_base_de_datos`.`nombre_tabla` ( `NOMBRE`, `APELLIDO`, `SEGUNDO APELLIDO`,`EMAIL`) VALUES ('$NOMBRE','$APELLIDO','$SEGUNDOAPELLIDO','$EMAIL')");

}
else
echo "Debes llenar todos los campos obligatorios.!";

"EN ROJO LOS CAMPOS QUE DEBES CANVIAR"

Saludos a todos.
te corrijo amigo
1. esto esta mal definido mysql_query ("INSERT INTO `nombre_base_de_datos`.`nombre_tabla` se define es asi $insertar = mysql_query("INSERT INTO nombre_tabla VALUES razón de esto anterior mente ya definiste la bd y no hase falta comillas en una declaración de query

2.
$NOMBRE=$_POST;
$APELLIDO=$_POST;
$SEGUNDOAPELLIDO=$_POST;
$EMAIL=$_POST[correo eliminado];

con esto no discuto mas, es indiferente si lo pones con o sin comillas, de ambas maneras funciona, el único cambio es que con las comillas se obtiene seguridad en caso de un ataque.

3. las == significa identico a y la = significa y gual , en otras palabras el primero es un condicionario y el segundo es una declaracion, para mas informacion vicite la w3schools

no discuto mas la idea es ayudar al compañero no discutir entre nosotros .

por ultimo como referencia al amigo que iso la pregunta te paso el código funcional que uso en mi pagina.
<?php
// Deshabilitar todo reporte de errores 
error_reporting(0); 


if ($_POST['post'])

{

//obtener datos
$titulo = $_POST['titulo'];
$genero = $_POST['genero'];
$tipo = $_POST['tipo'];
$url = $_POST['leer'];
$descripcion = $_POST['descripcion'];
$estado =$_POST['estado'];
$sinop = $_POST['sinop'];
$imagen1 = $_POST['imagen1'];

if($titulo&&$genero&&$url&&tipo&&$descripcion&&$sinop&&$imagen1&&$estado)

{
//insertar datos
mysql_connect("le_cervidor_de_la_BD","usuario","contraceña") or die (mysql_error());
mysql_select_db("la_BD") or die (mysql_error());

$fecha= date("Y/m/d");

$insertar = mysql_query("INSERT INTO la_tabla VALUES ('','$titulo','$genero','$tipo','$fecha','$estado','$url','$descripcion','$sinop','$imagen1')") or die (mysql_error());

die ("Tus Noticias han sido Publicadas Para volver Pulsa <a href='/radiokampos.php'>aqui</a>");

}
else
echo "Favor llenar todos los campos.!";

}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=unicode-UTF-8" >
<title>postear noticia</title>
</head>
<body style="margin:0 auto;padding-top:10px">
<div style="width:600px; margin: auto">
<form action ='radiokampos.php' method='POST'>
<fieldset>
<legend>POSTEADOR DE NOTICIAS</legend>
<div style="background:#3399FF;padding:5px">
<spam style="margin-right:62px;">Titulo:</spam> <input type = 'text' size="50" name = 'titulo'><hr>
<spam style="margin-right:50px;">Genero:</spam> <input type = 'text' size="50" name = 'genero'><hr>
<spam style="margin-right:75px;">Tipo:  </spam> <input type = 'text' size="50" name = 'tipo'>
<p>Los capítulos y/o tomos que se actualizan</p><hr>
<p>Estado</p>
<input type="radio" name="estado" value="Galería/Activo" /> Galería/Activo
<input type="radio" name="estado" value="Galería/Completa" /> Galería/Completa
<hr>
<spam style="margin-right:86px;">Url:   </spam> <input type = 'text' size="50" name = 'leer'><hr>
<spam style="margin-right:12px;">Descripción:</spam> <input type = 'text' size="50" name = 'descripcion'>
<p>descripción</p><hr>
<spam style="Padding: 0 44px 160px 0">Sinopsis:</spam><textarea type = 'text' rows='9' cols='59' name = 'sinop'></textarea>
<p>sinopsis completa</p><hr>
<spam style="margin-right:50px;">imagen:</spam> <input type = 'text' size="50" name = 'imagen1'><br > 
<p>debe llevar esta estructura:</p>
Solo el link de la imagen "hhttp://www.mangasve.com.ve/portada2/el nombre de la imagen.jpg"<hr>
<input type = 'submit' name='post' value='Publicar Noticias'>
</div>
</fieldset>
</form>
</div>
</body>
</html>

usalo como referencia de la estructura, por favor fijese que si eliminamos el $ del if el campo tipo se puede quedar en blanco
Para checar que no están en blanco también puedes usar esto:

if ( empty($nick) OR empty($email) OR empty($password) OR empty($password2) )
{si se cumple, hay alguno vacio, haz esto}
else
{si no hay ninguno vacio haz esto otro}