Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/01/2011, 10:07
remy
 
Fecha de Ingreso: noviembre-2002
Mensajes: 147
Antigüedad: 21 años, 5 meses
Puntos: 0
Pregunta POST con caracteres especiales

Amigos:

Ayer puse un post, pero las respuestas no me ayudaron, puse todo lo que me dijeron pero nada, ya se donde radica el problema.

El problema es el siguiente. Tengo una funcion para cambier caracteres especiales, y no me funcionaba ayer, la idea es crear una carpeta cambiendo los caracteres especiales por normales.

Cuando proble poner una variable fija, el servidor lo hace perfectamente, pero cuando hago el post con esa misma palabra, ahi es donde no funciona.

Me explico mejor con ejemplo.

Si hago esto


function Normalizar($var) {

$a = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓ ÔÕÖØ ÙÚÛÜßàáâãäåæçèéêëìíîïñòóôõö÷øùúûüÿ¨&*()+}=}{[^~?$%;><,]'`?";
$b = "abcdefghijklmnopqrstuvwxyzAAAAAAACEEEEIIIINOOOOOO _UUUUBaaaaaaaceeeeiiiinooooo-ouuuuy________________________";

$var = strtr($var,$a,$b);
$var = strtolower($var);
return $var;
}

$new = "José Martí";

$new = str_replace ('//','/',Normalizar($new));

$ok=@mkdir($new, 0777);

Me crea la carpeta jose_marti... Correcto!!!!

Ahora si escribo en un formulario José Martí (caja de texto)


function Normalizar($var) {

$a = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓ ÔÕÖØ ÙÚÛÜßàáâãäåæçèéêëìíîïñòóôõö÷øùúûüÿ¨&*()+}=}{[^~?$%;><,]'`?";
$b = "abcdefghijklmnopqrstuvwxyzAAAAAAACEEEEIIIINOOOOOO _UUUUBaaaaaaaceeeeiiiinooooo-ouuuuy________________________";

$var = strtr($var,$a,$b);
$var = strtolower($var);
return $var;
}

$new = $_POST["folder"];

$new = str_replace ('//','/',Normalizar($new));

$ok=@mkdir($new, 0777);

Me crea la carpeta con unos simbolos super raros (josa©_marta*). La pagina del formulario tiene el charset correcto.
Creo que es un problema del servidor, no se que hacer. Me pueden ayudar???...

Ahhhh! una cosa importante. Cuando hago echo $new en esta segunda opcion me imprime José Martí.

Complicado verdad?????????

Me pueden ayudar por favor??
Atte

remy