Page 1 sur 1

Forcer la première lettre en Majuscule

Posté : 11 août 2006, 00:15
par dunbar
Bonjour

Dans certain de mes imput je force la première ou toutes les lettre en masucule

Code : Tout sélectionner

style="text-transform: uppercase"
te cela fonctionne
Mais je ne comprend pas pourquoi quand je fait un insert cela n'est pas prie en compte dans ma TABLE MySQL ?
Pourriez-vous me dire pourquoi, et éventuellement si il est possible de forcer la première lettre en masucule dans un champs de TABLE

Le but est d'avoir une plus belle mise en page quand je récupére les données dans un Tableau

Et j'en profite pour savoir si mon code est correct (je signal qu'il fonctionne parfaitement, il ne ma fallu que 140postes dans le forum pour y arrivé :oops: ) ou si je devrais y apporter des améliorations ?


D'avance merci
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: ../index.php');
    exit();
}
/******************************************************************************************************************************************************
                          Connexion à la base
******************************************************************************************************************************************************/

include "../../connect/fc-phpconnect.php";

/*****************************************************************************************************************************************************
                                                                     Récupération des données de la première ligne.
*****************************************************************************************************************************************************/
$date1 = $_POST['date_realisation'][1];
$date2 = $_POST['date_encodage'][2];
$user = $_SESSION['nom'];
$ref = $_POST['ref'][1];
$nom = $_POST['nom'][1];
$adr = $_POST['adr'][1];
$code = $_POST['postal'][1];
$commune = $_POST['commune'][1];
$address_mac = $_POST['mac'][1].":".$_POST['mac'][2].":".$_POST['mac'][3].":".$_POST['mac'][4].":".$_POST['mac'][5].":".$_POST['mac'][6] ;
$tech = $_POST['technicien'];
$heure_debut = $_POST['ha'][1].":".$_POST['ha'][2];
$heure_fin = $_POST['hd'][1].":".$_POST['hd'][2];
$telephone = $_POST['tel'][1];
$installation = $_POST['installation'];
$commentaire = $_POST['com'][1];

/*****************************************************************************************************************************************************
                                                                  Insertion dans la base  de la ligne 1.
*****************************************************************************************************************************************************/

$sql = "INSERT INTO prestation_beta (date_realisation, date_encodage, nom_utilisateur, ref_client, nom_client, adr_client, code_postal, 
commune, adr_modem, technicien, heure_debut, heure_fin, telephone, etat_installation, commentaire) 
values ( '".$date1."','".$date2."','".$user."','".$ref."','".$nom."','".$adr."','".$code."',
'".$commune."','".$address_mac."', '".$tech."','".$heure_debut."','".$heure_fin."','".$telephone."','".$installation."','".$commentaire."')";


$insert = mysql_query($sql) or die (mysql_error());










?>
<html>

<head>
</head>

<body>

<body background="../../img/grd-4px.gif">
<?php
echo "Merci les informations sont enregistr&eacutees.";
?>

&nbsp;<p align="center"><b><a href="../prestations/vdcabling.php">
<font size="4"><?php echo""  .$_SESSION['nom'];?> pour une prestation supplémentaire merci de cliquez ici</font></a></b></p>
<p><b><font color="#FF0000">
<a href="../deconnexion.php"><font color="#FF0000">Déconnexion</font></a>

</body>

</font>

</b>

</p>

</body>

</html>
:wink:

Posté : 11 août 2006, 00:52
par Truc
jette un oeil à ucfirst()

Le code me semble correct (en même temps j'ai survolé et puis il n'y a rien d'extra :wink: )
Mais pourquoi afficher ceci avec PHP :
<?php
echo "Merci les informations sont enregistr&eacutees.";
?> 
L'écrire directement avec le reste du code HTML fonctionnera tout aussi bien :)

Posté : 11 août 2006, 00:54
par dunbar
jette un oeil à ucfirst()

Le code me semble correct (en même temps j'ai survolé et puis il n'y a rien d'extra :wink: )
Mais pourquoi afficher ceci avec PHP :
<?php
echo "Merci les informations sont enregistr&eacutees.";
?> 
L'écrire directement avec le reste du code HTML fonctionnera tout aussi bien :)
C'est le fichier validation d'un formulaire donc une que l'utilisateur clique sur submit il reçois le message qui te tracasse :wink: si bien sur aucune erreur est survenue :?
Et je sais que c'est pas extraordinaire mais je ne connais rien en php :roll:
Et effectivement la functionucfirst($xxxx); fonctionne mais vient un autre problème cela regle le problème la la première lettre mais quand j'ai un champs (adresse mac) qui pourrais avoir deux lettres cela ne fonctionne que pour la première :oops:

Posté : 11 août 2006, 01:01
par Truc
Ce que je voulais surtout dire c'est ce que ceci :
<body background="../../img/grd-4px.gif">
<?php
echo "Merci les informations sont enregistr&eacutees.";
?>

&nbsp;<p align="center">
est équivalent à ceci :

<body background="../../img/grd-4px.gif">
Merci les informations sont enregistr&eacutees.
&nbsp;<p align="center">
puisqu'il n'y a pas de test mais un affichage tou court. (Sans le <?php en début... un petit bugg :? )

Au besoin vérifier aussi le contenu des variables POST et protections éventuelles addslashes(), mysql_real_escape_string() ou autre )

Posté : 11 août 2006, 01:12
par dunbar
Ce que je voulais surtout dire c'est ce que ceci :
<body background="../../img/grd-4px.gif">
<?php
echo "Merci les informations sont enregistr&eacutees.";
?>

&nbsp;<p align="center">
est équivalent à ceci :

<body background="../../img/grd-4px.gif">
Merci les informations sont enregistr&eacutees.
&nbsp;<p align="center">
puisqu'il n'y a pas de test mais un affichage tou court. (Sans le <?php en début... un petit bugg :? )

Au besoin vérifier aussi le contenu des variables POST et protections éventuelles addslashes(), mysql_real_escape_string() ou autre )
Effectivement tu à raison je vais corriger cela, j'ai remarquer aussi que l'insertion soit remplie ou pas j'arrive quand même à meric les infos.... comment faire un test avant pour être certain que les données soit bien enregistrée que c'est pas uniquement des champs vide, comme par exemple si l'utilisateur valide le form sans rien remplire ?

Posté : 11 août 2006, 01:37
par Truc
Tu as empty() ou alors un test avec "==", exemple de schéma:
$erreur = "";
if($date1 == "" )
   $erreur ="Tu va devoir remplir le champ date si tu veux continuer ! ;-)";

if($user== "" )
   $erreur .="Tu va devoir remplir le champ user si tu veux continuer ! ;-)";

if ($erreur=="")
{
    //code ok pas d'erreur
    // avec la requete et l'affichage du message "OK enregistremen"
}
else echo $erreur;

Posté : 11 août 2006, 10:05
par Ryle
La modification du style ne change que l'affichage, mais n'impacte en rien les données saisies. Ainsi, si l'utilisateur tape un mot en minuscule, il apparaitra en majuscule grace au style, mais sera malgré tout envoyé en minuscule :)

La fonction ucfirst() met en majuscule la première lettre du mot, puor passer tout le mot en majuscule tu peux utiliser strtoupper() voire même le faire dans ta requête sql avec la fonction upper()

Code : Tout sélectionner

UPDATE table SET champ = UPPER('ma valeur');