Pas de username inscrit dans ma base de donné

Fermé
david 69 - Modifié par david 69 le 6/08/2012 à 13:26
 Utilisateur anonyme - 10 août 2012 à 17:01
Bonjour,
voici mon code et je vous explique ce qui marrive:

if (isset($_GET['nouvelle_categorie'])){
if($nouvelle_categorie==""){echo"Veuillez saisir le nom de votre album";}else{
include('connect.php');
$Date = date("Y-m-d");
$Time = date("H:i:s");
$Ip = $_SERVER['REMOTE_ADDR'];

//$categorie = htmlentities($_GET['nouvelle_categorie'],ENT_QUOTES);
$categorie = ($_GET['nouvelle_categorie']);
// on va vérifier que la nouvelle catégorie n'existe pas déja
if (!is_dir("photo/$categorie/") && !is_dir("photo/$categorie/mini/")){
$query = mysql_query("INSERT INTO Rubrique(RubriqueID,username,categorie,Date,Time,Ip) VALUES ('','$username','$categorie','$Date','$Time','$Ip')")or die('error');
// puis on créer les 2 dossiers, qui contiendront les originaux et les miniatures
// avec tous les droits ( écriture, lecture , suppression )
mkdir("photo/$categorie/",0777);
mkdir("photo/$categorie/mini/",0777);
// on fait une vérification sur la création pour le retour à l'utilisateur
if (is_dir("photo/$categorie/") && is_dir("photo/$categorie/mini/")){
echo "<p>Votre nouvelle catégorie : $categorie, a bien été ajouté</p>";
}
else{
echo "<p>Une erreur est survenu durant la création de votre catégorie </br> Veuillez contacter votre administrateur</p>";
}
}
else{
echo "<p>Le nom de votre catégorie : $categorie, est déja utilisé !</p>";
}
}}


je recupere une variable passé dans mon index.php
et quand je creer un album il me l'inscrit bien dans ma base de donnée sauf l'username(pseudo) pour quoi ?
merçi de votre aide bonne journée

4 réponses

Bonjour

C'est parce que tu n'initialises pas ta variable $username.
On voit bien l'initialisation des autres variables : $categorie,$Date,$Time et $Ip, mais pas celle de $username.
0
merçi pour ta reponse
mais le username et sur un autre fichier
style $username=cookie[1] (index.php)
donc je creer un champ de type hiden
et je procede comme le isset
mais ne fonctionne pas je comprend pas
a tu une idee je te met le code :

index.php:

//creer album.
echo"<div id=\"centre\">
<fieldset><legend>Ajout d'une nouvelle catégorie</legend>
<p class=\"mef_form\"><label>Nom de votre nouvelle catégorie :</label>
<input type=\"text\" name=\"nouvelle_categorie\" id=\"nouvelle_categorie\" />  <input type=\"reset\" value=\"Effacer\"></p><br /><label> </label>
<input type=\"hidden\" name=\"username\" value=\"$username\">
<input type=\"button\" value=\"Ajouter\" onclick=\"nom=document.getElementById('nouvelle_categorie').value ; ajouter_cat(nom)\"/><br />
</fieldset><div id=\"reponse_1\"></div></div>";


nouvelle catégorie:


if (isset($_GET['username'])){

$username = ($_GET['username']);}

if (isset($_GET['nouvelle_categorie'])){
if($nouvelle_categorie==""){echo" pseudo: $username Veuillez saisir le nom de votre album";}else{
include('connect.php');
$Date = date("Y-m-d");
$Time = date("H:i:s");
$Ip = $_SERVER['REMOTE_ADDR'];
$categorie = ($_GET['nouvelle_categorie']);


if (!is_dir("photo/$categorie/") && !is_dir("photo/$categorie/mini/")){

$query = mysql_query("INSERT INTO Rubrique(RubriqueID,username,categorie,Date,Time,Ip) VALUES ('','$username','$categorie','$Date','$Time','$Ip')")or die('error');

// puis on créer les 2 dossiers, qui contiendront les originaux et les miniatures
// avec tous les droits ( écriture, lecture , suppression )
mkdir("photo/$categorie/",0777);
mkdir("photo/$categorie/mini/",0777);
// on fait une vérification sur la création pour le retour à l'utilisateur
if (is_dir("photo/$categorie/") && is_dir("photo/$categorie/mini/")){
echo "<p>$username votre nouvelle album : $categorie, a bien été ajouté</p>";
}
else{
echo "<p> $username Une erreur est survenu durant la création de votre catégorie </br> Veuillez contacter votre administrateur</p>";
}
}
else{
echo "<p> $username Le nom de votre catégorie : $categorie, est déja utilisé !</p>";
}
}}
merci.
0
Utilisateur anonyme
8 août 2012 à 22:31
ajoute echo $username;
if (isset($_GET['username'])){
echo $username;
$username = ($_GET['username']);} 

dans nouvelle catégorie pour voir si $username est bien récupéré.

Si comme je le suppose, $username n'est pas défini, peux-tu montrer le code complet du formulaire (de <form> à </form> ) d'index.php, il est peut-être défini avec la méthode POST au lieu de GET
0
bonjour oui mais jai essayé comme tu ma dit sa fonctionne pas
donc voici le code index .php

<?php
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
$index=1;
include("header.php");

global $user, $op, $db, $prefix, $username;

if (is_user($user)) {


if ($op == "") {

// Start to fetch settings
$result = $db->sql_query("SELECT * FROM ".$prefix."_fileupload");
$row = $db->sql_fetchrow($result);

$showuploadedfiles = $row['showuploaded'];
$userdirectories = $row['userdirectories'];
// Setting Directory
OpenTable();
$supload_dir = $row['uploaddirectory'];
if ($supload_dir == "") {
echo "<div align=\"center\"><FONT class=title>"._ERROR."</FONT></div>";
echo "<br>";
echo ""._NOUPLOADDIRECTORY."";
CloseTable();
include('footer.php');
exit();
}

$username = $cookie[1];
if ($username == "") {
$username = "Guest";
}

if($userdirectories == "1") {
$upload_dir = "".$supload_dir."";
} else {
$upload_dir = "".$supload_dir."".$username."/";
}

// Create Directory if it doesn't Exsist
if (!is_dir("$supload_dir")) {
echo "<center><b><span style='font-size:9pt;'>Votre Galerie Privée</span></b><br><br>Votre galerie n'existe pas encore... elle va s'auto-créer maintenant.";
mkdir("$supload_dir");
chmod("$supload_dir", 0777);
echo "<br><br>";
echo "<meta http-equiv=\"refresh\" content=\"5;url='modules.php?name=Galerie'\">";

CloseTable();
include('footer.php');
exit();
}
if (!is_dir("$upload_dir")) {

echo "<center><b><span style='font-size:9pt;'>Votre Galerie Privée</span></b><br><br>Votre galerie n'existe pas encore... elle va s'auto-créer maintenant.";
mkdir("$upload_dir");
chmod("$upload_dir", 0777);
echo "<br><br>";
echo "<meta http-equiv=\"refresh\" content=\"5;url='modules.php?name=Galerie'\">";
CloseTable();
include('footer.php');
exit();
}

CloseTable();
OpenTable();




echo"<div id=\"centre\">
<div id=\"menu_gallerie\">
<a href=\"#\" class=\"lien_menu\" onclick=\"javascript:montre('menu_2');\" onmouseout=\"affiche_action('description_action');\"><img src=\"modules/Galerie/gabary_2/supprimer_categorie.png\" alt=\"\" /></a>
<a href=\"#\" class=\"lien_menu\" onclick=\"javascript:montre('menu_3');\" onmouseout=\"affiche_action('description_action');\"><img src=\"modules/Galerie/gabary_2/uploader_image.png\" alt=\"\" /></a>
<a href=\"#\" class=\"lien_menu\" onclick=\"javascript:montre('menu_4');\" onmouseout=\"affiche_action('description_action');\"><img src=\"modules/Galerie/gabary_2/renommer_categorie.png\" alt=\"\" /></a>
<a href=\"#\" class=\"lien_menu\" onclick=\"javascript:montre('menu_5');\" onmouseout=\"affiche_action('description_action');\"><img src=\"modules/Galerie/gabary_2/btn_consulter.png\" alt=\"\" /></a>
</div>";

//creer album.
echo"<div id=\"centre\">
<fieldset><legend>Ajout d'un nouvelle album</legend>
<p class=\"mef_form\"><label>Nom de votre nouvelle album :</label><input type=\"text\" name=\"nouvelle_categorie\" id=\"nouvelle_categorie\" /></p><br /><input type=\"hidden\" name=\"username\" value=\"$username \">
<label> </label><input type=\"button\" value=\"Ajouter\" onclick=\"nom=document.getElementById('nouvelle_categorie').value ; ajouter_cat(nom)\"/><br />
</fieldset><div id=\"reponse_1\"></div></div>";




CloseTable();

}
}
include("footer.php");

merci pour ton aide bonne soirée
0
function ajouter_cat(nom) {
var xmlhttp = getHTTPObject();
var element1 = document.getElementById('reponse_1');
element1.innerHTML = "<img src=\"modules/Galerie/gabary_2/indicator.gif\" /> Patienter pendant la création de votre catégorie";
xmlhttp.open("GET", 'modules/Galerie/ajouter_categorie.php?nouvelle_categorie='+nom);
vider_cache(xmlhttp);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
element1.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
et ya rien a faire avec le hidden ?
bonne soirée
0
Utilisateur anonyme
9 août 2012 à 18:00
Maintenant que tu as donné tout ce code, ou voit-on l'appel à la page qui crée ta nouvelle catégorie ?
D'après ce que j'ai cru comprendre, ça se passerait dans la fonction javascript ajouter_cat, mais tu n'as pas donné le source de cette fonction.
Ça expliquerait bien ton problème : cette fonction reçoit bien le nom de la nouvelle catégorie, mais pas le username. Donc il n'y a aucune raison de le retrouver dans la page d'arrivée.
Peux-tu donner le source de ajouter_cat ? il faudra la modifier pour qu'elle accepte un autre paramètre, et modifier son appel pour lui passer la catégorie ET le username.
0
function ajouter_cat(nom) {
var xmlhttp = getHTTPObject();
var element1 = document.getElementById('reponse_1');
element1.innerHTML = "<img src=\"modules/Galerie/gabary_2/indicator.gif\" /> Patienter pendant la création de votre catégorie";
xmlhttp.open("GET", 'modules/Galerie/ajouter_categorie.php?nouvelle_categorie='+nom);
vider_cache(xmlhttp);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
element1.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
bonne soiree
0
Utilisateur anonyme
9 août 2012 à 22:14
<input type=\"button\" value=\"Ajouter\" onclick=\"nom=document.getElementById('nouvelle_categorie').value ; ajouter_cat(nom)\"/><br />
</fieldset><div id=\"reponse_1\">
et
...ajouter_categorie.php?nouvelle_categorie='+nom); 

Ce code montre bien que tu ne passes à ajouter_categorie.php QUE la valeur nouvelle_categorie.
Il suffit d'ajouter le username dans la fonction, mais aussi dans l'appel à la fonction
d'où les modifications à faire :

1 - supprimer le champ hidden username, il ne sert à rien puisque ton formulaire n'en est pas un, il n'utilise pas le mécanisme normal des formulaires HTML.
2 -
<input type=\"button\" value=\"Ajouter\" onclick=\"nom=document.getElementById('nouvelle_categorie').value ; ajouter_cat(nom,'$username')\"/><br />

3 -
function ajouter_cat(nom,username) { 
...
xmlhttp.open("GET", 'modules/Galerie/ajouter_categorie.php?nouvelle_categorie='+nom+'&username='+username); 


Une autre possibilité, qui selon moi est la meilleure, aurait été de ne pas ajouter de champ hidden, de ne modifier aucune fonction ni appel, mais d'utiliser les sessions. Elles permettent de passer une variable d'une page à une autre de manière beaucoup plus simple. Je t'explique la méthode :

Il faut mettre session_start(); au début de chaque page php.
index.php, tu ne mets pas de champ hidden, mais tu fais $_SESSION['username']=$username; pour enregistrer ta variable
Pour récupérer la valeur dans l'autre page, tu fais simplement $username=$_SESSION['username']; au lieu de $username=$_GET['username'];.
Tu peux facilement passer comme ça toutes les variables que tu veux.
0
bonsoir
enfin on peut voir le username dans la BDD
merçi mille fois 10000 fois
en plus je l'avais ecrit se code mais pas de partout juste dans le js
grrrrr.
donc si jai bien compris
dans l 'index php au debut du php apres le <? php

session_star();
$_SESSION['1']=$1;
$_SESSION['2']=$2;
$_SESSION['3']=$3;

et dans les pages php
session_star();
$1=$_SESSION['1'];
$2=$_SESSION['2'];
$3=$_SESSION['3'];

cest cela messieur?
enfin mille merçi et pleins de bonne chose pour toi et ton entourage
cordialement
0
Utilisateur anonyme
10 août 2012 à 17:01
C'est presque ça...
C'est session_starT() avec un T à la fin
$1, $2, etc... ne sont pas des noms de variables autorisés en php (le nom doit commencer par une lettre)

Autres détails : le session_start() existe peut-être déjà dans les fichiers que tu inclus. Dans ce cas, il ne faut pas que toi tu en remettes un autre.
Ce session_start() doit être au début de chaque page avant l'envoi de données au client, donc avant tout echo et toute balise html. Une erreur classique consiste à laisser un espace ou une ligne vide avant le premier <?php : ça suffit pour que les sessions ne marchent plus.
0