Foros del Web » Programando para Internet » PHP »

Dejar campos en blanco

Estas en el tema de Dejar campos en blanco en el foro de PHP en Foros del Web. Hola tengo este codigo, que inserta registros a la base de datos, pero el problema que es que si ponen la imagen y lo demas ...
  #1 (permalink)  
Antiguo 19/12/2010, 13:29
 
Fecha de Ingreso: mayo-2010
Mensajes: 185
Antigüedad: 9 años, 8 meses
Puntos: 2
Dejar campos en blanco

Hola tengo este codigo, que inserta registros a la base de datos, pero el problema que es que si ponen la imagen y lo demas lo dejan en blanco se añade, quiero que si hacen eso de dejar en blanco los demas campos, les de un mensaje de rellena el campo titulo, o canciones: este es el codigo:

Código PHP:
<?php 

//coloca la coneccion correcta a mysql aqui 
$conexion mysql_connect("sql201.byethost15.com""user""pass");  
//selecciona la base de datos en la que quieres trabajar 
//y si esa es la unica base de datos que tienes, no vuelvas a abrir coneccion con mysql 
//ni a seleccionar otra vez la db 
mysql_select_db("b15_5229524_estacion"$conexion);  


$queEmp "SELECT * FROM Discos ORDER BY id DESC";   
$resEmp mysql_query($queEmp$conexion) or die(mysql_error());  
$totEmp mysql_num_rows($resEmp);  
 if (
$totEmp0) {  
    while (
$rowEmp mysql_fetch_assoc($resEmp)) {  
     
    
//while vacio... 
   
    
}  
}  


 
//si esta coneccion es la misma que la de arriba, no hace falta incluirla 
 //y menos incluirla 3 o 4 veces  
//include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db  
//include('config');  



$state false;  

if (
$_POST['action'] == "add" && $_FILES['archivo']['name'] != "") {   

//La subida de archivo dentro del condicional 
$ruta "./imagenes/" .time(). $_FILES['archivo']['name'];  
copy($_FILES['archivo']['tmp_name'], $ruta);  
echo 
"La imagen subio correctamente"
     
     
    
//VERIFICA A QUI: 
     
     
    //aqui conectas, denuevo pero al parecer a otra base de datos 
    
$conexion mysql_connect("sql201.byethost15.com""b15_5229524""09392181");  
    
//pero a una tabla del mismo nombre 
    
mysql_select_db("b15_5229524_estacion"$conexion);  
    
//A $postear PUEDES DARLE UN VALOR MANUALMENTE PARA PROBAR Y QUE NO FALLE LA CONSULTA 
    
$postear $_SESSION[usuario];  
      
  
    
//session_start() debe estar precedido de la @ a esta altura del script 
    
@session_start();  

      
    
$que "INSERT INTO Discos (titulo, descripcion, imagen, descarga, enviado) ";  
    
$que.= "VALUES ('".$_POST['titulo']."', '".$_POST['descripcion']."', '".$ruta."', '".$_POST['descarga']."', '".$_SESSION['idusuario']."')";  
    
$res mysql_query($que$conexion) or die(mysql_error());  
    
$state true;  
     
     


  



}  


 
//SI INCLUDE() ES LA MISMA CONECCION A MYSQL QUE YA HICISTE NO ES NECESARIO 
//include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db y la sesión  

/* 
if($_SESSION[level] == 1 or $_SESSION[level] == 3){  
echo '';  
}else{  
Header("Location: index.php");  

*/  

?>  
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db y la sesión

if($_SESSION[level] == or $_SESSION[level] == or $_SESSION[level] ==4)
{
echo 
'';

}else{
Header("Location: index.php");
}
?>
<form name="formulario" form id="insertar" enctype="multipart/form-data" method="POST" action="">  
  <p align="left" class="Estilo1">Añadir discos</p>
  <p align="left">&nbsp;</p>
  <p align="left">Titulo (Autor - Nombre del disco)</p>
  <p align="left"> 
    <input name="titulo" type="text" id="nombre" size="50" />
  </p>
  <p align="left"><br />  
    Canciones</p>
  <p align="left">
    <textarea name="descripcion" id="textarea" cols="45" rows="5"></textarea>
  </p>
  <p align="left"><br />  
    Imagen(Caratula Frontal)</p>
  <p align="left">
    <input type="file" name="archivo" id="archivo" />
  </p>
  <p align="left"><br />  
    Link de descarga(Empezando por http://)(Los archivos deben estar subidos en Subirfacil.com si no estan ahi, tu post sera borrado)</p>
  <p align="left">
    <input type="text" name="descarga" id="textfield" />
    <br />
  </p>
  <p align="left"><br />  
      <input type="submit" name="Submit" value="Enviar disco" />
      <br />  
      <input type="hidden" name="action" value="add" />
      <br />  
            </p>
</form>  

<?php  


if ($state) {  
echo 
"<p /><em>Disco agregado</em></p>";  



?>
  #2 (permalink)  
Antiguo 19/12/2010, 13:52
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 9 años, 9 meses
Puntos: 461
Respuesta: Dejar campos en blanco

pudes hacer una validacion con javascrip en el formulario de manera que te salga error si no llenas algun campo, y en la pagina que estas mostrando asi como validaste que el campo donde seleccionaste la imagen no este vacio tambien debes de validar que los demas campos no esten vacios asi no tendras ese problema, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 19/12/2010, 13:56
 
Fecha de Ingreso: octubre-2010
Mensajes: 77
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: Dejar campos en blanco

Bueno, con ifs...
Código PHP:
<?php
if ( $_POST['aquí.el.name.tiene.tu.campo'] ) {
//ya aquí pones que se inserte...
}
?>
Y sí quieres añadir que compruebe más campos vacíos, añade otra condición con &&. No sé si me explico...
  #4 (permalink)  
Antiguo 19/12/2010, 16:55
 
Fecha de Ingreso: mayo-2010
Mensajes: 185
Antigüedad: 9 años, 8 meses
Puntos: 2
Respuesta: Dejar campos en blanco

Si funciona pero, ahora lo que yo quiero es q le diga, "Debes de llenar todos los campos" eso es lo que no funciona. No lo postea si no rellena, pero no da el erro de debes rellenar, este es el codigo:

Código PHP:
  <?php 

//coloca la coneccion correcta a mysql aqui 
$conexion mysql_connect("sql201.byethost15.com""b15_5229524""09392181");  
//selecciona la base de datos en la que quieres trabajar 
//y si esa es la unica base de datos que tienes, no vuelvas a abrir coneccion con mysql 
//ni a seleccionar otra vez la db 
mysql_select_db("b15_5229524_estacion"$conexion);  


$queEmp "SELECT * FROM Discos ORDER BY id DESC";   
$resEmp mysql_query($queEmp$conexion) or die(mysql_error());  
$totEmp mysql_num_rows($resEmp);  
 if (
$totEmp0) {  
    while (
$rowEmp mysql_fetch_assoc($resEmp)) {  
     
    
//while vacio... 
   
    
}  
}  


 
//si esta coneccion es la misma que la de arriba, no hace falta incluirla 
 //y menos incluirla 3 o 4 veces  
//include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db  
//include('config');  


if ( $_POST['titulo'] ) {
$state false;  

if (
$_POST['action'] == "add" && $_FILES['archivo']['name'] != "") {   

//La subida de archivo dentro del condicional 
$ruta "./imagenes/" .time(). $_FILES['archivo']['name'];  
copy($_FILES['archivo']['tmp_name'], $ruta);  
echo 
"La imagen subio correctamente"
     
     
    
//VERIFICA A QUI: 
     
     
    //aqui conectas, denuevo pero al parecer a otra base de datos 
    
$conexion mysql_connect("sql201.byethost15.com""user""pass");  
    
//pero a una tabla del mismo nombre 
    
mysql_select_db("b15_5229524_estacion"$conexion);  
    
//A $postear PUEDES DARLE UN VALOR MANUALMENTE PARA PROBAR Y QUE NO FALLE LA CONSULTA 
    
$postear $_SESSION[usuario];  
      
  
    
//session_start() debe estar precedido de la @ a esta altura del script 
    
@session_start();  

      
    
$que "INSERT INTO Discos (titulo, descripcion, imagen, descarga, enviado) ";  
    
$que.= "VALUES ('".$_POST['titulo']."', '".$_POST['descripcion']."', '".$ruta."', '".$_POST['descarga']."', '".$_SESSION['idusuario']."')";  
    
$res mysql_query($que$conexion) or die(mysql_error());  
    
$state true;  
     
     


  
}else{
echo 
"Debes de llenar todos los campos";
}


}  


 
//SI INCLUDE() ES LA MISMA CONECCION A MYSQL QUE YA HICISTE NO ES NECESARIO 
//include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db y la sesión  

/* 
if($_SESSION[level] == 1 or $_SESSION[level] == 3){  
echo '';  
}else{  
Header("Location: index.php");  

*/  

?>  
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db y la sesión

if($_SESSION[level] == or $_SESSION[level] == or $_SESSION[level] ==4)
{
echo 
'';

}else{
Header("Location: index.php");
}
?>
<form name="formulario" form id="insertar" enctype="multipart/form-data" method="POST" action="">  
  <p align="left" class="Estilo1">Añadir discos</p>
  <p align="left">&nbsp;</p>
  <p align="left">Titulo (Autor - Nombre del disco)</p>
  <p align="left"> 
    <input name="titulo" type="text" id="nombre" size="50" />
  </p>
  <p align="left"><br />  
    Canciones</p>
  <p align="left">
    <textarea name="descripcion" id="textarea" cols="45" rows="5"></textarea>
  </p>
  <p align="left"><br />  
    Imagen(Caratula Frontal)</p>
  <p align="left">
    <input type="file" name="archivo" id="archivo" />
  </p>
  <p align="left"><br />  
    Link de descarga(Empezando por http://)(Los archivos deben estar subidos en Subirfacil.com si no estan ahi, tu post sera borrado)</p>
  <p align="left">
    <input type="text" name="descarga" id="textfield" />
    <br />
  </p>
  <p align="left"><br />  
      <input type="submit" name="Submit" value="Enviar disco" />
      <br />  
      <input type="hidden" name="action" value="add" />
      <br />  
            </p>
</form>  

<?php  


if ($state) {  
echo 
"<p /><em>Disco agregado</em></p>";  



?>

Etiquetas: blanco, campos, dejar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:27.