Foros del Web » Programando para Internet » PHP »

Detectar el error noticia

Estas en el tema de Detectar el error noticia en el foro de PHP en Foros del Web. Hola no se cual es el error, el problema es que no me verifica si esta vacio los campos de texto, lo mas gracioso que ...
  #1 (permalink)  
Antiguo 23/09/2008, 05:54
 
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 15 años, 8 meses
Puntos: 0
Detectar el error noticia

Hola no se cual es el error, el problema es que no me verifica si esta vacio los campos de texto, lo mas gracioso que probando desde una copia de la pagina noticia, cuando esta llama a la pag. validacion_noticia , esta detecta los campos vacios y me lo direcciona con los errores para q corriga a la pagina noticia que es la original, ahora desde esta directamente lo guarda apesar de q no corregui nada, ya me canse de probar haber si ustedes me ayuda, quiero cargar una noticia, este es el codigo
<?
//Inicias la sesion
session_name('Noticia');
session_start();
$datosN=$_SESSION['formN'];
unset($_SESSION['formN']);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<link href="hojasEstilos/estilo.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.Estilo4 {color: #000063}
.Estilo5 {font-weight: bold; color: #0000FF;}
-->
</style>
</head>

<body>
<div id="form_noticia">
<form method='post' id='form_not' name='form_noticia' action='validar_noticia.php'>
<table width="600px" height="655" border="0" align="center" cellpadding="6">
<th colspan="4" align="center" class="Estilo5">Noticia</th>
<tr>
<td width="102" height="27">
<span class="Estilo4">Titulo</span>
</td>
<td colspan="3" align="left">
<label>
<input name="texTitulo" type="text" maxlength='255' value="<? echo $datosN['texTitulo']; ?> "/>
</label>
<?
echo "<span class='LetraError'>";
echo $_SESSION['error_titulo'];
echo "</span>";
?>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td colspan="3" align="left">
El titulo no puede exceder de 255 caracteres
</td>
</tr>
<tr>
<td>
<span class="Estilo4">Categoria</span>
</td>
<td colspan="3" align="left">
<label>
<select name="selectCateg" size="1" >
<?
//conexion
$sql="SELECT * FROM categorias";
$result=mysql_query($sql) or die("Error en $consulta <br>MySQL dice: ".mysql_error());
while ($row=mysql_fetch_array($result))
{
$categ=$row["categ_nom"];
$categ_id=$row["categ_id"];
if($datosN['selectCateg'] == $categ_id)
{
echo '<option value='.$categ_id.' selected >'.$categ.'</option>';
}
else
echo '<option value='.$categ_id.' >'.$categ.'</option>';
}

?>
</select>
</label>
</td>
</tr>
<tr>
<td class="Estilo4">Autor</td>
<td colspan="3" align="left">
<label>
<select name="selectAutor">
<?
//la conexion
$sql="SELECT * FROM periodistas";
$result=mysql_query($sql) or die("Error en $consulta <br>MySQL dice: ".mysql_error());
while ($row=mysql_fetch_array($result))
{
$perio=$row["perio_apel"]."&nbsp&nbsp".$row["perio_nom"];
$perio_id=$row["perio_id"];
if($datosN['selectAutor']== $perio_id)
{
echo '<option value='.$perio_id.' selected >'.$perio.'</option>';
}
else
echo '<option value='.$perio_id.' >'.$perio.'</option>';
}
?>
</select>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="100" height="23">
<param name="BGCOLOR" value="" />
<param name="movie" value="button2.swf" />
<param name="quality" value="high" />
<embed src="button2.swf" width="100" height="23" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" ></embed>
</object>
</label>
</td>
</tr>
<tr>
<td colspan='4'>
<fieldset>
<legend>Copete </legend>
El copete no debe exceder de 400 caracteres
<div align="center">
<label>
<textarea name='taCopete'cols='40' rows='3' wrap='off' maxlength='400' class="area_texto">
<? echo $datosN['taCopete'];?>
</textarea>
</label>
</div>
</fieldset>
<?
echo "<span class='LetraError'>";
echo $_SESSION['error_copete'];
echo "</span>" ;
?>

</td>
</tr>
<tr>
<td height='167' colspan='4'>
<fieldset>
<legend>Texto</legend>
<div align="center">
<label>
<textarea name='taTexto' cols='40' rows='6' class='area_texto' >
<? echo $datosN['taTexto']; ?>
</textarea>
</label>
</div>
</fieldset>
<?
echo "<span class='LetraError'>";
echo $_SESSION['error_texto'];
echo "</span>";
?>
</td>
</tr>
<tr>
<td height="37"><span class="Estilo4">Tapa</span></td>
<td width="114" align="left">
<p>
<input name="rbTapa" type="radio" value="S" />
Si
<input name="rbTapa" type="radio" value="N" checked='checked'/>
no
</p>
</td>
<td>
<span class="Estilo4">Principal</span></td>
<td align="left">
<input name="rbPrim" type="radio" value="S" />
Si
<input name="rbPrim" type="radio" value="N" checked='checked'/>
No
</td>
</tr>
<tr>
<td>Foto</td>
<td colspan="3" align="left">
<label>
<input type="file" name="filenoticia" />
</label>
</td>
</tr>
<tr>
<td colspan="4">
<label>
<input type="submit" name="SubmitN" value="Guardar" />
</label>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>



/*********************/
<?
//include_once("funcionesenphp/funciones.php");
function validar_cantCaracteres($cadena,&$error,$max_caract er,$texto)

{
if(strlen($cadena)<=$max_caracter && strlen($cadena)>0)
{
$error="";
}
else
{
$error=$texto." no debe exceder ".$max_caracter." caracteres ";
}
return $error;

}


function campo_vacio($campo,&$error,$texto)

{
if(strlen($campo)==0)
{
$error=" Introduzca ".$texto;
}
else
{
$error="";
}
return $error;

}

session_name('Noticia');
session_start();
$_SESSION['formN']=$_POST;
$_SESSION['listo']=0;

if(!empty($_SESSION['formN']['SubmitN']) || $_SESSION['formN']['SubmitN']=="Guardar")
{
$campo=$_SESSION['formN']['taCopete'];
$error="";
$texto=" El campo COPETE";

if(campo_vacio($_SESSION['formN']['taCopete'],$error,$texto)=="")
{
if(validar_cantCaracteres($_SESSION['formN']['taCopete'],$error,400,$texto)!="")
{
$_SESSION['listo']=1;
}
}
else
{
$_SESSION['listo']=1;
}

$_SESSION['error_copete']=$error;

//************************************************
$campo=$_SESSION['formN']['taTexto'];
$error="";
$texto=" El campo TEXTO ";
if(campo_vacio($campo,$error,$texto)!="")
{
$_SESSION['listo']=1;
}

$_SESSION['error_texto']=$error;
//**********************************************
$campo=$_SESSION['formN']['texTitulo'];
$error="";
$texto=" Titulo";

if(campo_vacio($campo,$error,$texto)== "")
{
if(validar_cantCaracteres($campo,$error,255,$texto )!="")
{
$_SESSION['listo']=1;
}
}
else
{
$_SESSION['listo']=1;
}

$_SESSION['error_titulo']=$error;

//************************************************


if($_SESSION['listo']==0)
{
$titulo=$_SESSION['formN']['texTitulo'];
$categoria= $_SESSION['formN']['selectCateg'];
$autor=$_SESSION['formN']['selectAutor'];
$copete=$_SESSION['formN']['taCopete'];
$texto= $_SESSION['formN']['taTexto'];
$tapa= $_SESSION['formN']['rbTapa'];
$principal= $_SESSION['formN']['rbPrim'];
$texto=addslashes(nl2br(htmlentities($texto)));
$copete=addslashes(nl2br(htmlentities($copete)));
$fecha= date("Y/m/d");
$imagen= $_SESSION['formN']['filenoticia'];
//conexion
$sql="INSERT INTO noticias VALUES('',$autor,$categoria,'$fecha','$titulo','$c opete','$texto','$tapa','$principal','$noticia')";
$result=mysql_query($sql) or die("Error en $consulta <br>MySQL dice: ".mysql_error());
if($result)
{
//$_SESSION['array_formN']['taCopete']=$_SESSION['array_formN']['taTexto']=$_SESSION['error_titulo']="";
echo "bien";
}
}
else
{
header("location:noticia.php");
}
}
?>


ayudaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  #2 (permalink)  
Antiguo 23/09/2008, 07:11
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Detectar el error noticia

Te recomiendo modificar la funcion campo_vacio() por esta otra

Código PHP:
function campo_vacio($campo,&$error,$texto)
{
  
$error="";

  if(empty(
$campo))
    
$error=" Introduzca ".$texto;

  return 
$error;


Acostumbrate a utilizar la función empty() de PHP para realizar este tipo de chequeos. Mas información en la documentación de PHP de su web oficial.

Saludos!!
  #3 (permalink)  
Antiguo 24/09/2008, 12:25
 
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 15 años, 8 meses
Puntos: 0
hola alguna otra ayuda

Hola alguna otra sugerencia continua el error, gracias por las recomendaciones
  #4 (permalink)  
Antiguo 24/09/2008, 13:20
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Detectar el error noticia

Solución: Haz de nuevo el script.

Simplifica, organiza, analiza.

Alguién dijo una vez "Hazlo simple"

Saludos!
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 05:12.