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 05/05/2014 à 18:54
Bouton de confirmation et envoi de formulaire
Bonjour Jexus 11,

1) Le bouton de confirmation.

Moi, je créerais une nouvelle page de formulaire à la suite qui serait un récapitulatif
de tous les champs déjà remplis, avec comme valeur par défaut
les données qui viennent d'être remplies dans la base de données
(j'aurais du code php pour extraire les données déjà rentrées dans la base de données
et permettre leur affichage par défaut dans les champs).
Sur cette nouvelle page de formulaire, que je présenterais en fait à l'utilisateur
comme une page de confirmation, je proposerais simplement de changer les valeurs
qu'il souhaite modifier et de confirmer. J'appelerai alors mon bouton d'envoi
"confirmation" ou encore "veuillez confirmer les données".
Le code lié à ce bouton d'envoi consisterait à remplacer les anciennes données se trouvant
dans la base de données par celles tapées dans ma toute dernière page de formulaire
(ainsi, par exemple, si l'utilisateur ne change aucune données et confirme, ce qu'il se passerait
réellement est l'effacement des données tapées antérieurement et l'entrée des nouvelles
données sur la dernière page du formulaire, qui seraient en fait exactement les mêmes).

2)Requêtes désynchronisées.

Il te faut apprendre à créer des programmes AJAX pour faire ce que tu demandes dans ton tout dernier point (il faut que tu passes par des livres ou des tutoriels), mais plus précisément il te faudrait
des livres ou des tutoriels dans lesquels on explique la réalisation de ces programmes AJAX avec du code
php assurant l'interaction avec ta base de données.
Il te faut apprendre à créer une page avec un programme AJAX écrit en javascript dans lequel
tu crées un appel à ton programme php de la manière suivante à la ligne:
xmlHttpRequest.open("POST", "monprogramme.php", true);
Dans mon exemple j'appelle ma page de programme monprogramme.php
mais toi tu l'appelles comme tu veux.
Ton programme php va comporter ton code XML pour assurer les retours au navigateur
par instructions echo (php ne fonctionne que dans le sens CLIENT vers SERVEUR
pour assurer la protection des données envoyées).
niconicochan
le 24/04/2014 à 17:11
Problème accès utilisateur.
Résolu, mais j'ai honte, en tout premier lieu pour le dérangement.

J'ai mis le nom de ma base de données après INSERT INTO au lieu du nom de ma table!
J'ai pourtant fait à chaque fois plusieurs relectures mais je n'ai jamais rien vu malgré toute
mon attention.
Ca parassait pourtant évident!
Toutes mes excuses pour le dérangement et surtout merci beaucoup!!
niconicochan
le 24/04/2014 à 16:12
Problème accès utilisateur.
Je te propose, si tu es d'accord, de lire mon code pour voir où se trouve la source du problème.
Je l'ai énormément simplifié afin d'en améliorer la visibilité.

Point de détail sur l'exemple ci-dessous:
Tu verras que j'ai mis le nom de famille comme clef primaire, ce qui n'est pas un bon choix en pratique
puisque effectivement ça impliquerait qu'il n'y a pas deux utilisateurs avec un même nom de famille.

1) Page de formulaire:

<!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=utf-8" />
<title>Nom et prénom</title>
</head>

<body>
<br/>
<br/>
<br/>
<br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tapez votre nom et prénom.<br/>
<br/>
<form method="POST" action="traitementnomprenom.php">
<ul style="list-style-type: none;">

<br/>
<br/>
<li>Nom:&nbsp;&nbsp;<input type="text" name="nomfamille" value="<?php echo htmlentities(@$_POST['nomfamille']) ?>" size="30" maxlength="25"/></li>
<br/>
<br/>
<li>Prénom:&nbsp;&nbsp;<input type="text" name="prenom" value="<?php echo htmlentities(@$_POST['prenom']) ?>" size="30" maxlength="25"/></li>
<br/>
<br/>
<input type="submit" name="validation" value="valider"/>
<input type="reset" name="reset" value="recommencer"/></li>
</ul>
</form>
<br/>
<br/>
<br/>
</body>
</html>


2)Page de traitement de formulaire:

<?php

$hote="localhost";
$utilisateur="root";
$motPasse="";
$nombase="mabase";

$nomfamille=$_POST['nomfamille'];
$prenom=$_POST['prenom'];

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

$req="INSERT INTO mabase (nomfamille, prenom)
VALUES('".$nomfamille."','".$prenom."')";

$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>";
mysqli_close();
?>


3)La table que j'ai créé sur phpmyadmin en local:

CREATE TABLE nometprenom (
nomfamille varchar(25) NOT NULL,
prenom varchar(25) NOT NULL,
PRIMARY KEY (nomfamille)
)

Echec, le navigateur me retourne:

Exécution de la requête impossible.
niconicochan
le 23/04/2014 à 17:44
Problème accès utilisateur.
Merci pour toutes ces explications. Ca ne règle pas mon soucis mais je vais essayer de trouver une autre solution.
niconicochan
le 23/04/2014 à 14:23
Problème accès utilisateur.
Bonjour,

J'ai des difficultés à manipuler des bases de données sur un serveur local.
J'arrive à le faire avec un serveur distant mais pour moi le serveur local averc l'interface
phpmyadmin en local c'est encore une bête noire.

Voilà ce que m'envoit le navigateur quand j'essaye d'envoyer des informations de formulaire
dans une base de données sur mon serveur local.

Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\monsite\mapage.php on line 19
Connexion au serveur impossible.

Mes lignes de code sont toutes bonnes je pense, car elles marchent sur un serveur distant,
sauf donc peut-être les quatre variables:

$utilisateur=" ";
$serveur=" ";
$motdepasse=" ";
$basedonnees=" ";

A nom d'utilisateur, je ne sais pas s'il faut écrire localhost ou 127.0.0.1
D'une part, on voit ses pages dans le navigateur en commençant par écrire
http://localhost/... ce qui me ferait plutôt pencher par localhost, et d'autre
par sur phpmyadmin en local je trouve écrit en haut à gauche Serveur: 127.0.0.1
ce qui me ferait plutôt pencher pour 127.0.0.1
Ca c'est le premier point qui me pose un vrai soucis de compréhension.

Pour le mot de passe ça va, sur phpmyadmin en local j'arrive à mettre, à choisir et à enlever un
mot de passe. Cette variable est liée au nom d'utilisateur donc si pour le premier point
ci-dessus je peux avoir une réponse alors je sais ce que je dois écrire pour cette variable.

Le nom que j'ai donné à ma base de données, lui, apparaît sur mon interface phpmyadmin en local
dont ça ça va aussi.

Enfin pour la variable utilisateur je ne comprend presque rien.
Sur mon interface de phpmyadmin en local, dans l'onglet utilisateur je vois la liste de tous
les utilisateurs.
Je ne me souviens pourtant pas en avoir créé un seul et j'ai pourtant déjà une liste.
Je crois que root est crée par défaut. C'est le serveur (Client) 127.0.0.1
Il a un mot de passe que je lui ai donné et il a tous les privilèges (ALL PRIVILEGES)
mais j'ai aussi un autre utilisateur qui s'appelle root lui-aussi qui est le serveur (Client) localhost.
Lui, il n'a pas de mot de passe car je ne lui en ai pas donné et il a aussi tous les privilèges
(ALL PRIVILEGES), alors pourquoi le navigateur retourne access denied?
Il y a vraiment quelque chose que je ne comprends pas.
J'ai même un utilisateur qui s'appelle N'importe lequel ???

De manière plus générale, je ne comprends pas cette histoire d'utilisateurs.
Tous ces utilisateurs inscrits, existants ou non mais en tous cas inscrits, ont accès à l'interface de phpmyadmin en local depuis mon poste, donc depuis mon ordinateur et depuis
mon ordinateur seulement.
Et moi, je peux depuis mon ordinateur, simplement en rentrant dans phpmyadmin en local,
gérer tous les privilèges et tous les paramètres de tous les utilisateurs.
Donc eux ils le peuvent aussi. Je ne vois donc pas l'intérêt du truc.
Bien sûr, j'imagine que tout a été très bien conçu et que c'est moi qui ne comprends pas.

C'est d'ailleurs justement pour ça que je demande votre aide.
J'ai vraiment besoin de comprendre.

Dernier point, si vous acceptez de bien vouloir m'aider jusqu'au bout
(ce qui me permettra aussi de rendre l'ascenseur à d'autres plus tard),
dans l'onglet utilisateur je ne comprends pas la colonne Client.
Pour le cas d'un serveur distant (je pars de ce que je comprends),
j'ai un navigateur, le client, qui envoit des requêtes à un serveur distant,
qui lui-même renvoit des pages demandées au navigateur qui lui va alors les afficher.
Pour ce qui est des lignes de php, elles seront envoyées à l'interpréteur de php
depuis le serveur distant qui renverra le html sous instruction echo au navigateur ou bien qui enverra
les scripts php à une SGBD qui elle-même repassera par l'interpéteur
de php (si je ne me trompe pas) pour ensuite permettre le retour au navigateur.
Lorsque je travaille en local où se trouve l'interpéteur php du serveur local?
En local ou à distance?
Si sur phpmyadmin je suis sur mon serveur local, donc il s'agit bien du client,
le navigateur est-il le logiciel utilisé par ce client?
Est-ce que le navigateur est un logiciel qui fait partie du client?
niconicochan
le 23/04/2014 à 09:37
Formulaire avec réaffichage des valeurs saisies dans les champs.
Problème entièrement résolu.
Il y avait une faute de frappe dans entities (j'avais écrit entites pour le dernier champs, il manquait un i).
Du coup, le dernier champs n'est pas apparu à l'écran, ainsi
que (plus curieusement) les boutons valider et recommencer
(je ne vois en fait pas le rapport entre ces boutons et le dernier champs).

Le message de Lupus Mic m'aura été très utile, car c'est à partir de là que
j'ai fait une recherche sur internet pour voir comment lire php avec XAMPP
et que j'ai pu commencer à trouver une solution à mon problème grâce à une question
déjà posée sur une FAQ.
niconicochan
le 23/04/2014 à 09:24
Formulaire avec réaffichage des valeurs saisies dans les champs.
Problème presque résolu.
J'ai mis le contenu de mon site dans htdocs.
Ensuite, j'ouvre mon navigateur et tape http://localhost/monsite/mapage.php
et le php semble être lu, les champs sont vides.
Par contre, il manque l'affichage du dernier champs de saisie ainsi que les boutons
valider et recommencer tout en bas de la page (c'est une page de formulaire).
Il semblerait que le navigateur ne lit pas la fin de ma page de code.
Ma page est comme coupée en bas. Je trouve ça très bizarre.

Si j'ouvre mon fichier mapage.php avec l'éditeur dreamweaver dans le dossier
monsite se trouvant lui-même dans le dossier htdocs, tout est lu comme du code tapé
même si je passe par l'aperçu dans le navigateur (je vois dans mon navigateur
tout le code que j'ai tapé).
La fin de la page n'est plus coupée mais c'est le code qui est affiché.
Si j'utilise les fonction de dreamweaver fractionner ou en direct qui permettent
de voir "ce que les pages donneraient dans un navigateur", je me retrouve alors
avec une page .php lue comme du html, rien n'est coupé en bas, je vois tous mes champs
mais avec mon php lu comme du html:
value="<?php echo htmlentities(@$_POST['champs1']) ?>"
value="<?php echo htmlentities(@$_POST['champs2']) ?>"
value="<?php echo htmlentities(@$_POST['champs3']) ?>"
...

Quelqu'un pourrait m'aider (premier paragraphe de ce message)?
LoadingChargement en cours