Foros del Web » Programando para Internet » PHP »

PHP OO Quien me ayuda con este problema?

Estas en el tema de Quien me ayuda con este problema? en el foro de PHP en Foros del Web. Estoy en busca de alguien que me ayude a detectar el error en estos codigo, porque de verdad me he matado buscandolo y no me ...
  #1 (permalink)  
Antiguo 24/02/2011, 14:42
 
Fecha de Ingreso: julio-2010
Mensajes: 17
Antigüedad: 13 años, 9 meses
Puntos: 0
Exclamación Quien me ayuda con este problema?

Estoy en busca de alguien que me ayude a detectar el error en estos codigo, porque de verdad me he matado buscandolo y no me vendria mal un poco de ayuda...

Tengo este formulario:

Código HTML:
Ver original
  1. <script type="text/javascript">
  2.     function max(campo, maximo) {
  3.       if(campo.value.length > maximo){
  4.        campo.value= campo.value.substring(0, maximo);
  5.       }
  6.       document.getElementById('post_cont').innerHTML=maximo - campo.value.length;
  7.     }
  8.   </script>
  9.   <script type="text/javascript">
  10.     $(document).ready(function () {
  11.     $('textarea#post_text').autoResize();
  12.   });
  13.               <form action="post.php" id="post_perfil" method="post" name="form_post" >
  14.               <div style="text-align:center">
  15.                 <textarea id="post_text" name="rollo" style="background-color:#CCC; text-align:left; width:500px; font-family:'Buxton Sketch'; font-size:1em"  onkeydown="max(this,600)"></textarea>
  16.               </div>
  17.               <div style="text-align:center">
  18.               <table style="width:100%">
  19.                <tr>
  20.                 <td style="width:50%; text-align:right;">
  21.                 <input name="Botón" type="submit" style="font-family:'Buxton Sketch'; font-size:1.2em; left:20%; position:relative;" value="Publicame" />
  22.                 </td>
  23.                 <td style="width:50%; text-align:center ">
  24.                 <div style="width:230px; text-align:right">Te quedan:
  25.                   <label id="post_cont" style=""> 600 </label>
  26.                   Caracteres</div>
  27.                 </td>
  28.                </tr>
  29.               </table>
  30.               </div>
  31.               </form>

El formulario manda el contenido del textarea a esta pagina:

Código PHP:
Ver original
  1. <?
  2. include('../config.php');
  3. $user=$_SESSION['user'];
  4. $sql="SELECT * FROM users WHERE nick='$user'";
  5. $resultado=mysql_query($sql,$con);
  6. $datos = mysql_fetch_array($resultado);
  7. $post = $_POST['rollo'];
  8. $car = "\'";
  9. $id = date("dmYgisa");
  10. $divI='<div id="' . $id . '" style="width:500px; text-align:justify; left:50%; margin-left:-250px"><a id="' . $id . '_a" href="javascript:void(0)" onClick="borrar('. $car . $id . $car. ')"><img src="http://cdn.iconfinder.net/data/icons/function_icon_set/cancel_48.png" height="20" width="20" style=" position:absolute; margin-left:-25px"/></a>';
  11. $divM = '</div><hr color="#CCCCCC" style="margin-bottom:10px; margin-top:10px"/>';
  12. $fecha = '<div style="text-align:right"><strong>' . date("d/m/Y g:i a") .' '. '</strong></div>';
  13.  
  14. if($_POST[rollo] == ''){
  15.     echo'<script type="text/javascript">history.back();</script>';
  16. }else{
  17.     if ($datos[12]==''){
  18.         $post_portada_content = $divI . $post . $fecha . $divM;
  19.         mysql_query("UPDATE users SET post='$post_portada_content' WHERE nick='$user'");
  20.         echo'<script type="text/javascript">parent.location="perfil.php?'. $user .'"</script>';
  21.     }else{
  22.         $post_portada_content = $divI . $post . $fecha . $divM . $datos[12];
  23.         mysql_query("UPDATE users SET post='$post_portada_content' WHERE nick='$user'");
  24.         echo'<script type="text/javascript">parent.location="perfil.php?'. $user .'"</script>';
  25.     }
  26. }
  27. ?>

el codigo debe hacer una consulta a la base de datos y agrega codigo a la variable $_POST y lo guarda en la base de datos. luego redirecciona nuevamente a la pagina donde estaba el formulario.

y un div con una instruccion echo lo muestra:

Código HTML:
Ver original
  1. <div id="post_portada">
  2.               <? if ($datos[12]==''){}
  3.               else {echo $datos[12];} ?>
  4.             </div>

si analizaron el codigo cuando en la base de datos no hay texto o:

Código PHP:
Ver original
  1. if ($datos[12]==''){
  2.         $post_portada_content = $divI . $post . $fecha . $divM;
  3.         mysql_query("UPDATE users SET post='$post_portada_content' WHERE nick='$user'");

si guarda "$post_portada_content" pero en:

Código PHP:
Ver original
  1. }else{
  2.         $post_portada_content = $divI . $post . $fecha . $divM . $datos[12];
  3.         mysql_query("UPDATE users SET post='$post_portada_content' WHERE nick='$user'");

no la guarda...

otro dato interesante es que quitando la variable "$datos[12]" en:

Código PHP:
Ver original
  1. }else{
  2.         $post_portada_content = $divI . $post . $fecha . $divM . $datos[12];
  3.         mysql_query("UPDATE users SET post='$post_portada_content' WHERE nick='$user'");

si lo guarda, pero con la variable no...
yo se que es medio larguito el codigo pero bueno si alquien encuentra algo y me puede ayudar le estare muy agradecido....

Última edición por elecs; 24/02/2011 a las 15:53 Razón: nuevo dato
  #2 (permalink)  
Antiguo 24/02/2011, 16:11
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Quien me ayuda con este problema?

Probá agregando esto:

Código PHP:
Ver original
  1. $datos[12]='';

antes de esto:

Código PHP:
Ver original
  1. $datos = mysql_fetch_array($resultado);

Puede ser que tengas desactivada la detección de errores.
  #3 (permalink)  
Antiguo 24/02/2011, 17:20
 
Fecha de Ingreso: julio-2010
Mensajes: 17
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Quien me ayuda con este problema?

gracias "walterdevel" como de costumbre la solucion es siempre las mas obvia... el problema es q se me paso por alto que al momento de agregar el id al div le estoy colocando comillas simples colocando "\'" pero al momento de pasarlo como variable a la instruccion de mysql se pierde...
la solucion muy sencilla:

Código PHP:
Ver original
  1. $post_portada_content = addslashes($post_portada_content);

antes de actualizar la base de datos....

Etiquetas: sql
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 03:07.