Recupérer la date de debut de smaine

Résolu/Fermé
web_dev Messages postés 30 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 12 août 2009 - 30 août 2008 à 12:34
web_dev Messages postés 30 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 12 août 2009 - 9 sept. 2008 à 19:49
Salam,

comment récupérer la date de debut (lundi) d'une semaine (numero de semaine dans l'année ?
merci d'avance.

12 réponses

PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
30 août 2008 à 14:57
Bjr

en php tu peux faire comme ceci

<html>
<body>
<?php
$week=35;
$year=2008;

function getFirstMonday($week, $year)
{
	// Si le 1er janvier tombe semaine 53 de l'année précédent on doit tenir compte d'une semaine en plus
	if (date("W",mktime(0,0,0,1,1,$year)) == 53)
	{
		$week++;
	}	
	$startdate =  strtotime('+' . ($week-1) . ' week',mktime(0,0,0,1,1,$year));
	return strtotime('last monday',$startdate);
}
	
$firstMonday = getFirstMonday($week, $year);
$firstMondayInfo = getdate($firstMonday);

echo "Semaine ".$week."/".$year." => Lundi ".date('d/m/Y', $firstMonday);
echo "<br /><br />Infos sur le lundi";
echo "<pre>";
print_r($firstMondayInfo);
echo "</pre>";
?>
</body>
</html>
1
web_dev Messages postés 30 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 12 août 2009 1
4 sept. 2008 à 21:06
salam,
merci bien, je me suis débrouillé avec une fct qui retourne seulement le lundi de la semaine courante car j'avais une présentation urgente. J'ai encore du temps pour la remplacer par la tienne ! Je savai pa que Mr php lui-meme m'a répondu :) . Je te remercie encore une fois, mai j'ai une autre question à Mr php :
cmt coder (ou cacher) des données dans une base mysql par des * par exemple ( comme le mot de passe) ?
Je sais pas s'il existe une cmd sql pour cela, sinon une fonction php -qui t'appartient d'ailleurs :) -
0
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
4 sept. 2008 à 23:06
Bsr

Utilise la fonction crypt() de php : elle est faite pour.

0
web_dev Messages postés 30 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 12 août 2009 1
4 sept. 2008 à 23:12
merci,
et pour utiliser cette donnée, on fait l'opération inverse ou pas besoin ? c ma derniere question :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
5 sept. 2008 à 09:14
Bjr

Le fonction crypt est non symétrique : il n'existe pas de fonction uncrypt. bref ce qui a été crypté ne peut pas être décrypté. Par contre rien n'interdit de crypter un mot de passe en clair et de la comparer à son équivalent crypté stocké dans la base MySQL

Ex (sans la base mais le principe restera le même)

page login.php

<html>
<head>
<style>
*
{
	font-family : arial;
	font-size : 10pt;

}
</style>
</head>
<body>
<form method="post" action="check.php">
Username <input type="text" value="" name="username"><br />
Password <input type="text" value="" name="password"><br />
<input type="submit" value="Connexion">
</form>
</body>
</html>


page check.php

<?php
session_start();

if ((empty($_POST["username"])) || (empty($_POST["password"])))
{
	header("Location: login.php");
	exit;
}	

$username=$_POST["username"];	
$password=$_POST["password"];


if (isset($_SESSION["password_crypted"]))
{
	$password_crypted = $_SESSION["password_crypted"];
}	
else
{
	// Normalement on va lire le mot de passe crypté dans une table MySQL associé au username
	// avec une requête du genre
	// $sql= "select * from ma_table_user where usr_username='".$username."'";
	$password_crypted=crypt("web_dev");
	$_SESSION["password_crypted"] = $password_crypted;
}	
?>
<html>
<head>
<style>
*
{
	font-family : arial;
	font-size : 10pt;

}
</style>
</head>
<body>
<?php
if (crypt($password,$password_crypted) == $password_crypted)
{
	echo" Accès autorisé";
}
else
{
	echo "Accès refusé";
}
?>
</body>
</html>

0
web_dev Messages postés 30 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 12 août 2009 1
5 sept. 2008 à 20:48
salam,
merci PhP, you're a great help !
0
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
5 sept. 2008 à 20:55
Bsr

J'ai juste lu la doc http://fr3.php.net/manual/fr/function.crypt.php :-p
0
web_dev Messages postés 30 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 12 août 2009 1
7 sept. 2008 à 20:29
Au secours php !
j'ai compris ceci et ça me parai logik; j'ai vu la doc. Je ne sais pa prkoi ca fonctionne pa ?! si je me trompe pa ceci consiste aux 2 etapes:
1- crypter le mot de passe avec la fct crypt(mot_de_passe) et le stocker dans la bd (dans mon application c fait lors de la creation d'un user par un administrateur)
2- verifier le mot de passe lors du login avec if(crypt($login_mot_de_passe,$mot_de_passe_crypte) == $mot_de_passe_crypte)
où $login_mot_de_passe est celui saisi au login et $mot_de_passe_crypte est celui prevenant de la bd

--------
Une autre chose, j'ai créé 2 users avec le meme mot de passe mais ca donne pa le meme cryptage ! est-ce normal etant donné ke le cryptage est injectif et par conséquent a chak elmt y a un seul cryptage
reponds moi svp chui tellement embarrassée surtt kil me reste une bonne partie de l'application
Merci :)
0
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
8 sept. 2008 à 22:19
Bsr

Une autre chose, j'ai créé 2 users avec le meme mot de passe mais ca donne pa le meme cryptage ! est-ce normal etant donné ke le cryptage est injectif et par conséquent a chak elmt y a un seul cryptage

Oui c'est normal que ça ne génère pas la même clé avec 2 mots de passe identiques car lorsque tu ne précises pas de second paramètre ($salt) dans la fct crypt() php en génère un et s'en sert pour crypter. Comment il l'utilise exactement alors là aucune idée je suis pas du tout un expert en cryptage lol
Bref ce "grain de sel" est associé au résultat que te retourne la fct crypt() : en fait il est au début.
Lorsque tu recryptes le mot de passe pour la comparaison tu dois bien sûr passer également le même paramètre $salt d'où le fait qu'on indique le mot de passe déjà crypté (même si seuls certains caractères du début sont réellement utilisés en tant que salt)

Note que si tu donnes une valeur à salt alors la fct crypt() crypte toujours un même mot de passe de la même façon !


Pour le reste je vois pas pourquoi ça fonctionne pas chez toi. Poste le code de ta page
0
web_dev Messages postés 30 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 12 août 2009 1
9 sept. 2008 à 12:48
salam,
merci pour l'explication. voilà pour le code (le tien fonctionne bien sur), c'est le meme ke t'a posté avec une petite difference:le mot de passe crypté n'est plu statik (web_dev) mai provient de la bd.

page login.php (la meme ke la tienne)

<html>
<head>
<style>
*
{
	font-family : arial;
	font-size : 10pt;

}
</style>
</head>
<body>
<form method="post" action="check.php">
Username <input type="text" value="" name="username"><br />
Password <input type="text" value="" name="password"><br />
<input type="submit" value="Connexion">
</form>
</body>
</html>


-----------------------------------------------------------------------------------------------------------------------------------------------------------
je verifie le mot de passe saisi en le comparant à celui crypté et stocké dans la bd (gestion_imputation ds la table ressource). le cryptage du mot de passe est prealablement fait à la creation d'une ressource dans une autre page ke j juge inutile de citer -sauf si tu vois le contraire- car chargé... Mai là où j crypte le mot de passe est :

$mot_de_passe = crypt($_POST['mot_de_passe']);

ce mot de passe est entré ds un formulaire par un admin d'où le $_POST['mot_de_passe']

------------------------------------------------------------------------------------------------------------------------------------------------------------

page check.php (ici y a une difference)

<html>
<head>
<style>
*
{
	font-family : arial;
	font-size : 10pt;
}
</style>
</head>
<body>
<?php
$username=$_POST["username"];	
$password=$_POST["password"];
// on se connecte à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("gestion_imputation");
$retour_requete = mysql_query("SELECT * FROM ressource WHERE code='$username' AND profil='collaborateur'");
$donnees = mysql_fetch_array($retour_requete);
// On se déconnecte de MySQL
mysql_close();

$crypted_password = $donnees['mot_de_passe'];
if (crypt($password, $crypted_password) == $crypted_password){
	echo " Accès autorisé";
}
else{
	echo "Accès refusé";
}
?>
</body>
</html>


-------------------------

surement l'erreur provient de ce contact avec la db. essaye stp si tu voi qqch, n'importe kel remark... n'hesite pa de me le dire. je doit absoluement cacher ce mot de passe pr ke meme l'admin ne pt voir avec avec phpMyAdmin ni autre chose..
Je salue vivement l'ame de patience et d'entraide en toi :)
0
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
9 sept. 2008 à 15:40
bjr

je vois pas trop le pb ca semble ok


peut être lorsque tu enregistres ton mot de passe ou la taille du champ 'mot_de_passe' trop petite (il doit faire au moins 32 octets)
0
web_dev Messages postés 30 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 12 août 2009 1
9 sept. 2008 à 19:49
Salam,
Merci PhP. ça fonctioooonnnnnnne !
Tu l'a bien dit ! ça ne m'a meme pas passé par la tete. javais 20 caractères pr le mot de passe !
les tetes averties sont vites reconnues! je te remercie encore une fois :) . Apprete-toi alors à une pluie de questions !
0