Foros del Web » Programando para Internet » PHP »

Problemas al ingresar datos tipo php

Estas en el tema de Problemas al ingresar datos tipo php en el foro de PHP en Foros del Web. Bueno voy directamente al problema, estoy armando una base de datos para tener organizado mi codigo, pero estoy teniendo inconvenientes al insertar ciertos tipos de ...
  #1 (permalink)  
Antiguo 09/08/2009, 01:57
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Pregunta Problemas al ingresar datos tipo php

Bueno voy directamente al problema, estoy armando una base de datos para tener organizado mi codigo, pero estoy teniendo inconvenientes al insertar ciertos tipos de codigo, como los programados en php.
Lo q quiero es q salga tipo www.php.net, como veran en esa pagina hay muchos comentarios donde se expone codigo fuente util por parte de los usuarios, y justamente ahi es el problema, cuando quiero insertar codigo tomado de un formulario personalizado, me da error, y este error se produce porque es como q al insertar el codigo tomado del formulario, en ves de solo insertarlo en la base de datos, intenta interpretarlo, y por eso da error. Si escribo datos simples 'asdfasfda', no sale el error, pero si pongo algo como esto-un codigo cualquiera en php- si da error:
Código PHP:
function write($filename) {
     
$fh fopen($this->sourceps,'r');
     
$fw fopen($filename,'w');

     while (!
feof($fh)) {
       
$buffer fgets($fh);
       
fwrite($fw,$buffer);
       if (!
$setupfound && ereg("^%%BeginSetup",$buffer)) {
         
$setupfound++;
         if (
array_key_exists("$filename",$this->output)) {
           foreach (
$this->output[$filename] as $function => $value) {
             
fwrite($fw,$value);
           }
         }
         
stream_copy_to_stream($fh,$fw);
       }
     }
     
fclose($fw);
     
fclose($fh);
   } 
Este codigo es parte del formulario:
Código PHP:
echo '             <td>Ingrese la descripcion:</td>';
    echo 
'             <td><input type="text" name="desc_res" size=51></td>';
    echo 
'       </tr>';    
    echo 
'         <tr>';
    echo 
'             <td>Ingrese el codigo:</td>';
    echo 
'             <td><textarea cols=40 rows=17 name="codigo"></textarea></td>';
    echo 
'       </tr>'
Este codigo es el insert, y aca esta el problema, seguramente hace falta agregar alguna funcion al codigo para q no de error:
Código PHP:
$sql "insert into comentarios (id_listado, titulo, fecha, comentario, codigo) values ('$_POST[cod_funcion]', ";
            
$sql .= " '$_POST[titulo]', '$fecha', '$_POST[desc_res]', {'$_POST[codigo]'});"
            
$res mysql_query($sql); 
Bueno seguro el problema es q falta poner alguna funcion, q debo agregar en el insert, o en el formulario donde tomo el codigo. saludos espero su ayuda.
  #2 (permalink)  
Antiguo 09/08/2009, 03:45
 
Fecha de Ingreso: enero-2008
Ubicación: /España/Galicia
Mensajes: 928
Antigüedad: 16 años, 4 meses
Puntos: 21
Respuesta: Problemas al ingresar datos tipo php

bueno pues primero deberias limpiar el codigo si insertas el titulo y todo eso tu web sera muy muy hackeable.

por ejemplo si es solo para codigo php y no admites tags html

la funcion strip_tags te vendria bien

o si quieres que salga

http://us2.php.net/manual/en/function.htmlentities.php

la codificas y al sacarlas

http://us2.php.net/manual/en/functio...ity-decode.php

las descodificas

y pon echo mysql_error();

y sabras el error aunque yo ya lo se, es porque no depuras el codigo ^^ saludos espero haberte orientado un poco
  #3 (permalink)  
Antiguo 09/08/2009, 11:33
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
De acuerdo Respuesta: Problemas al ingresar datos tipo php

Ahora lo pruebo, gracias =. La pagina no es para estar online, es solo un prototipo para tener mi codigo organizado solamente.

Bueno lo probe esta era la correcta sintaxis por si alguno le sirve:
Para insertar el codigo en el insert de mysql, debe quedar asi:
$codigo = htmlentities($_POST[codigo], ENT_QUOTES); // si se le quita ENT_QUOTES no funciona

Para leer el codigo insertado en formato correcto:
nl2br(highlight_string(html_entity_decode($myrow_c om[codigo], ENT_QUOTES)));

Yo antes habia probado el htmlentities, pero no funcionaba porque no le ponia ENT_QUOTES:P.

Última edición por Fernarey1810; 09/08/2009 a las 12:19
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 01:02.