Espace sécurisé : erf

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Espace sécurisé : erf

par Cyrano » 16 août 2005, 11:02

Fais donc afficher ta variable $_POST avec:
<pre>
<?php
var_dump($_POST);
?>
</pre>

par `Jun!or » 16 août 2005, 11:00

Voila je crois avoir trouve l'origine du problème.
if (isset($_POST['pseudo']) AND isset($_POST['prenom']) AND isset($_POST['age']) AND isset($_POST['ville']) AND isset($_POST['pays']) AND isset($_POST['msn']) AND isset($_POST['processeur']) AND isset($_POST['memoire']) AND isset($_POST['cm']) AND isset($_POST['cg']) AND isset($_POST['resolution_win']) AND isset($_POST['son']) AND isset($_POST['souris']) AND isset($_POST['clavier']) AND isset($_POST['connexion']) AND isset($_POST['sensi_win']) AND isset($_POST['resolution_cs']) AND isset($_POST['sensi_cs']) AND isset($_POST['armes']))
Quand je met
if (isset($_POST['pseudo']))

Ca marche mais dès que je met
if (isset($_POST['pseudo']) AND isset($_POST['prenom']))
Ca marche pas

Voilà, donc j'ai trouver que dans ajout_membres.php les name des input était sur "titre" sauf pour le pseudo

EDIT :
Maintenant tout fonctionne
Merci pour l'aide

par Cyrano » 16 août 2005, 10:59

Qu'est-ce qui s'affiche exactement ?

par Cyrano » 16 août 2005, 10:47

Donc.... :?:

par `Jun!or » 16 août 2005, 10:40

Malheuresement rien ne s'affiche quand j'ajoute un membre ( comme c'est un INSERT )...

par Cyrano » 16 août 2005, 10:34

Pourquoi ré-écris-tu la requête alors qu'elle est définie une première fois dans une variable: utilise donc la variable:
$sql = "INSERT INTO team VALUES('', '" . $pseudo . "', '" . $prenom . "', '" . $age . "', '" . $ville . "', '" . $pays . "', '" . $msn . "', '" . $processeur . "', '" . $memoire . "', '" . $cm . "', '" . $cg . "', '" . $resolution_win . "', '" . $son . "', '" . $souris . "', '" . $clavier . "', '" . $connexion . "', '" . $sensi_win . "', '" . $resolution_cs . "', '" . $sensi_cs . "', '" . $armes . "')";
echo("<p>". $sql ."</p>\n");

mysql_query($sql) or die (mysql_error());
Et ce qui nous intéresse, c'est ce que ça va afficher à l'écran, donc la ligne echo() qui te permettra de visualiser la requête générée.

par `Jun!or » 16 août 2005, 10:27

$sql = "INSERT INTO team VALUES('', '" . $pseudo . "', '" . $prenom . "', '" . $age . "', '" . $ville . "', '" . $pays . "', '" . $msn . "', '" . $processeur . "', '" . $memoire . "', '" . $cm . "', '" . $cg . "', '" . $resolution_win . "', '" . $son . "', '" . $souris . "', '" . $clavier . "', '" . $connexion . "', '" . $sensi_win . "', '" . $resolution_cs . "', '" . $sensi_cs . "', '" . $armes . "')";
echo("<p>". $sql ."</p>\n");

mysql_query("INSERT INTO team VALUES('', '" . $pseudo . "', '" . $prenom . "', '" . $age . "', '" . $ville . "', '" . $pays . "', '" . $msn . "', '" . $processeur . "', '" . $memoire . "', '" . $cm . "', '" . $cg . "', '" . $resolution_win . "', '" . $son . "', '" . $souris . "', '" . $clavier . "', '" . $connexion . "', '" . $sensi_win . "', '" . $resolution_cs . "', '" . $sensi_cs . "', '" . $armes . "')") or die (mysql_error());
De cette façon ?

par `Jun!or » 16 août 2005, 10:24

Je viens d'essayer ce que tu as fais et apparemment la requête est normal. Je vais essayer ta méthode.

par Cyrano » 16 août 2005, 10:13

Exemple. À la place de la ligne:
$retour = mysql_query("SELECT * FROM team WHERE id=" . $_GET['modifier_membres'] ." LIMIT 0,1") or die (mysql_error());
Ajoute :
$sql = "SELECT * FROM team WHERE id=" . $_GET['modifier_membres'] ." LIMIT 0,1";
echo("<p>". $sql ."</p>\n");
$retour = mysql_query("SELECT * FROM team WHERE id=" . $_GET['modifier_membres'] ." LIMIT 0,1") or die (mysql_error());
Ça va afficher la requête générée à l'écran. Tu auras un premier aperçu qui te permettra de détecter une variable vide par exemple. Sinon, si la requête a l'air normale, copie-la et essaye de l'exécuter directement dans phpMyAdmin, tu auras le retour directement. Si le retour est normal, alors c'est après ces ligne qu'il y a une erreur.

par `Jun!or » 16 août 2005, 09:52

Désolé de te le dire mais j'ai pas tout compris dans ce que tu viens de me dire :(

par Cyrano » 16 août 2005, 09:49

Quand tu as ce genre de problème, procède avec ordre et méthode: fais afficher ce qui peut l'être. Par exemple, ta requête étant dynamique, fais afficher la requête générée pour vérifier qu'elle est correctement complétée. S'il manque quelque chose, alors tu sauras que c'est en amont de la requête qu'il y a un problème. Si elle est correcte, alors c'est la suite qui déconne. Fais afficher les variables qui peuvent l'être pour en vérifier le contenu.

par `Jun!or » 16 août 2005, 09:36

Malheuresement ca ne marche toujours pas. J'ai test en alimentant moi même la table avec phpmyadmin et la ca marche donc ca ne vient pas de la. :?

Merci pour l'effort que tu fais pour m'aider :P

par Cyrano » 16 août 2005, 08:56

essaye ça:
<?php
if (isset($_GET['modifier_membres'])) // Si on demande de modifier un membre
{
    // On récupère les infos
    $retour = mysql_query("SELECT * FROM team WHERE id=" . $_GET['modifier_membres'] ." LIMIT 0,1") or die (mysql_error());
    while($infos = mysql_fetch_array($retour))
    {
        // On place tous dans des variables simples
        $pseudo = $infos['pseudo'];
        $prenom = $infos['prenom'];
        $age = $infos['age'];
        $ville = $infos['ville'];
        $pays = $infos['pays'];
        $msn = $infos['msn'];
        $processeur = $infos['processeur'];
        $memoire = $infos['memoire'];
        $cm = $infos['cm'];
        $cg = $infos['cg'];
        $resolution_win = $infos['resolution_win'];
        $son = $infos['son'];
        $souris = $infos['souris'];
        $clavier = $infos['clavier'];
        $connexion = $infos['connexion'];
        $sensi_win = $infos['sensi_win'];
        $resolution_cs = $infos['resolution_cs'];
        $sensi_cs = $infos['sensi_cs'];
        $armes = $infos['armes'];
        $id_membres = $infos['id']; // Cette variable va servir pour se souvenir que c'est une modification
    }
}
?>

par `Jun!or » 15 août 2005, 23:52

Voilà, maintenant je suis passé à l'ajout de membres par une zone admin et j'ai un problème lors d'une modification de membres ou d'ajout.
Il se compose de deux pages : liste_membres.php et ajout_membres.php

Voici liste_membres.php:
<? include 'secure.php' ?>
<a href="adminkrypton.php?page=ajout_membres">Ajouter un membres</a>

<?
mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("host");

//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut ajouter un membre ?
//-----------------------------------------------------

if (isset($_POST['pseudo']) AND isset($_POST['prenom']) AND isset($_POST['age']) AND isset($_POST['ville']) AND isset($_POST['pays']) AND isset($_POST['msn']) AND isset($_POST['processeur']) AND isset($_POST['memoire']) AND isset($_POST['cm']) AND isset($_POST['cg']) AND isset($_POST['resolution_win']) AND isset($_POST['son']) AND isset($_POST['souris']) AND isset($_POST['clavier']) AND isset($_POST['connexion']) AND isset($_POST['sensi_win']) AND isset($_POST['resolution_cs']) AND isset($_POST['sensi_cs']) AND isset($_POST['armes']))
{
    $pseudo = ($_POST['pseudo']);
	$prenom = ($_POST['prenom']);
    $age = ($_POST['age']);
	$ville = ($_POST['ville']);
	$pays = ($_POST['pays']);
	$msn = ($_POST['msn']);
	$processeur = ($_POST['processeur']);
	$memoire = ($_POST['memoire']);
	$cm = ($_POST['cm']);
	$cg = ($_POST['cg']);
	$resolution_win = ($_POST['resolution_win']);
	$son = ($_POST['son']);
	$souris = ($_POST['souris']);
	$clavier = ($_POST['clavier']);
	$connexion = ($_POST['connexion']);
	$sensi_win = ($_POST['sensi_win']);
	$resolution_cs = ($_POST['resolution_cs']);
	$sensi_cs = ($_POST['sensi_cs']);
	$armes = ($_POST['armes']);
	
    // On vérifie si c'est une modification de membre ou pas
    if ($_POST['id_membres'] == 0)
    {
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
        mysql_query("INSERT INTO team VALUES('', '" . $pseudo . "', '" . $prenom . "', '" . $age . "', '" . $ville . "', '" . $pays . "', '" . $msn . "', '" . $processeur . "', '" . $memoire . "', '" . $cm . "', '" . $cg . "', '" . $resolution_win . "', '" . $son . "', '" . $souris . "', '" . $clavier . "', '" . $connexion . "', '" . $sensi_win . "', '" . $resolution_cs . "', '" . $sensi_cs . "', '" . $armes . "')") or die (mysql_error());
    }
    else
    {
        // C'est une modification, on met juste à jour 
        mysql_query("UPDATE team SET pseudo='" . $pseudo . "', prenom='" . $prenom . "', age='" . $age . "', ville='" . $ville . "', pays='" . $pays . "', msn='" . $msn . "', processeur='" . $processeur . "', memoire='" . $memoire . "', cm='" . $cm . "', cg='" . $cg . "', resolution_win='" . $resolution_win . "', son='" . $son . "', souris='" . $souris . "', clavier='" . $clavier . "', connexion='" . $connexion . "', sensi_win='" . $sensi_win . "', resolution_cs='" . $resolution_cs . "', sensi_cs='" . $sensi_cs . "', armes='" . $armes . "' WHERE id=" . $_POST['id_membres']) or die (mysql_error());
    }
}


//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer un membre ?
//--------------------------------------------------------

if (isset($_GET['supprimer_membres'])) // Si on demande de supprimer un membre
{
    // Alors on supprime le membre correspondant
    mysql_query('DELETE FROM team WHERE id=' . $_GET['supprimer_membres']);
}
?>

<table>
<tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Pseudo</th>
</tr>

<?
$retour = mysql_query('SELECT * FROM team ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les membres
{
?>

<tr>
<td><? echo '<a href="adminkrypton.php?page=ajout_membres&modifier_membres=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><? echo '<a href="adminkrypton.php?page=listings_membres_team&supprimer_membres=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><? echo stripslashes($donnees['pseudo']); ?></td>
</tr>

<?
} // Fin de la boucle qui liste les membres
?>
</table>
Voici ajout_membres.php :
<? include 'secure.php'; ?>
<a href="adminkrypton.php?page=listings_membres_team">Retour à la liste des membres</a>
<?
mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("host");

if (isset($_GET['modifier_membres'])) // Si on demande de modifier un membre
{
    // On récupère les infos
    $retour = mysql_query('SELECT * FROM team WHERE id=' . $_GET['modifier_membres']) or die (mysql_error());
    $infos = mysql_fetch_array($retour) or die (mysql_error());
    
    // On place tous dans des variables simples
    $pseudo = $infos['pseudo'];
	$prenom = $infos['prenom'];
	$age = $infos['age'];
	$ville = $infos['ville'];
	$pays = $infos['pays'];
	$msn = $infos['msn'];
	$processeur = $infos['processeur'];
	$memoire = $infos['memoire'];
	$cm = $infos['cm'];
	$cg = $infos['cg'];
	$resolution_win = $infos['resolution_win'];
	$son = $infos['son'];
	$souris = $infos['souris'];
	$clavier = $infos['clavier'];
	$connexion = $infos['connexion'];
	$sensi_win = $infos['sensi_win'];
	$resolution_cs = $infos['resolution_cs'];
	$sensi_cs = $infos['sensi_cs'];
	$armes = $infos['armes'];
    $id_membres = $infos['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on ajoute un membre
{
    // Les variables sont vides, puisque c'est un nouveau membres
    $pseudo = '';
	$prenom = '';
	$age = '';
	$ville = '';
	$pays = '';
	$msn = '';
	$processeur = '';
	$memoire = '';
	$cm = '';
	$cg = '';
	$resolution_win = '';
	$son = '';
	$souris = '';
	$clavier = '';
	$connexion = '';
	$sensi_win = '';
	$resolution_cs = '';
	$sensi_cs = '';
	$armes = '';
	$id_membres = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>

<form action="adminkrypton.php?page=listings_membres_team" method="post">
<p>Pseudo : <input type="text" size="30" name="pseudo" value="<? echo $pseudo; ?>" /></p>
<p>Prénom : <input type="text" size="30" name="titre" value="<? echo $prenom; ?>" /></p>
<p>Age : <input type="text" size="30" name="titre" value="<? echo $age; ?>" /></p>
<p>Ville : <input type="text" size="30" name="titre" value="<? echo $ville; ?>" /></p>
<p>Pays : <input type="text" size="30" name="titre" value="<? echo $pays; ?>" /></p>
<p>MSN : <input type="text" size="30" name="titre" value="<? echo $msn; ?>" /></p>
<p>Processeur : <input type="text" size="30" name="titre" value="<? echo $processeur; ?>" /></p>
<p>Mémoire : <input type="text" size="30" name="titre" value="<? echo $memoire; ?>" /></p>
<p>Carte mère : <input type="text" size="30" name="titre" value="<? echo $cm; ?>" /></p>
<p>Carte graphique : <input type="text" size="30" name="titre" value="<? echo $cg; ?>" /></p>
<p>Resolution Windows : <input type="text" size="30" name="titre" value="<? echo $resolution_win; ?>" /></p>
<p>Carte son : <input type="text" size="30" name="titre" value="<? echo $son; ?>" /></p>
<p>Souris : <input type="text" size="30" name="titre" value="<? echo $souris; ?>" /></p>
<p>Clavier : <input type="text" size="30" name="titre" value="<? echo $clavier; ?>" /></p>
<p>Connexion : <input type="text" size="30" name="titre" value="<? echo $connexion; ?>" /></p>
<p>Sensibilité Windows : <input type="text" size="30" name="titre" value="<? echo $sensi_win; ?>" /></p>
<p>Resolution Cs : <input type="text" size="30" name="titre" value="<? echo $resolution_cs; ?>" /></p>
<p>Sensibilité Cs : <input type="text" size="30" name="titre" value="<? echo $sensi_cs; ?>" /></p>
<p>Armes : <input type="text" size="30" name="titre" value="<? echo $armes; ?>" /></p>
    <input type="hidden" name="id_membres" value="<? echo $id_membres; ?>" />
    <input type="submit" value="Envoyer" />
</form>
Lorsque je modifie ou ajout un membre aucune erreur SQL se produit malgrès les mysql_error() donc ca ne vient pas de la je pense. Je ne trouve pas du tout mon erreur. Pourriez-vous de nouveau m'aider? Merci

par `Jun!or » 15 août 2005, 18:06

Il reste un session_start surnuméraire :
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/4/4/teampowa/krypton/modules.php:6) in /var/www/free.fr/4/4/teampowa/krypton/themes/balise.php on line 3
J'ai édité mon post suivant, je n'ai plus ce message maintenant :) . Mais maintenant pour me facilité la tache, enfin pour trouver mon problème, j'ai crée un dossier sur mon FTP avec ma page de connection (auth.php) , de vérification des infos ( verif.php ), et de la page secure.php ainsi qu'une page sécurisé par secure.php

Mais j'ai l'impression que sur la page il ne recupère pas la session :?

EDIT :
J'ai compris l'origine du problème, dans le secure.php, j'ai mis dans $_SESSION un mauvais nom, j'ai mis login a la place de user_name.
Maintenant ca marche à 100%