| 3 Alain42, le 6 jui 2007 à 13:41:33Question:
pourquoi mets tu des addslashes dans ta récup de variables ??
//formation :
$nom_formation = addslashes($_POST['nom_formation'] );
Php les mets tout seul, il vaudrait mieux les supprimer par stripslashes() si tu veux tester par expression régulières.
Ensuite pour comprendre les expressions régulières vas voir le site du zéro, il est pas mal fait.
Une autre solution aussi c'est de proposer dans le formulaire de saisie , pour la date ,des listes déroulantes, une pour le jour, une pour le mois, une pour l'année. Comme ça pas de souci de format c'est toi qui le gères.
Ensuite par Javascript, il existe des fonctions qui vérifient les cohérences de dates (Février, mois 30/31 jours ect..).
Si besoin j'ai ça. Répondre à Alain42 | Euh bah oui...Enfin non j'ai changé entre temps ! J'avais des slashs qui apparaissait mais je préférais d'abord trouver mon pb d'expression régulière. Alors voici comment j'ai modifié :
Dans ma page qui contient la liste de mes formations j'ai mis des stripslashes :
<span ><strong>".stripslashes ($row['nom_formations'])."</strong></span>
Dans ma page qui contient le fomulaire des formations :
<td align="left"><input type="text" name="nom_formation" value="<?php echo stripslashes ($row['nom_formations']) ;?>" size="65"></td>
Dans ma page qui fait la mise à jour :
//formation :
$nom_formation = $_POST['nom_formation'];
Ce code n'est certes pas optimisé mais je le comprends....Merci Alain pour ta proposition des listes déroulantes, mais maintenant que j'ai réussi tu comprendras que je vais garder ce que j'ai fait...Du moins pour le moment. Je ne veux pas profiter de ta gentillesse, tu m'aides déjà beaucoup par toutes tes remarques intéressantes. Pour le problème de l'année bissextle, ej verrais un peu plus tard.... Répondre à tximiti |
| 6 Alain42, le 7 jui 2007 à 09:20:42Je t'ai trouvé aussi ce code sur un site: http://www.comscripts.com/sources/php.verification-de-date.94.html
Fonction PHP permettant de controler la validité d'une date
au format jj/mm/aaaa (au cas ou le javaScript n'ait pas marché !!)
(on peut facilement l'adapter à un autre format)
Portion de code
<?
/* Auteur : Guillaume Marc */
/* email : adalberto@wanadoo.fr */
function validation_date($date){
/* Fonction générale de vérification */
/* controle de la longueur de la chaine jj/mm/aaaa = 10 */
if(strlen($date)==10){
if(substr($date,2,1)=="/" && substr($date,5,1)=="/"){
/* les caractères 1 et 6 sont des " / " */
$jour=intval(substr($date,0,2)); /* PHP numérote les chaines depuis 0 */
$mois=intval(substr($date,3,2));
$annee=intval(substr($date,6,4));
if($mois>=1 && $mois<=12){ /* verifie que le mois verifie 1<mois<12 */
if($jour<=longueurMois($mois,$annee)){ /* controle le jour par */
return true; /* rapport a la longueur du mois */
}
else {
return false;
}
}
else {
return false;
}
}
else {
return false;
}
}
else {
return false;
}
}
/* La fonction renvoit la longueur d'un mois précis */
/* en tenant compte du mois de février et des années bissextiles */
function longueurMois($mois,$annee){
if ($mois==4 || $mois==6 || $mois==9 || $mois==11) return 30;
else if (($mois==2) && estBissextile($annee)) return 29;
else if ($mois==2) return 28;
else return 31;
}
/* Les années bissextiles sont les années paires divisibles par
quatre et qui ne sont pas des année de centaine et les années
de centaine qui sont divisibles par 400.
(par exemple 1600 était bissextile, 2000 aussi mais pas 1900
qui est divisible par 4 et paire mais pas divisible par 400) */
/* fonction appelée par validation_date() */
function estBissextile($ans){
if ((($ans % 4 == 0) && $ans % 100 != 0) || $ans % 400 == 0)
return true;/*c'est une année bissextile */
else
return false;/*ce n'en est pas une */
}
?> Répondre à Alain42 | Merci, je prend le temps de regarder ça et te tiens au courant...Car c'est clair que ta solution est mieux ! Répondre à tximiti |
| J'ai regardé un peu et elle semble vraiment pas mal, je pense que je l'utiliserais quand j'aurais mon site plus structuré et que j'aurais fait le plus gros...En attendant, j'aurais souhaité un conseil de ta part si ça ne t'embête pas trop ?
Voilà, j'ai commencé mon back-office et je me suis aidée de ce site http://www.phpdebutant.org/article68.php (ne t'inquiète pas je n'ai pas encore sécurisé le site, mais j'ai l'intention de le faire après)
L'internaute peut choisir grâce à un menu de modifier une rubrique. Pour ma rubrique formations, cela affiche ma liste des formations, où là, il peut choisir d'ajouter / modifier / supprimer une formation /date.
Quand il clique sur le lien ajouter formation, cela l'emmène sur le lien suivant :
http://www.agilicom.fr/...
Jusqu'ici tout va bien...Mais c'est lorsque je veux que le lien modifier emmène l'internaute sur la page modifier, je n'arrive pas à l'insérer dans cette structure. Pour que ça fonctionne , je suis obligée de mettre :
<a href=\"date-modif.php?nomFormation=".$row['id_formations']."&&nomDate=".$row_date['id_date']."\">modifier</a>
Si je tente le principe que j'ai fait pour ajouter ça ne fonctionne pas, ça ne me trouve pas le fichier ...Pourquoi ? Ils sont placés au même niveau, est-ce l'identifiant qui gêne peut-être ?
Que me conseilles-tu ?
Ma page d'accueil.php :
<?php
//connection au serveur:
require_once ('../connexionbd.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Back-office AGILiCOM</title>
<style type="text/css">@import url(modules/styleadmin.css);</style>
<script language="javascript" >
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
if (d) {d.style.display='block';}
}
-->
</script>
<noscript>
<p>Cette page requière le JavaScript. Merci de bien vouloir l'activer.</p>
</noscript>
</head>
<body>
<div id="conteneur">
<div id="header"></div>
<div id="gauche">
<?php include("modules/menu-admin.php"); ?>
</div>
<div id="centre" name="centr">
<?php
// Récupération du paramètre GET
// (avec valeur par défaut=accueil.php)
if (isset($_GET["page"]))
$page = $_GET["page"];
else $page = "";
include ("$page");
?>
</div>
</div>
</body>
</html>
Je sais qu'il y la methode target mais je n'y suis pas arrivée, si tu as une petite idée de mon souci, ça me serait d'un grane aide..
Merci pour tout, je peux te dire que ça me motive à chercher ! Répondre à tximiti |
| 9 Alain42, le 8 jui 2007 à 22:51:00href=\"date-modif.php?nomFormation=".$row['id_formations']."&&nomDate=".$row_date['id_date']."\">modifier</a>
tu as une erreur deux fois && avant nomDate
c'est peut etre ce qui gène Répondre à Alain42 | Je regarde ça dès demain matin, mais j'ai un doute (enfin pas sur mon erreur, ça s'est certain ! Lol !) car avant que je fasse la mise en page ça fonctionnait et ça fonctionne toujours si je ne les insère pas dansla mise en page.
Si je laisse ça fonctionne (mais je n'ai plus ma mise en page ni mon menu)
<a href=\"date-modif.php?nomFormation=".$row['id_formations']."&nomDate=".$row_date['id_date']."\">modifier</a>
Si je fais ça, alors ça ne trouve plus le chemin !
<a href=\"accueil.php?page=date-modif.php?nomFormation=".$row['id_formations']."&nomDate=".$row_date['id_date']."\">modifier</a>
Je regarde dès demain ! Merci en tout cas ! Répondre à tximiti |
|
|
|