Foros del Web » Programando para Internet » PHP »

Problemas al 'Escapar'

Estas en el tema de Problemas al 'Escapar' en el foro de PHP en Foros del Web. Buenas a tod@s, Quisiera que me echaran una mano con el tema de escapar (/). No consigo hacer que me funcione. Explico: Tengo "montado" un ...
  #1 (permalink)  
Antiguo 14/11/2008, 11:30
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Problemas al 'Escapar'

Buenas a tod@s,

Quisiera que me echaran una mano con el tema de escapar (/). No consigo hacer que me funcione.

Explico:

Tengo "montado" un sistema de registros de usuari@s. Lo que estoy haciendo, es que al registrarse un@ usuari@, se cree una carpeta y un archivo con su nick.
Para eso, útilizo ésto;

Código PHP:
$oldumask = umask(0);
mkdir ("$nickmiem", 0777);  
umask($oldumask);
$f1=fopen("$nickmiem/$nickmiem.php", "w");      
fwrite( $f1, "<?php $Hola "SALUDOS\";
?>" 
);
Bueno, como ven lo que hago es que al crearse ese archivo, dentro del mismo, se cree un pequeño código...
Hasta ahí bien.

Lo que estoy haciendo es añadirle más código a ese archivo.
Y todo me va bien, menos este trozo:

Código PHP:
$consulta 'SELECT * FROM usuarios where nickmiem="' $HTTP_COOKIE_VARS["usNick"] . '"'
El problema que tengo es que lo tengo que 'escapar' para que al crearse el archivo, se muestre el codigo, porque si no lo 'escapo' no me sale.
Entonces...lo estoy 'escapando' de varias maneras.

Por ejemplo:

Código PHP:
$consulta SELECT FROM usuarios where nickmiem="\' . $HTTP_COOKIE_VARS[\"usNick\"] . \'\"\'; 
Y lo único que consigo es que se muestre un error en pantalla como éste:
Cita:
Parse error: parse error, unexpected T_CHARACTER, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\www\web\registrar.php on line 101
Bueno, como ven el problema ésta en los 'escapes', que no lo hago correctamente.

¿Alguien me puede decir debe der ser?

Lo estoy haciendo de varias maneras pero... siguen apareciendo errores relacionados con lo mismo.

Gracias de antemano =)
  #2 (permalink)  
Antiguo 14/11/2008, 11:36
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas al 'Escapar'

Una forma de generar esa cadena es

Código PHP:
$consulta 'SELECT * FROM usuarios where nickmiem="' $_COOKIE['usNick'] . '"'
No es necesario complicarse escapando tantas comillas


Saludos.
  #3 (permalink)  
Antiguo 14/11/2008, 11:43
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Problemas al 'Escapar'

Para volcar esos datos yo usaría un template con las funciones de buffer que te da php, de esa manera no tendrias que tener todo ese quilombo de parseo.

Por otro lado, no sé si tu código es solo un ejemplo (el que crea los dirs) o si es el real, de serlo tiene algunos problemas de lógica y seguridad. Por ejemplo estás validando que el nickname no exista o que este en el dir de lo permitido?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #4 (permalink)  
Antiguo 14/11/2008, 12:08
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Problemas al 'Escapar'

Buenas de nuevo,

alvlin el ejemplo que me has puesto, no me funciona, me sigue pasando lo mismo.
Es que lo necesito 'esacapar' porque aparte de aparecer un error en pantalla, cuando creo el archivo con el nick de usuario, el codigo no se muestra correctamente.

Para poner un ejemplo, si yo pongo este codigo
Código PHP:
<?php
$fh 
fopen"creacion.php""w" );
fwrite$fh"<?php $variable = 'valor_de_la_variable';?>" );
fclose$fh );
?>
Me crea una pagina llamada creacion.php con variable y el valor de la varible, lo que pasa que luego miro el codigo de la pagina creacion.php y solo me aparece 'valor_de_la_variable'. La variable no me aparece por que no la he 'escapado'.

Por eso quiero 'escapar' el trozo:

Código PHP:
$consulta 'SELECT * FROM usuarios where nickmiem="' $_COOKIE['usNick'] . '"'
Por que sino, a la hora de crear el archivo con el nick del user, no me aparece correctamente.

nicolaspar
El código se puede decir que es un ejemplo, ya que ahora me encuentro trasteandolo, añadieno, quitando cosas etc...por eso lo del nick por ejemplo, aun no lo estoy validando.

Gracias de nuevo =)
  #5 (permalink)  
Antiguo 14/11/2008, 12:12
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Problemas al 'Escapar'

Por eso te digo que es mejor usar un simple template PHP para eso, es lo más rápido, limpio y efectivo, todo lo que tendrías que hacer es un require del mismo...leíste un poco sobre esas funciones que te pasé?

Tendrías que pegarlo así:
Código PHP:
<?php 
$fh 
fopen"creacion.php""w" ); 
fwrite$fh'<?php $variable = \'valor_de_la_variable\';?>' ); 
fclose$fh ); 
?>
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #6 (permalink)  
Antiguo 14/11/2008, 12:44
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Problemas al 'Escapar'

Saludos de nuevo,

Entonces como lo escapo así:

Código PHP:
<?php
$fh 
fopen"creacion.php""w" );
fwrite$fh'<?php $consulta = \'SELECT * FROM usuarios where nickmiem="' $_COOKIE['usNick'] . '"\';?>' );
fclose$fh );
?>
Es que de esa manera luego en el archivo creacion.php, me aparece asi;

Código PHP:
<?php $consulta 'SELECT * FROM usuarios where nickmiem=""';?>
A eso es a lo que me refiero, que lo estoy escapando mal.

nicolaspar le he echado una ojeada a lo que me pasaste pero no logro comprender, quizas porque mi nivel sea...

Mientras tanto seguire intentando ;)

Gracias de nuevo,
  #7 (permalink)  
Antiguo 14/11/2008, 12:54
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Problemas al 'Escapar'

Código php:
Ver original
  1. <?
  2. $fh = fopen( "creacion.php", "w" );
  3. fwrite( $fh, '<?php $consulta = "SELECT * FROM usuarios where nickmiem=\'{$_COOKIE[\'usNick\']}\'";?>' );
  4. fclose( $fh );
  5. ?>
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #8 (permalink)  
Antiguo 14/11/2008, 12:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas al 'Escapar'

hola, tal ves es necesario (y útil) leer esto:

http://www.forosdelweb.com/f18/como-...s-bien-588701/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 15/11/2008, 15:00
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Problemas al 'Escapar'

Gracias nicolaspar, me ha servido.
Pateketrueke, en ello estoy!

Gracias a todos =)
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:05.