2010-12-02 38 views
0

Je suis sûr que c'est assez simple mais je ne trouve pas la réponse.php problème de débordement double

Je passe un double dans une page PHP, et la récupération avec le code:

$timestamp = $_POST['timestamp']; 

Le nombre étant passé (1291328282) est changée en -1456872199 par le script PHP. Le code:

$timestamp = (float) $_POST['timestamp']; 

a le même résultat.

+0

Qu'est-ce que 'var_dump ($ _ POST [ 'timestamp'])' donner? Ça devrait être une chaîne. – Matthew

+0

je peux parier que c'est une chaîne d'un timestamp unix. – RobertPitt

+1

fyi, je passe la valeur obtenue de java: double timestamp = (double) (System.currentTimeMillis()/1000); – TomBomb

Répondre

0

Il n'y a pas de différence en PHP. 'float', 'double' ou 'real' sont le même type de données.

$_POST['timestamp']; si a la valeur de 1291328282 n'est pas un double, mais un int, il ressemble à un UNIX_TIMESTAMP de ne pas se confondre avec EPOCH.

Je ne suis pas sûr de ce que vous souhaitez achive mais je pense que vous voulez:

$timestamp = (int)$_POST['timestamp']; 

Peu de connaissances supplémentaires:

Lors de la conversion du flotteur à chaîne zéros seront supprimés.

Exemple (. 5,3 ^)

echo (string)5.00500; // outputs 5.005 
echo (string)30.0000; // outputs 30 

Qu'est-ce que vous voulez faire est:

$timestamp = abs((int)$_POST['timestamp']); 
+0

J'ai essayé, avec les mêmes résultats qu'avant ... toujours en me donnant un nombre négatif. – TomBomb

+0

montrez-moi votre entrée de formulaire – RobertPitt

+0

Vérifier ma mise à jour premier bourgeon. – RobertPitt

0

Comment gérez-vous les données après avoir déclaré la variable? Tout ce qui est envoyé via un formulaire est une chaîne. PHP place les données dans $ _POST en tant que chaînes (sauf pour les tableaux). $ timestamp doit avoir la valeur correcte lors de la déclaration car les chaînes ne sont pas contraintes comme un entier. Qu'est-ce que vous faites avec $ horodatage après déclarant que c'est ce qui est susceptible de provoquer le cliquage de PHP.

+0

Je suis en train d'écrire la valeur d'un fichier après le POSTing – TomBomb