ayuda en php

entonces crees que funcionaria si colocaria un archivo antes para que quede direccionado hacia el codigo para guardar la informacion? o seria mejor guardar al mismo tiempo la informacion en otra tabla y que realice una comparacion con esa tabla?
aqui actualizandote, no funciono la idea de crear un archivo adicional XD
Jajajajaj, claro que no funciona :). Ya te lo dije, la solución esta en buscar los posibles echo o print que aparezcan en el archivo que nombre antes. En el fondo, no puedes mostrar nada en la pantalla cuando haces un "redireccionamiento". Si necesitas mostrar algo, tienes que pasarlo como un valor en la URL de header():

header( 'Location: pagina.php?var1=valor1&var2=valor2&varN=valorN' );

Y en pagina.php:

if( isset( $_GET['var1'] ) )
  echo $_GET['var1'];

if( isset( $_GET['varN'] ) )
  echo $_GET['varN'];
en el archivo de evaluacion2.1.php no hay ningun echo o print en el codigo, es meramente el formulario, cosa que me extraña; viendo los codigos que me colocastel; deberia solo tener los siguientes archivos: config3.php (le cambie el nombre porque me confundia XD y Actualice los archivos) , la evaluacion: evaluacion2.1.php y enviar_datos.php.

Ahora; los codigos adicionales que me colocaste, especificamente donde deberia colocarlos? en enviar_datos.php?
es meramente el formulario

Eso es lo mismo que un print o un echo, porque también envía las cabeceras que necesita utilizar header().

Crea el formulario aparte y envía los datos del formulario a un archivo que procese los datos, y en ese archivo incluye el header( 'location' );
el codigo originalmente es asi:

insertar_datos.php:

<?php
$dbhost="server";
$dbusuario="usuario";
$dbpassword="XXXXX";
$db="evaluacion";
$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword);

if( $conexion === false ) {
echo "mensaje=No se pudo conectar a la base de datos";
exit;
}

if( mysql_select_db($db, $conexion ) === false ) {
echo "mensaje=No se pudo seleccionar la base de datos";
exit;
}

$tienda = $_POST["tienda"];
$almacen = $_POST["almacen"];
$cumplimiento = $_POST["cumplimiento"];
$exactitud = $_POST["exactitud"];
$atencion = $_POST["atencion"];
$pedidos = $_POST["pedidos"];
$transportacion = $_POST["transportacion"];
$fecha = $_POST["fecha"];

if( strtolower( $tienda ) !== strtolower( $almacen ) ) {
if($tienda==NULL|$almacen==NULL|$cumplimiento==NULL|$exactitud==NULL|$atencion==NULL|$pedidos==NULL| $transportacion==NULL|$fecha==NULL) {
echo "mensaje=UNO O MAS CAMPOS ESTAN VACÍOS";
} else {
$query = "INSERT INTO evaluacion (tienda,almacen,cumplimiento,exactitud,atencion,pedidos,transportacion,fecha) VALUES ('$tienda','$almacen','$cumplimiento','$exactitud' ,'$atencion','$pedidos','$transportacion','$fecha' )";
if( mysql_query( $query, $conexion ) === true ) {
$aff = mysql_affected_rows( $conexion );

if( $aff > 0 )
header( 'Location: finalizar.php' );
else
echo "mensaje=No se pudo registrar su evaluacion";
} else {
echo "mensaje=Ocurrió un error al ejecutar la consulta: " . mysql_error( $conexion );
}
}
} else {
echo "Lo sentimos ya tienes evaluado este almacen, por favor de al boton regresar";
}


mysql_close($conexion);
?>


con este codigo, el archivo evaluacion2.1.php funciona correctamente.
Jajajaja, pero hay varios echo. Ponte en la situación de que alguno de ellos se ejecute... entonces header() no funcionará y tampoco podrás ver los errores.

En el fondo, en lugar de echo, tienes que asignar a una variable todos los errores y redirigir dependiendo de si la variable con lo errores esta vacía o no:

if( ! empty( $error ) )
  header( 'Location: formulario.php?error=' . $error );
else
  header( 'location: finalizar.php' );
<?php
$dbhost="server";
$dbusuario="usuario";
$dbpassword="XXXXX";
$db="evaluacion";
$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword);

if( ! empty( $error ) )
header( 'Location: formulario.php?error=' . $error );
else
header( 'location: finalizar.php' );


if( $conexion === false ) {
$error;
exit;
}

if( mysql_select_db($db, $conexion ) === false ) {
$error;
exit;
}

$tienda = $_POST["tienda"];
$almacen = $_POST["almacen"];
$cumplimiento = $_POST["cumplimiento"];
$exactitud = $_POST["exactitud"];
$atencion = $_POST["atencion"];
$pedidos = $_POST["pedidos"];
$transportacion = $_POST["transportacion"];
$fecha = $_POST["fecha"];

if( strtolower( $tienda ) !== strtolower( $almacen ) ) {
if($tienda==NULL|$almacen==NULL|$cumplimiento==NUL L|$exactitud==NULL|$atencion==NULL|$pedidos==NULL| $transportacion==NULL|$fecha==NULL) {
$error
} else {
$query = "INSERT INTO evaluacion (tienda,almacen,cumplimiento,exactitud,atencion,pe didos,transportacion,fecha) VALUES ('$tienda','$almacen','$cumplimiento','$exactitud' ,'$atencion','$pedidos','$transportacion','$fecha' )";
if( mysql_query( $query, $conexion ) === true ) {
$aff = mysql_affected_rows( $conexion );

if( $aff > 0 )
header( 'Location: finalizar.php' );
else
echo "mensaje=No se pudo registrar su evaluacion";
} else {
echo "mensaje=Ocurrió un error al ejecutar la consulta: " . mysql_error( $conexion );
}
}
} else {
$error;
}


mysql_close($conexion);
?>

algo asi no?
Hola mi estimado skaparate!!!!

Te dejo este mensaje para informarte que he logrado terminar mi evaluacion :D

He logrado ademas de instalarle un sistema de usuario-contraseña para accesar, un verificador para evitar guardar evaluaciones repetidas, un ingreso de fecha por medio de listas asi como ventanitas de redireccionamiento!

Muchas gracias por todo tu apoyo y por aguantar mis "tonteras e intentos locos" en php. De antemano muchas gracias :D

si llegase a tener otra duda pues por aqui la publicaria!

Saludos!!! y Muchas Gracias!

Eternamente agradecido

Soum :D
Hola skaparate!!! que crees jejeje salio un detalle raro XD

despues de hacer pruebas se percataron de un detalle curioso en la evaluacion; al momento de enviar la evaluacion si un campo esta vacio de los selects, la informacion se guarda en la evaluacion! detalle que no habia probado XD jajajaja si me ayudas???

insertar_datos.php

?php
$dbhost="baseprincipal";
$dbusuario="usuario";
$dbpassword="XXXXX";
$db="evaluacion";
$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword);

if( $conexion === false ) {
die ("mensaje=No se pudo conectar a la base de datos");
exit;
}

if( mysql_select_db($db, $conexion ) === false ) {
die ("mensaje=No se pudo seleccionar la base de datos");
exit;
}

$tienda = $_POST["tienda"];
$almacen = $_POST["almacen"];
$cumplimiento = $_POST["cumplimiento"];
$exactitud = $_POST["exactitud"];
$atencion = $_POST["atencion"];
$pedidos = $_POST["pedidos"];
$transportacion = $_POST["transportacion"];
$dia = $_POST["dia"];
$mes = $_POST["mes"];
$anio = $_POST["anio"];

$fecha = "$anio/$mes/$dia";

$consulta1="Select almacen from evaluacion where tienda=\"$tienda\"and almacen=\"$almacen\" ";
$r1=mysql_query($consulta1);

if (mysql_num_rows($r1)<=0){


//$fecha = date( 'Y/M/D' );
// El formato sería: YYYY/MM/DD, año de 4 dígitos y mes y día de 2 (con 0 antepuesto de ser necesario)
if($tienda==NULL|$almacen==NULL|$cumplimiento==NULL|$exactitud==NULL|$atencion==NULL|$pedidos==NULL| $transportacion==NULL|$fecha==NULL) {
echo "mensaje=UNO O MAS CAMPOS ESTAN VACÍOS";
} else {
$query = "INSERT INTO evaluacion (tienda,almacen,cumplimiento,exactitud,atencion,pedidos,transportacion,fecha) VALUES ('$tienda','$almacen','$cumplimiento','$exactitud','$atencion','$pedidos','$transportacion','$fecha' )";
if( mysql_query( $query, $conexion ) === true ) {
$aff = mysql_affected_rows( $conexion );

if( $aff > 0 )
header( 'Location: finalizar.php' );
else
echo "mensaje=No se pudo registrar su evaluacion";
} else {
echo "mensaje=Ocurrió un error al ejecutar la consulta: " . mysql_error( $conexion );
}
}

// Descomenta la siguiente línea para mostrar cualquier posible error:
//echo "mensaje=" . mysql_error( $conexion );
mysql_close($conexion);

}
else {
header( 'Location: error.php' );
}
?>
XD... y dónde en todo el código están los selects? Son de selección múltiple? Si no lo son, entonces deberías asegurarte de que siempre exista el índice en el arreglo $_POST:

<select name="miselect">
  <option value="..."></option>
  <option value="..."></option>
  <option value="..."></option>
</select>

<?php
  if( ! isset( $_POST['miselect'] ) ) {
    echo 'El campo "miselect" es obligatorio';
    exit;
  }
?>

Eso debería servir.
Hola skaparate! gracias por responder pero que crees? estuve revisando los codigos y me di cuenta que en los selects del archivo evaluacion2.1.php tenian lo siguiente:

<option value= " "> </option>

esta opcion aparecia en todos los selects de la evaluacion, asi que eliminando los espacios en esas opciones volvi a probar y que funciona la condenada verificacion de campos vacios jajajajaja

bueno bueno! un detalle a todos siempre se les escapa no? jejeje Gracias por el codigo que pusiste en el post anterior, lo probare en la zona de pruebas y veremos como funciona!

Saludos!