niconicochan

Inscris le 22/12/2013 à 10:16
  • Nombre de sujets
    9
  • Nombre de messages
    49
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

niconicochan
le 11/02/2014 à 22:05
Formulaire avec envoi BDD
Salut,

Je reviens sur ce que je t'avais écris, car suite à mon mail il y a des points sur lesquels
il est préférable de faire attention.
Suite à mon dernier message, tu as écris:
<input name="societe" size="22" value="<?php echo @_$POST['societe'] ?>"" type="text"/>
Le signe $ n'est pas à la bonne place. Cette erreur d'un signe ne pardonne pas.
Il faut bien écrire:
<input name="societe" size="22" value="<?php echo @$_POST['societe'] ?>"" type="text"/>

Attention: dans tous tes champs value tu as une balise d'entrée <php? et une balise de sortie
?> puisque tu écris du code php entre les deux

Mais de très loin le plus important est ce que nous a dit LupusMic:
les données saisies par l'utilisateur doivent IMPERATIVEMENT être nettoyées.
Pour simplifier le propos j'ai évité d'aborder ce point en plus mais toi qui est en train d'écrire
le programme que tu vas utiliser il faut que tu te protèges d'utilisateurs mal intentionnés,
qui pourraient rentrer du code par tes champs de formulaire et mettre la pagaille dans
ton site (vider une de tes bases de données, ajouter des images indécentes dans ton site,...).
Ca, tu ne l'as pas encore fait et c'est primodial que tu le fasses maintenant au niveau de chacun
de tes champs value.
Pour cela, LupusMic te propose d'utiliser htmlentities.
Moi, j'aime bien travailler à la fois avec mysqli_real_escape_string(), strip_tags() et trim()
niconicochan
le 07/02/2014 à 17:30
Formulaire avec envoi BDD
Avec le signe $ entre @ et _
Bon, tu as compris ce que je fais de toutes façons
niconicochan
le 07/02/2014 à 17:24
Formulaire avec envoi BDD
Je te réécris le code plus proprement car je l'ai
écrit comme un cochon:

value="<?php echo @_$POST[''valeurChamps1'] ?>"


value="<?php echo @_$POST[''valeurChamps2'] ?>"


value="<?php echo @_$POST[''valeurChamps3'] ?>"
niconicochan
le 07/02/2014 à 17:08
Formulaire avec envoi BDD
Salut,

Tu as une page de formulaire et une page de traitement de formulaire.
Je n'ai encore jamais essayé, mais moi je mettrais comme valeur
pour value dans chaque champs de la page de formulaire
<?php echo="@$_POST[ 'valeurChamps1'] php ?>

pour champs1
<?php echo="@$_POST[ 'valeurChamps2'] php ?>

pour champs2
<?php echo="@$_POST[ 'valeurChamps3'] php ?>

pour champs3
avec une redirection vers cette même page de formulaire lorsque
à la validation le formulaire n'est pas bien rempli.
Du fait de ces ajouts, il ^devient bien sûr indispensable que la
page de formulaire se termine par une extension en .php
niconicochan
le 27/01/2014 à 18:16
php.ini-developement et php.ini-production
Merci pour l'indication, qui m'a permis de trouver les explications suivantes, que j'affiche
pour d'autres que moi que ça peut intéresser.
La dernière phrase est la plus intéressante.

; php.ini-production contains settings which hold security, performance and
; best practices at its core. But please be aware, these settings may break
; compatibility with older or less security conscience applications. We
; recommending using the production ini in production and testing environments.

; php.ini-development is very similar to its production variant, except it's
; much more verbose when it comes to errors. We recommending using the
; development version only in development environments as errors shown to
; application users can inadvertently leak otherwise secure information.

Les deux fichiers semblent tous les deux très complets concernant la gestion des erreurs.
niconicochan
le 27/01/2014 à 10:10
php.ini-developement et php.ini-production
Bonjour,

Dans mon fichier WAMPP, lorsque je recherche php.ini
je trouve deux fichiers: php.ini-developement et php.ini-production

Comme je suis en local, ça paraît plus logique d'utiliser php.ini-developement
pour changer mes paramètres php.ini en local (car site de développement).

Mais quelle différence y-at-il alors entre php.ini-developement et php.ini-production,
et à quoi sert le fichier php.ini-production?

Niconicochan.
niconicochan
le 07/01/2014 à 12:31
Ranger données formulaire dans base données.
Mon problème venait d'une table de My SQL.
Il faut en effet avoir toujours la première ligne d'une table en AUTO_INCREMENT
pour pouvoir envoyer des entrées de formulaire dans une table située dans une
base de données. Sinon, ça ne marche pas (une nouvelle ligne aura
le numéro 0 au lieu de venir s'ajouter sous celles déjà existantes, ce qui
n'est pas possible puisqu'il existe déjà un numéro 0).
J'ai également écris une page de formulaire en .html
et mon programme en .php (avec uniquement du php: ma page commence
par <?php et se termine par ?>
C'est ainsi déjà beaucoup plus clair.
Face à un problème comme ça sélectionner sa requête et la tester dans phpmyadmin
permet déjà d'identifier si le soucis vient de php ou de sql.

Question pour le bbcode: comment on fait?
niconicochan
le 22/12/2013 à 10:26
Ranger données formulaire dans base données.
Problème pour insérer données formulaire dans base de données.

Bonjour,
J'ai besoin d'aide pour résolution d'un problème, apparemment au niveau de la fonction msqli_query puisqu'il ressort le texte "Exécution de la requête impossible".
J'ai une page de formulaire et une page de traitement de formulaire (j'ai appelé cette dernière RangFormEnCoursTrainb.php).
J'ai remplacé tous mes codes par confidentiel, sachant qu'ils marchent bien puisque j'arrive à envoyer sur mon site des données se trouvant dans mes bases de données.
--------------------------
Page de formulaire
--------------------------

<?php
echo "<html>"
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
dtd">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>

<body>
<h1>Quel animal voulez-vous mettre en vente?<h1>
<p style:'text-align: right; font-weight: bold'>
Remplissez les champs ci-dessous en présisant
bien le prix de vente que vous estimez.<br>
Cliquez sur valider.<br>
Nous nous occupons alors de la vente de l'animal qui sera<br>
présenté tel que vous nous le décrivez.<br>
<?php

echo "<form action='RangFormEnCoursTrainb.php' method='POST'><table>\n";

$tableau = array ( "animalnom" => "Nom de l'animal:",
"animaltype" => "Type de l'animal:",
"animaldesc" => "Description de l'animal:",
"animalprix" => "Prix de l'animal:");

foreach($tableau as $champ => $presentation)
{
echo "<tr>
<td style='text-align: right; font-weight: bold'>$presentation<td>
<td><input type='text' name='$champ' size='255' maxlength='255'><br></td>
</tr>";
}
echo "<tr>
<td colspan='2' style='text-align: center'>
<input type='submit' value='Validez la saisie'>;
</td></tr></table></form>";
?>
</body>
</html>

---------------------------------------------
Page de traitement de formulaire
---------------------------------------------

<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
dtd">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>

<body>

<?php

$tableau = array ( "animalnom" => "Nom de l'animal:",
"animaltype" => "Type de l'animal:",
"animaldesc" => "Description de l'animal:",
"animalprix" => "Prix de l'animal:");


foreach($_POST as $champ => $valPresentation)
{
if($valPresentation =="")
{
$champVide[] = $champ;
}
elseif(!ereg("^[A-Za-z0-9' -]{1,255}$",$valPresentation))
{
$mauvaisFormat[] = $champ;
}
}
/* fin de la boucle for */

if(@sizeof($champVide) > 0 or @sizeof($mauvaisFormat) > 0)
{
/* l'accolade qui s'ouvre ci-dessus se ferme juste avant le else */
if(@sizeof($champVide) > 0)
{
echo "Un champ au moins est vide. Vous devez remplir:<br>";
foreach($champVide as $valPresentation)
{
echo "&nsbp;&nsbp;&nsbp;{$tableau[$valPresentation]}<br>";
}
}
if(@sizeof($mauvaisFormat) > 0)
{
echo "<b>Un champs contient au moins une donnée incorrecte. Corrigez:</b><br>";
foreach($mauvaisFormat as $valPresentation)
{
echo "&nsbp;&nsbp;&nsbp;{$tableau[$valPresentation]}<br>";
}
}
echo "<p><hr />";
echo "<h3>Saisissez les données manquantes.<h3>";
echo "<form action='RangFormEnCoursTrainb.php' method='POST'><table>";
foreach($tableau as $champ => $presentation)
{
$dataOK[$champ]=strip_tags(trim($_POST[$champ]));
echo "<tr>
<td style='text-align: right; font-weight: bold'>$presentation</td>
<td><input type='text' name='$champ' size='255' maxlength='255' value='$dataOK[$champ]'><br></td>
</tr>";
}
echo "<tr>
<td colspan='2' style='text-align: center'>
<input type='submit' value='Validez la saisie'>";
echo "</td></tr></table>
</form>";
exit();
}
else
{
$hôte="confidentiel";
$utilisateur="confidentiel";
$motPasse="confidentiel";
$nombase="confidentiel";

$connexion=mysqli_connect($hôte,$utilisateur,$motPasse)
or die ("Connexion au serveur impossible.");
$nombase=mysqli_select_db($connexion,$nombase)
or die ("Sélection de la base impossible");

$champsTous = array_keys($tableau);
foreach($champsTous as $champ)
{
$dataOK[$champ] = strip_tags(trim($_POST[$champ]));

$dataOK[$champ] = mysqli_real_escape_string
($connexion,$dataOK[$champ]);
}
$req="INSERT INTO Animal (animalnom, animaltype, animaldesc, animalprix)
VALUES('$dataOK[animalnom]','$dataOK[animaltype]', '$dataOK[animaldesc]',
'$dataOK[animalprix]')";
$query=mysqli_query($connexion,$req)
or die ("Exécution de la requête impossible.");
echo "<h4>Les données que vous avez saisies ont bien été enregistrées.</h4>";
}
?>
</body>
</html>

-----------------------------------------------------
Avec tous mes remerciements si vous
pouvez me donner un coup de main ^ ^

Nicolas.
LoadingChargement en cours