Autor
|
Tema: HTTP CODE: 302! (Leído 5,708 veces)
|
A2Corp
Desconectado
Mensajes: 304
|
Buenas a todos... Con la novedad que ahora tengo un fuerte dolor de cabeza por un error maldito de http....... Tengo este codigo: $sql = mysql_query("SELECT * FROM logs4 WHERE user='$user'");
if(mysql_num_rows($sql) ==0){
mysql_query ("INSERT INTO logs4 (ip , user , datos ) VALUES ('$ip' , '$user' , '$datos' )") or die (mysql_error());
Donde "datos" es long text, cuando "datos" esta cortito si se registra en la base de datos, pero cuando es muy largo simplemente no se registra la variable "datos" y revisando el registro desde Cpanel dice que marca error 302. Lo extraño es porque cuando "datos" es cortito si funciona :S Alguien sabe algo? Saludos!
|
|
|
En línea
|
Hackeo, luego existo...
|
|
|
Red Mx
Rojito
Colaborador
Desconectado
Mensajes: 3.649
Viva México Cabrones...
|
Esto va en base de datos.
Te refieres que tira error en la variable datos o en el campo datos.
De que tamaño es el campo en la tabla de MySQL ??? en KB
Los limites (corriganme si me equivoco)
TINYTEXT 256 bytes TEXT 65,535 bytes ~64kb MEDIUMTEXT 16,777,215 bytes ~16MB BIGTEXT 4,294,967,295 bytes ~4GB
Ahora bien tu HOST puede soportar el procesamiento de estos datos , la memoria el CPU. por que igual es mucha memoria entonces simplemente te deja botada la conexion y pues eso es lo mas factible.
|
|
|
En línea
|
Desarrollar Malware Es Causa De Cancer...
|
|
|
A2Corp
Desconectado
Mensajes: 304
|
Gracias por la respuesta bro, mira que cuando la variable datos es grande grande solo guarda el "user" y la "ip" pero el campo datos queda vacio. Lo que no entendi de: TINYTEXT 256 bytes TEXT 65,535 bytes ~64kb MEDIUMTEXT 16,777,215 bytes ~16MB BIGTEXT 4,294,967,295 bytes ~4GB yo solo tengo seleccionado "longtext" a eso te refieres?
|
|
|
En línea
|
Hackeo, luego existo...
|
|
|
^Tifa^
Desconectado
Mensajes: 2.804
|
TINYTEXT 256 bytes TEXT 65,535 bytes ~64kb MEDIUMTEXT 16,777,215 bytes ~16MB BIGTEXT 4,294,967,295 bytes ~4GB Esta es la longitud maxima de valores que soporta cada uno de los tipos de datos referentes a TEXT. Independientemente del valor maximo que soporte en este caso LONGTEXT que longitud le diste al campo cuando lo creaste? porque si por ejemplo declaraste longtext asi: Datos LONGTEXT(20) Y insertas un dato mayor de 20 caracteres por ejemplo un dato de 50 caracteres, el motor lo que hara es cortar la informacion hasta que cuente 20 caracteres los otros 30 nada se pierden.
|
|
|
En línea
|
|
|
|
A2Corp
Desconectado
Mensajes: 304
|
mmmmmmmm.... a longtext no se le puede asignar cantidad de caracteres.
|
|
|
En línea
|
Hackeo, luego existo...
|
|
|
^Tifa^
Desconectado
Mensajes: 2.804
|
ciertamente, no se en que estaba pensando cuando respondi eso. revisate la variable max_allowed_packet en my.cnf aunque si es un servidor compartido dudo mucho que te permitan ver o hacer algo a ese archivo. Porque no consideras VARCHAR que soporta 65,000 y algo mas de caracteres (No estoy segura pero ronda por 65,400) y declaras VARCHAR asi: VARCHAR(65,000) Y aca si puedes asignar la cantidad de caracteres a ingresar, ya que VARCHAR no esta regido bajo la variable anterior, aunque la cantidad de paquete en bytes que transfieras por red si esta manipulado por la variable anterior por ende puede que no sirva de mucho la idea de VARCHAR tendras que considerar reducir el tamano de tu data enviada a una cantidad de bytes menor a la cantidad maxima soportada por esta variable, o aumentar dicha variable... pero esta chungo si es un servidor compartido. Fijate cual es el maximo de esta variable, intenta conectarte a Mysql mediante una terminal y haz: show variables like 'max_allowed_pa%' Te mostrara el maximo de paquetes por transferencia que maneja el motor en bytes, traduce esos bytes a MB cuando lo tengas ya sabras que tu data enviada al motor debe ser menor a eso especificado ahi.
|
|
« Última modificación: 8 Enero 2010, 01:04 am por ^TiFa^ »
|
En línea
|
|
|
|
A2Corp
Desconectado
Mensajes: 304
|
ya me di cuenta que es.... Los datos los mando por GET y tiene limite al ser cadena larga, pero el problema es que no lo puedo mandar por post no se que hacer jejeje. Lo extraño es que los register_globals estan en ON. Antes tenia un servidor que tenia un limite mucho mas largo para el GET, Necesito encontrar otro servidor que tenga limite largo con GET.
|
|
« Última modificación: 8 Enero 2010, 08:14 am por A2Corp »
|
En línea
|
Hackeo, luego existo...
|
|
|
^Tifa^
Desconectado
Mensajes: 2.804
|
Pusha que pena A2Corp pero que bien que pudiste deducir finalmente cual era el inconveniente. Aunque en otros casos suele influir la variable que menciono pero solo para el motor DB. En tu caso, si ya dedujiste que el problema es el limite de GET y tu le envias una data mayor al limite... y no dispones por el momento de otro servidor con mas capacidad de GET, haz considerado no se, dividir la data que transfieres por GET antes de enviarla al servidor? A lo mejor si divides toda la data hasta el maximo soportado por GET se lo vas enviando por trozos haber si te lo accepta asi, en vez de enviarle todo junto y que te lo corte... Es una sugerencia, no digo que vaya a funcionar.
|
|
|
En línea
|
|
|
|
A2Corp
Desconectado
Mensajes: 304
|
Gracias por tus respuestas ^TiFa^, una pregunta... A que se debe que haya diferentes limites para GET?
Recuerdo que hace un tiempo tuve el mismo inconveniente y lei algo que se referia al dominio de la web, que al redireccionar a la localizacion exacta del servidor se perdian las variables largas mandadas por GET. Sera verdad? :S
Alguien ha leido sobre esto?
|
|
|
En línea
|
Hackeo, luego existo...
|
|
|
^Tifa^
Desconectado
Mensajes: 2.804
|
Vas a perdonarme por no poder ayudarte en ese punto con GET porque totalmente desconozco su funcionamiento interno o con quien se relaciona. La siguiente afirmacion: Recuerdo que hace un tiempo tuve el mismo inconveniente y lei algo que se referia al dominio de la web, que al redireccionar a la localizacion exacta del servidor se perdian las variables largas mandadas por GET. Es bastante similar a la funcionalidad que tiene la variable de MySQL 'max_allowed_packet' ya que el motor y el cliente MySQL se transfieren los datos mediante paquetes en un Buffer o similar, y si por alguna razon sobrepasas el limite maximo de data enviada (paquetes) de ese Buffer pos sencillamente se pierde toda la data.... (Si fuese la maxima cantidad soportada en el tipo de dato la data fuera truncada pero no se perdiera toda completamente, sino tan solo una parte). Pero tu mismo ya haz verificado que todo esta relacionado con GET y no con el motor DB en si. Posiblemente un webmaster tenga mas idea que yo en cuanto a los limites de GET como tal en un servidor.
|
|
|
En línea
|
|
|
|
|
|