Changement de date (timestamp) php + SQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Changement de date (timestamp) php + SQL

Re: Changement de date (timestamp) php + SQL

par orell1 » 14 févr. 2011, 22:44

Merci beaucoup pour ta réponse! :D
Effectivement ce sera plus propre comme ça.

Merci.
Bonne soirée.
Post résolu.

Re: Changement de date (timestamp) php + SQL

par Ryle » 14 févr. 2011, 22:09

Dans ton 2nd code, tu testes si $_GET['id'] est défini au lieu de $_GET['id_annul'] :
if (isset($_GET['date_limite']) && isset($_GET['id'])) {
                $id_annul = $_GET['id_annul'];
Et comme l'a signalé stealth35, en SQL les nombres ne doivent pas être délimités par des apostrophes. MySQL les tolères, mais c'est mieux de ne les utiliser que pour les chaines :)
Et pis perso, je trouve le code plus lisible quand on sort les variables des chaines, ça permet de les mettre en couleur et de les lire plus facilement... de même en ce qui concerne le SQL j'ai tendance à mettre les mots clés en majuscule pour les mêmes raison :
$sql_annul = "UPDATE entreprises_dossiers SET date_limite = '$new_date_limite_annul' WHERE id = " . $id_annul;
e

Re: Changement de date (timestamp) php + SQL

par orell1 » 14 févr. 2011, 01:45

J'ai peut-être trouvé quelque chose d'intéressant, je ne sais pas si le codage est vraiment très bon mais on dirait que ça fonctionne...
Peut être avez vous des modifications à apporter?

LIEN QUI PERMET D'AJOUTER UNE ANNEE A 2011
<?php
        if (isset($_GET['date_limite']) && isset($_GET['id'])) {
                $id = $_GET['id'];
                $new_date_limite = (time()+(86400 * 364));
               
                $conn = db_connect();  
                $sql = "update entreprises_dossiers set date_limite = '$new_date_limite' where id = '$id'";
                $result = @mysql_query($sql, $conn);
                       
                echo "<meta http-equiv=\"refresh\" content=\"0;url=$_SERVER[HTTP_REFERER]\" />";
        }
?>

<?php echo stripslashes(date('d/m/Y', $aff_donnee_dossier[date_limite]));?>&nbsp;&nbsp;[   <a href="dossier_entreprise.php?date_limite=<?php echo $aff_donnee_dossier[date_limite]; ?>&id=<?php echo $aff_donnee_dossier[id]; ?>">Renouveller la date limite</a>   ]
 
LIEN QUI PERMET DE RETIRER UNE ANNEE A 2011
<?php
	if (isset($_GET['date_limite']) && isset($_GET['id'])) {
		$id_annul = $_GET['id_annul'];
		$new_date_limite_annul = (time()-(86400 * 364));
		
		$conn = db_connect();	
    		$sql_annul = "update entreprises_dossiers set date_limite = '$new_date_limite_annul' where id = '$id_annul'";
    		$result = @mysql_query($sql_annul, $conn);
			
    			
    		echo "<meta http-equiv=\"refresh\" content=\"0;url=$_SERVER[HTTP_REFERER]\" />";
	}

?>

&nbsp;&nbsp;[   <a href="dossier_entreprise.php?date_limite=<?php echo $aff_donnee_dossier_annul[date_limite]; ?>&id=<?php echo $aff_donnee_dossier_annul[id]; ?>&id_annul=<?php echo $aff_donnee_dossier_annul[id]; ?>">Désactiver la fiche</a>   ]

Re: Changement de date (timestamp) php + SQL

par orell1 » 14 févr. 2011, 01:22

Merci beaucoup pour cette réponse mais là je suis complétement perdu.
Je ne sais même pas par ou commencer...?
il faut une seule connexion à la base pour les 2 liens? (1 lien qui permet d'ajouter une année à 2011 et un lien qui permet de retirer une année à 2011)

Pour rappel voici mon code qui permet d'ajouter une année à 2011:
//--------------------------- renouveller la date d'echeance ------------------------------
        if (isset($_GET['date_limite']) && isset($_GET['id'])) {
                $id = $_GET['id'];
                $new_date_limite = (time()+(86400 * 364));
               
                $conn = db_connect();  
                $sql = "update entreprises_dossiers set date_limite = '$new_date_limite' where id = '$id'";
                $result = @mysql_query($sql, $conn);
                       
                echo "<meta http-equiv=\"refresh\" content=\"0;url=$_SERVER[HTTP_REFERER]\" />";
        }
//-----------------------------------------------------------------------------------------
LE LIEN QUI ACTIONNE LA FONCTION
<?php echo stripslashes(date('d/m/Y', $aff_donnee_dossier[date_limite]));?>&nbsp;&nbsp;[   <a href="dossier_entreprise.php?date_limite=<?php echo $aff_donnee_dossier[date_limite]; ?>&id=<?php echo $aff_donnee_dossier[id]; ?>">Renouveller la date limite</a>   ]
Merci par avance.

Re: Changement de date (timestamp) php + SQL

par stealth35 » 14 févr. 2011, 00:19

Il faut rajouter une variable dans l'url définissant l'action, par exemple act=enlever
Et dans le code :
if( isSet($_GET['act']) && $_GET['act'] == "enlever" )
  $new_date_limite = (time()-(86400 * 364));
else
  $new_date_limite = (time()+(86400 * 364));

c'est plutôt :
$new_date_limite = strtotime('+1 year');
$new_date_limite = strtotime('-1 year');
EDIT : vue que c'est du mysql derrière, il faut utiliser DATE_ADD et DATE_SUB

avec un $sign - ou +
UPDATE `entreprises_dossiers` SET `date_limite` $sign INTERVAL 1 YEAR WHERE `id`=$id
et oublie pas de protèger les valeur avec mysql_real_escape_string, de toujours protéger les champs SQL avec `, et de bien mettre le type c'est `id`=$id pas `id`='$id'

:wink:

Re: Changement de date (timestamp) php + SQL

par Ryle » 14 févr. 2011, 00:15

Ben le code php que t'a donné xTG doit être placé dans la partie php de ton script, et la modification des liens se fait dans le html .... quoi, ça t'aide pas ? :p

Pour la partie php, tu remplaces ton calcul " $new_date_limite = (time()+(86400 * 364)); " par le test de xTG, et pour le lien, il te suffit de rajouter un " &act=enlever" dans l'url du lien qui fait la soustraction :)

Re: Changement de date (timestamp) php + SQL

par orell1 » 13 févr. 2011, 23:45

Quelqu'un à une idée ???

Merci par avance.

Re: Changement de date (timestamp) php + SQL

par orell1 » 13 févr. 2011, 17:47

merci.

Mais je ne comprends pas ou je dois placer ce code ni comment l'adapter à mon code d'origine...? #-o

Re: Changement de date (timestamp) php + SQL

par xTG » 13 févr. 2011, 17:40

Il faut rajouter une variable dans l'url définissant l'action, par exemple act=enlever
Et dans le code :
if( isSet($_GET['act']) && $_GET['act'] == "enlever" )
  $new_date_limite = (time()-(86400 * 364));
else
  $new_date_limite = (time()+(86400 * 364));

Re: Changement de date (timestamp) php + SQL

par orell1 » 13 févr. 2011, 16:45

Merci pour ta réponse,
c'est ce que j'ai fait mais le problème c'est que ça agit sur les deux liens an même temps...
Il faut que le premier lien serve à renouveler la date et l'autre lien à retirer un an ou 2 par exemple...

C'est ça mon problème... :(

Re: Changement de date (timestamp) php + SQL

par xTG » 13 févr. 2011, 16:24

Il suffit de faire un - à la place d'un +...

Changement de date (timestamp) php + SQL

par orell1 » 13 févr. 2011, 15:27

Bonjour à tous,

j'ai une fonction qui me permet d'ajouter une année à une fiche de mon site lorsque je clique sur un lien, ce que je souhaite faire c'est la même opération mais en retirant 1 année en cliquant sur un lien. Pouvez vous m'aider svp? Merci

Voici mon codage php
//--------------------------- renouveller la date d'echeance ------------------------------
	if (isset($_GET['date_limite']) && isset($_GET['id'])) {
		$id = $_GET['id'];
		$new_date_limite = (time()+(86400 * 364));
		
		$conn = db_connect();	
    		$sql = "update entreprises_dossiers set date_limite = '$new_date_limite' where id = '$id'";
    		$result = @mysql_query($sql, $conn);
    			
    		echo "<meta http-equiv=\"refresh\" content=\"0;url=$_SERVER[HTTP_REFERER]\" />";
	}
//-----------------------------------------------------------------------------------------
LIEN POUR RENOUVELER LA DATE (AJOUT D'UNE ANNEE)
<?php echo stripslashes(date('d/m/Y', $aff_donnee_dossier[date_limite]));?>&nbsp;&nbsp;[   <a href="dossier_entreprise.php?date_limite=<?php echo $aff_donnee_dossier[date_limite]; ?>&id=<?php echo $aff_donnee_dossier[id]; ?>">Renouveller la date limite</a>   ]

Merci par avance.