Requette fausse

Eléphant du PHP | 110 Messages

18 oct. 2009, 09:03

Bonjour,

Hier j'ai fait un nouveau fichier qui permettez de modifier grâce a un formulaire des champ dans la bdd.

Malheureusement il modifie bien mais entraine une erreur quand du style :

Erreur de mise a jour !UPDATE joueurs SET exp4=exp4+(034), level4=level4+(0.34) WHERE pseudo='test'<br>Table 'boardpokemon.joueurs' doesn't exist

Voici mais deux fichié code php + formulaire :

adopter2.php
<?
include "../haut.php";
include "config.php";
include "menu.php";

//on récupère les données
$pseudo = htmlspecialchars($_SESSION['login_session']);
$imgpoke = $_POST['imgpoke'];
$place = $_POST['place'];

$requete = mysql_query("SELECT pseudo FROM joueurs WHERE pseudo='$pseudo'");
if ($requete != $_POST['pseudo'])
{
mysql_query("UPDATE joueurs SET ". $_POST['place'] ." = '". $_POST['imgpoke'] ."'");								
echo "<center><p>Vous avez bien capturer un pokémon !</p></center>";
}						
?>

</div>
<?
include "../bas.php";
?>
adopter.php
<?
session_start();
if(!isset($_SESSION['login_session'])) {die('Vous devez être enregistré pour accéder à cette partie du site');}
include "../haut.php";
include "config.php";
$pseudo = htmlspecialchars($_SESSION['login_session']);

?>
<div id="corps_top"><h1>Bienvenue sur la page Poké-élève</h1></div>
            <div id="corps_contenu">
			<center>
<form align="justify" width="100%" name="form1" method="post" action="adopter2.php">
<table border="2">
<TR>
	<TD>Capturer des pokémon</TD>
	<TD>
	<SELECT name="imgpoke">
		<OPTION VALUE="images/Roucool.png">Roucool</OPTION>
		<OPTION VALUE="images/Togepi.png">Togepi</OPTION>
		<OPTION VALUE="images/Kranidos.png">Kranidos</OPTION>
		<OPTION VALUE="images/Medhyena.png">Medhyena</OPTION>
		<OPTION VALUE="images/Kraknoix.png">Kraknoix</OPTION>
		<OPTION VALUE="images/Chenipan.png">Chenipan</OPTION>
		<OPTION VALUE="images/Hypotrempe.png">Hypotrempe</OPTION>
		<OPTION VALUE="images/Psykokwak.png">Psykokwak</OPTION>
		<OPTION VALUE="images/Scarhino.png">Scarhino</OPTION>
		<OPTION VALUE="images/Simularbre.png">Simularbre</OPTION>
	</SELECT>
	</TD>
</TR>

<TR>
	<TD>Pokéball</TD>
	<TD>
	<SELECT name="place">
		<OPTION VALUE="imgpoke">Pokéball 1</OPTION>
		<OPTION VALUE="imgpoke2">Pokéball 2</OPTION>
		<OPTION VALUE="imgpoke3">Pokéball 3</OPTION>
		<OPTION VALUE="imgpoke4">Pokéball 4</OPTION>
		<OPTION VALUE="imgpoke5">Pokéball 5</OPTION>
		<OPTION VALUE="imgpoke6">Pokéball 6</OPTION>
	</SELECT>
	</TD>
</TR>

<tr>
<td></td>
<td><input type="submit" name="Submit" value="Adopter un pokémon"></td>
</tr>
</table>
</form></center>
			</div>
			<?
include "../bas.php";
?>

Quand j'exécute les deux edopter puis level.php :
Level.php
<?


include "config.php";

$Mode = $_GET['mode'];
$pseudo = $_GET['pseudo'];

//on vérifie l'IP du joueurs
$ip_avant = mysql_query("SELECT * FROM ip_page WHERE pseudo='$pseudo'");
$result = mysql_fetch_array($ip_avant);
$result_ip_avant = $result['ip'];
if ($_SERVER["REMOTE_ADDR"]==$result_ip_avant)
{
include "../haut.php";
include "menu.php";
echo "<p>Vous avez déjà voté dans ces 12 dernières heures, merci de l'attention que vous portez à $pseudo.</p></div>";
include "../bas.php";
exit();
}
elseif ($_SERVER["REMOTE_ADDR"]!=$result_ip_avant)
{
//Fin de la vérif

// la j'ajoute ip pour qu'il ne revient pas après ce petit con
mysql_query("INSERT INTO ip_page SET ip = '". $_SERVER["REMOTE_ADDR"] ."', pseudo = '$pseudo'");
// Fin

/* POKEMON 1 */
if($Mode == 'poke'){
mysql_query("UPDATE joueurs SET exp=exp+(034), level=level+(0.34) WHERE pseudo='$pseudo'");
include "../haut.php";
include "menu.php";
echo "<center><p>Vous avez bien apporté votre contribution au dressage de $pseudo.</p></div></center>";
include "../bas.php";
}
/* FIN DU POKEMON 1 */

/* POKEMON 2 */
if($Mode == 'poke2'){
$SqlNoPng = "SELECT * FROM joueurs WHERE pseudo='".$pseudo."'";
$Resultat = mysql_query($SqlNoPng) or die('Erreur SQL !'.$SqlNoPng.'<br>'.mysql_error());
$Data = mysql_fetch_array($Resultat);                    
if($Data['imgpoke2'] == 'images/no.png')//-->Si le champ 'imgpoke2' est  égal à images/no.png alors pas d' Update
{
include "../haut.php";
include "menu.php";
echo "<center><p>Il n'y a pas de pokémon !</p></div></center>";
include "../bas.php";
}
else
{
include "../haut.php";
include "menu.php";
echo "<center><p>Vous avez bien apporté votre contribution au dressage de $pseudo.</p></div></center>";
include "../bas.php";
$SqlUpdate ="UPDATE joueurs SET exp2=exp2+(034), level2=level2+(0.34) WHERE pseudo='".$pseudo."'";
$Resultat_update = mysql_query($SqlUpdate) or die('Erreur de mise a jour !'.$SqlUpdate.'<br>'.mysql_error());
}
}
/* FIN DU POKEMON 2 */

/* POKEMON 3 */
if($Mode == 'poke3'){
$SqlNoPng = "SELECT * FROM joueurs WHERE pseudo='".$pseudo."'";
$Resultat = mysql_query($SqlNoPng) or die('Erreur SQL !'.$SqlNoPng.'<br>'.mysql_error());
$Data = mysql_fetch_array($Resultat);                    
if($Data['imgpoke3'] == 'images/no.png')//-->Si le champ 'imgpoke2' est  égal à images/no.png alors pas d' Update
{
include "../haut.php";
include "menu.php";
echo "<center><p>Il n'y a pas de pokémon !</p></div></center>";
include "../bas.php";
}
else
{
include "../haut.php";
include "menu.php";
echo "<center><p>Vous avez bien apporté votre contribution au dressage de $pseudo.</p></div></center>";
include "../bas.php";
$SqlUpdate ="UPDATE joueurs SET exp3=exp3+(034), level3=level3+(0.34) WHERE pseudo='".$pseudo."'";
$Resultat_update = mysql_query($SqlUpdate) or die('Erreur de mise a jour !'.$SqlUpdate.'<br>'.mysql_error());
}
}
/* FIN DU POKEMON 3 */

/* POKEMON 4 */
if($Mode == 'poke4'){
$SqlNoPng = "SELECT * FROM joueurs WHERE pseudo='".$pseudo."'";
$Resultat = mysql_query($SqlNoPng) or die('Erreur SQL !'.$SqlNoPng.'<br>'.mysql_error());
$Data = mysql_fetch_array($Resultat);                    
if($Data['imgpoke4'] == 'images/no.png')//-->Si le champ 'imgpoke2' est  égal à images/no.png alors pas d' Update
{
include "../haut.php";
include "menu.php";
echo "<center><p>Il n'y a pas de pokémon !</p></div></center>";
include "../bas.php";
}
else
{
include "../haut.php";
include "menu.php";
echo "<center><p>Vous avez bien apporté votre contribution au dressage de $pseudo.</p></div></center>";
include "../bas.php";
$SqlUpdate ="UPDATE joueurs SET exp4=exp4+(034), level4=level4+(0.34) WHERE pseudo='".$pseudo."'";
$Resultat_update = mysql_query($SqlUpdate) or die('Erreur de mise a jour !'.$SqlUpdate.'<br>'.mysql_error());
}
}
/* FIN DU POKEMON 4 */

/* POKEMON 5 */
if($Mode == 'poke5'){
$SqlNoPng = "SELECT * FROM joueurs WHERE pseudo='".$pseudo."'";
$Resultat = mysql_query($SqlNoPng) or die('Erreur SQL !'.$SqlNoPng.'<br>'.mysql_error());
$Data = mysql_fetch_array($Resultat);                    
if($Data['imgpoke5'] == 'images/no.png')//-->Si le champ 'imgpoke2' est  égal à images/no.png alors pas d' Update
{
include "../haut.php";
include "menu.php";
echo "<center><p>Il n'y a pas de pokémon !</p></div></center>";
include "../bas.php";
}
else
{
include "../haut.php";
include "menu.php";
echo "<center><p>Vous avez bien apporté votre contribution au dressage de $pseudo.</p></div></center>";
include "../bas.php";
$SqlUpdate ="UPDATE joueurs SET exp5=exp5+(034), level5=level5+(0.34) WHERE pseudo='".$pseudo."'";
$Resultat_update = mysql_query($SqlUpdate) or die('Erreur de mise a jour !'.$SqlUpdate.'<br>'.mysql_error());
}
}
/* FIN DU POKEMON 5 */

/* POKEMON 6 */
if($Mode == 'poke6'){
$SqlNoPng = "SELECT * FROM joueurs WHERE pseudo='".$pseudo."'";
$Resultat = mysql_query($SqlNoPng) or die('Erreur SQL !'.$SqlNoPng.'<br>'.mysql_error());
$Data = mysql_fetch_array($Resultat);                    
if($Data['imgpoke6'] == 'images/no.png')//-->Si le champ 'imgpoke2' est  égal à images/no.png alors pas d' Update
{
include "../haut.php";
include "menu.php";
echo "<center><p>Il n'y a pas de pokémon !</p></div></center>";
include "../bas.php";
}
else
{
include "../haut.php";
include "menu.php";
echo "<center><p>Vous avez bien apporté votre contribution au dressage de $pseudo.</p></div></center>";
include "../bas.php";
$SqlUpdate ="UPDATE joueurs SET exp6=exp6+(034), level6=level6+(0.34) WHERE pseudo='".$pseudo."'";
$Resultat_update = mysql_query($SqlUpdate) or die('Erreur de mise a jour !'.$SqlUpdate.'<br>'.mysql_error());
}}
/* FIN DU POKEMON 6 */
}

?>
Je me retrouve avec cette erreur :


Erreur de mise a jour !UPDATE joueurs SET exp4=exp4+(034), level4=level4+(0.34) WHERE pseudo='test'<br>Table 'boardpokemon.joueurs' doesn't exist

Alors que si je passais avant par level.php directement je n'aurais pas eu cette erreur

Le seul problème que je comprend pas c'est que dans haut.php ( il est appellé par level.php) il y a sa :
               	<?php
    define("IN_MYBB",1);
    chdir('../board');
	chdir('./board');	// path de MyBB
    require './global.php';

if($mybb->user['uid'])
{
// The user is logged in, say Hi
echo "<li><a href=\"/board\">Tu es connecté !</a></li>";
}
else
{
// The user is not logged in, Display the form
echo "<form action='../board/member.php' method='post'>
Username: <input type='text' name='username' size='25' maxlength='30' /><br />
Password: <input type='password' name='password' size='25' />
<input type='hidden' name='action' value='do_login'>
<input type='hidden' name='url' value='../index.php' />
<input type='submit' class='submit' name='submit' value='Se connecter' /></form><br>

<a href='../board/member.php?action=lostpw'><li>Mot de passe oublié ?</li></a><br>
<a href='../board/member.php?action=register'><li>Toujours pas Inscrit ?</li></a>

";
}
?>
Et c'est la qu'il trouve la base de donné board, mais je me dit c'est pas logique pourquoi quand j'exécute level.php sa fonctionne aucune erreur et quand je passe par les deux adopter et level.php il me chope la base de donné de mon forum et créer une erreur - - '


Donc voila, merci de m'aider.
Modifié en dernier par binboum le 18 oct. 2009, 09:19, modifié 1 fois.

ViPHP
ViPHP | 1136 Messages

18 oct. 2009, 09:19

Ta table "joueurs" existe t-elle ?

est tu certains de na pas avoir fait une faute de frappe , diff Maj Minuscule ect ...

Car à première vue , cette table n'existe pas .. enfin , pas sous ce nom .

Ch.

Eléphant du PHP | 110 Messages

18 oct. 2009, 09:24

J'ai éditer mon post relie bien tout ,

Mon fichier level.php a été revue par dunbar

php-debutant/requette-php-t250343.html

de ce coté il devrais pas avoir de problème.

Le seul problème c'est que quand j'exécute adopter + adopter2 + level.php il me trouve l'erreur

Je n'appelle pas la base de donné "boardpokémon" mais j'appelle bien "sitepokemon" !

Board pokémon doit être appellé du haut.php mais pourquoi il active que dans j'éxécute :
adopter + adopter2 + level.php

Eléphant du PHP | 369 Messages

18 oct. 2009, 09:38

Salut,
Bonjour,
Hier j'ai fait un nouveau fichier qui permettez de modifier grâce a un formulaire des champ dans la bdd.
Malheureusement il modifie bien mais entraine une erreur quand du style :
Erreur de mise a jour !UPDATE joueurs SET exp4=exp4+(034), level4=level4+(0.34) WHERE pseudo='test'<br>Table 'boardpokemon.joueurs' doesn't exist
Voici mais deux fichié code php + formulaire :
<?
include "../haut.php";
include "config.php";
include "menu.php";
.
.
.
[...]
Tu t'enquiquines vraiment pour rien: Les changes-dir c'est sympa mais provoquent un sacré
"merdier"... Implémente la fonction set_include_path c'est beacoup mieux. Ainsi tu gères
ton site à partir d'un endroit unique sans avoir à te poser de questions.

Donc, de ce fait, tu n'auras plus à descendre d'un répertoire ../FileName.php (d'autant
que tu ne sais pas, à priori, dans le quel tu es) mais simplement à indiquer le chemin ou se
trouve ton fichier à include ./Path/FileName.php et franchement c'est plus sympatique.

Ce peut même (pas sur, pas vérifié) que l'erreur relevé soit due à ca. Qu'une table soit notée
introuvable alors quelle existe: étrange lol... Oh, une idée à vérifier: Les casses. Es-tu sur
quelles sont identiques?

J'y go @+

PS: Pas persuadé qu'utiliser les Pokémons dans ce cadre soit "très" légal sans avoir demandé
l'autorisation... Mais c'est un autre débat.

EDIT: @stopher: Rah, tu m'as grillé... dsl, je t'ai un brin périphrasé sans le vouloir.

Eléphant du PHP | 110 Messages

18 oct. 2009, 09:44

Le problème vient bien du fichier haut.php et du script mybb qui doit certainement appelé le config de ma bdd,

Quand je vire include haut.php je n'est plus cette erreur.

ViPHP
ViPHP | 2291 Messages

18 oct. 2009, 12:12

Pour ici je suis le seul a être choquer :?:
UPDATE joueurs SET ". $_POST['place'] ." = '". $_POST['imgpoke'] ."'"
ET le fichier global.php' ont pourrais savoir se qu'il contient :?:

Code : Tout sélectionner

Le problème vient bien du fichier haut.php et du script mybb qui doit certainement appelé le config de ma bdd,
Et bin si tu cherche a savoir pourquoi et surtout se qu'il contient sa pourrais nous aider, parce attendre que l'on fasse ton boulot ne te fera pas avancer beaucoup
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 110 Messages

18 oct. 2009, 13:16

UPDATE joueurs SET ". $_POST['place'] ." = '". $_POST['imgpoke'] ."'"
Je suis pas choqué aucune erreur ^^

ViPHP
ViPHP | 2291 Messages

18 oct. 2009, 14:10

UPDATE joueurs SET ". $_POST['place'] ." = '". $_POST['imgpoke'] ."'"
Je suis pas choqué aucune erreur ^^
Normal tu ne les affiches pas

Pour une mise a jour :!:
SET champ_de _ta-table = valeur
Dans ton exemple le champ de ta table correspond a $_POST['place'] :-k
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 110 Messages

18 oct. 2009, 14:46

Oui mais pourquoi alors je n'est pas de rejet ?

Tout fonctionne, tien le lien si tu veux regardez par toi même.

http://pokemon-france.fr.nf/visite/

Login -> test, mdp : test

Va dans adoption et voie par toit même.

ViPHP
ViPHP | 2291 Messages

18 oct. 2009, 15:21

Comme tout fonctionne ou est le soucis alors :?:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 985 Messages

18 oct. 2009, 15:35

UPDATE joueurs SET ". $_POST['place'] ." = '". $_POST['imgpoke'] ."'"
Je suis pas choqué aucune erreur ^^
Avec un switch qui switchera suivant le post $_POST['place'] sur un champ déterminé
-> cela sera plus propre et plus sécurisé et évitera aussi de connaitre tous les champs de ta Table avec un simple: afficher la source de la page ...

Enfin en tout cas c'est ce que je fais personnellement, dans ce genre de cas :wink:
$imgpoke = $_POST['imgpoke'];
$place = $_POST['place'];

$requete = mysql_query("SELECT pseudo FROM joueurs WHERE pseudo='$pseudo'");
if ($requete != $_POST['pseudo'])
{
mysql_query("UPDATE joueurs SET ". $_POST['place'] ." = '". $_POST['imgpoke'] ."'");
Tu déclares des variables mais tu ne les utilises pas.
Ton update fonctionne peut-être de façon bancale mais il fonctionnera encore mieux, par exemple, avec un WHERE pseudo='$pseudo'"
...
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 369 Messages

18 oct. 2009, 16:27

Re,

Que donne la vérification des casses et as-tu essayé de traiter tes actions (comme proposé)
à partir de la racine du site?

@+

Eléphant du PHP | 110 Messages

18 oct. 2009, 16:31

Pour le souci j'ai suprimmé les haut.php

Mais pour adopter2.php oui j'ai un problème il remplace tout les tables par ce que le gars a choisis et pas celle du joueurs - - ' !!!

ViPHP
fab
ViPHP | 2657 Messages

18 oct. 2009, 17:09

Hum ce que voulait dire je pense en disant "table" c'est "enregistrement"!!

il faut que tu mettes un WHERE dans ta requete UPDATE pour transmettre l'identifiant de l'utilisateur
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 110 Messages

18 oct. 2009, 17:13

<?
session_start();
if(!isset($_SESSION['login_session'])) {die('Vous devez être enregistré pour accéder à cette partie du site');}
include "../haut.php";
include "config.php";
include "menu.php";

//on récupère les données
$pseudo = htmlspecialchars($_SESSION['login_session']);
$imgpoke = $_POST['imgpoke'];
$place = $_POST['place'];

if (($_POST["place"]) and ($_POST["imgpoke"]))  {



mysql_query("UPDATE joueurs SET imgpoke". $_POST['place'] ." = '". $_POST['imgpoke'] ."',
								level". $_POST['place'] ." = '0', exp". $_POST['place'] ." = '0'
								WHERE pseudo='".$pseudo."'");	
			
echo "<center><p>Vous avez bien capturer un pokémon !</p></center>";

} else {
    echo "<center><p>Tu as oublié des champs !";
}						
?>

</div>
<?
include "../bas.php";
?>
Voila j'ai remplacé par cela.