HTTP CODE: 302!

Iniciado por A2Corp, 6 Diciembre 2009, 18:27 PM

0 Miembros y 1 Visitante están viendo este tema.

A2Corp

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!
Hackeo, luego existo...

Red Mx

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.
Desarrollar Malware Es Causa De Cancer...

A2Corp

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:

CitarTINYTEXT   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?

Hackeo, luego existo...

^Tifa^

CitarTINYTEXT   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.

A2Corp

mmmmmmmm.... a longtext no se le puede asignar cantidad de caracteres.
Hackeo, luego existo...

^Tifa^

#5
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  :xD  por ende puede que no sirva de mucho la idea de VARCHAR  :xD

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.

A2Corp

#6
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.
Hackeo, luego existo...

^Tifa^

Pusha que pena A2Corp   :o  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.

A2Corp

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?
Hackeo, luego existo...

^Tifa^

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:

CitarRecuerdo 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.