Ver Mensaje Individual
  #15 (permalink)  
Antiguo 06/05/2012, 13:39
Andress_mdq92
 
Fecha de Ingreso: abril-2012
Mensajes: 36
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Error en strlen

Es que el ejercicio lo dio el profesor jaja, eso esta copiado textualmente del pizarron.

Cita:
error es en la logica no en el codigo:

count($error) siempre sera mayor a cero , puesto que tendra el valor si o el valor no
Pero como puse al principio del todo

Código PHP:
Ver original
  1. <?php
  2. $error=array();
  3. //validacion
  4.  
  5. if(strlen($_POST['titulo'])==0){ //strlen te dice cuanto mide una variable
  6.     $error['titulo']="si";
  7. }else{
  8.     $titulo=$_POST['titulo'];
  9. }
  10.  
  11. if(strlen($_POST['nota'])==0){
  12.     $error['nota']="si";
  13. }else{
  14.     $nota=$_POST['nota'];
  15. }
  16. //cierre validacion
  17.  
  18. if(count($error)>0){
  19.     if($error['titulo']=="si"){
  20.         echo "<h3> Error en el titulo </h3>";
  21.     }
  22.         if($error['nota']=="si"){
  23.             echo "<h3> Error en la nota </h3>";
  24.         }
  25.         echo "<h3> ERROR: ¡NO SE GUARDO! </h3>";
  26.     }else{
  27.        
  28.     if(file_exists("mensajes.txt")){
  29.         $db=unserialize(file_get_contents("mensajes.txt"));
  30.     }else{
  31.         $db=array();
  32.     }}
  33.     $fila=array();
  34.     $fila['titulo']=$titulo;
  35.     $fila['nota']=$nota;
  36.     $db[]=$fila;
  37.     file_put_contents("mensajes.txt", serialize($db));
  38.     echo "<h1>GUARDADO</h1>";
  39.    
  40.  
  41. ?>

Sin decirle que

$error['nota']=="no";

El array $error, tendria 0 lugares ocupados y pasaria a la llave

Código PHP:
Ver original
  1. if(file_exists("mensajes.txt")){
  2.         $db=unserialize(file_get_contents("mensajes.txt"));
  3.     }else{
  4.         $db=array();

Y asi me tirar el error:

Cita:
Notice: Undefined index: titulo in C:\xampp\htdocs\Clase11\strlen.php on line 27
Error en la nota

ERROR: ¡NO SE GUARDO!


Notice: Undefined variable: nota in C:\xampp\htdocs\Clase11\strlen.php on line 43
GUARDADO
Donde linea 27 y 43 son estas:

Cita:
if($error['nota']=="si"){
$fila['nota']=$nota;
ESTO EN CASO DE NO COMPLETAR NOTA.

Ahora no comprendo algo, yo recuerdo que esto en clases me funciono bien, a mi y a todos mis compañeros, pero aca en casa me tira error.





Leyendo un poco veo que:

Cita:
count() devolverá 0 si la variable que se intenta contar no está definida pero también devolverá 0 si la variable contiene un array vacío.
Lo que contradice el error que tira. No entiendo nada :D

Última edición por Andress_mdq92; 06/05/2012 a las 14:21