par
Morph » 24 juin 2007, 19:26
Mon formulaire doit pointer vers une nouvelle page.
Je réexplique en détail:
L'utilisateur arrive en premier lieu sur emp2.php
<?php
session_start();
// on se connecte à MySQL
$db = mysql_connect('localhost', 'Morph', '*******');
// on sélectionne la base
mysql_select_db('my_db',$db);
$sql = "select piece from accounts where login='". $_SESSION['login'] ."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
$piece = $data['piece'];
if($piece==0)
{
echo 'Vous n\'avez pas de piece';
}
elseif($piece>=10 && $piece<20)
{
include('choix_personnage.php');
}
elseif($piece>=20 && $piece<30)
{
include('choix_personnage2.php');
}
elseif($piece>=30& $piece<80)
{
include('choix_personnage3.php');
}
elseif($piece>=80& $piece<150)
{
include('choix_personnage4.php');
}
?>
emp.php appelle (avec include) le formulaire choix_personnage.php :
<form action="gold.php" method='post'>
<table align="center" border="0">
<tr>
<TD>Votre choix:</TD>
<TD>
<SELECT name="fonction">
<OPTION VALUE="50">50 pièces d'or</OPTION>
<OPTION VALUE="110">110 pièces d'or</OPTION>
<OPTION VALUE="200">200 pièces d'or</OPTION>
<OPTION VALUE="500">500 pièces d'or</OPTION>
</SELECT>
</TD>
Personnage : <input type="text" name="characters" size="12">
<tr>
<td colspan="2" align="center"><input type="submit" value="ok"></td>
</tr>
</table>
</form>
Jusqu'ici l'utilisateur voit sur son écran le formulaire
Et lorsqu'il clique sur ok, normalement, et je dis bien normalement il est dirigé vers la page gold.php :
<?php
session_start();
/* Récupération des données envoyées */
$montant = isset($_POST['fonction']) ? $_POST['fonction'] : 0;
$nom = isset($_POST['characters']) ? $_POST['characters'] : "";
/* Si les valeurs sont valides... */
if($montant > 0 && !empty($nom))
{
// on se connecte à MySQL
$db = mysql_connect('localhost', 'Morph', '*********');
// on sélectionne la base
mysql_select_db('my_db',$db);
// Définition de la requête SQL
$sql = "UPDATE characters SET gold = gold + ". $montant ." WHERE name='". $nom ."'";
/* Affichage de débuggage */
echo("<pre>\n");
var_dump($sql);
echo("</pre>\n");
/* Fin de débuggage */
mysql_query($sql) or die("Erreur d'exécution. MySQL a retourné l'erreur ". mysql_error());
// la variable de session nom est enregistrée
echo '<br>FELICITATION le personnage ' .$nom;
echo '<br>a recu son or ';
}
else
{
echo 'dsl erreur;
}
?>
Et l'utilisateur doit normalement voir à l'écran "FELICITATION le personnage x a recu son or" ou "désolé erreur". Or, nous ne voyons rien de cela à l'écran et après avoir cliqué sur ok, c'est le formulaire qui nous reste sous les yeux. Une seule chose change, c'est l'url qui passe de
http://localhost/.../emp2.php/ à
http://localhost/.../emp2.php/gold.php/
Mon formulaire doit pointer vers une nouvelle page.
Je réexplique en détail:
L'utilisateur arrive en premier lieu sur emp2.php
[php]<?php
session_start();
// on se connecte à MySQL
$db = mysql_connect('localhost', 'Morph', '*******');
// on sélectionne la base
mysql_select_db('my_db',$db);
$sql = "select piece from accounts where login='". $_SESSION['login'] ."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
$piece = $data['piece'];
if($piece==0)
{
echo 'Vous n\'avez pas de piece';
}
elseif($piece>=10 && $piece<20)
{
include('choix_personnage.php');
}
elseif($piece>=20 && $piece<30)
{
include('choix_personnage2.php');
}
elseif($piece>=30& $piece<80)
{
include('choix_personnage3.php');
}
elseif($piece>=80& $piece<150)
{
include('choix_personnage4.php');
}
?>[/php]
emp.php appelle (avec include) le formulaire choix_personnage.php :
[php]<form action="gold.php" method='post'>
<table align="center" border="0">
<tr>
<TD>Votre choix:</TD>
<TD>
<SELECT name="fonction">
<OPTION VALUE="50">50 pièces d'or</OPTION>
<OPTION VALUE="110">110 pièces d'or</OPTION>
<OPTION VALUE="200">200 pièces d'or</OPTION>
<OPTION VALUE="500">500 pièces d'or</OPTION>
</SELECT>
</TD>
Personnage : <input type="text" name="characters" size="12">
<tr>
<td colspan="2" align="center"><input type="submit" value="ok"></td>
</tr>
</table>
</form>
[/php]
Jusqu'ici l'utilisateur voit sur son écran le formulaire
Et lorsqu'il clique sur ok, normalement, et je dis bien normalement il est dirigé vers la page gold.php :
[php]<?php
session_start();
/* Récupération des données envoyées */
$montant = isset($_POST['fonction']) ? $_POST['fonction'] : 0;
$nom = isset($_POST['characters']) ? $_POST['characters'] : "";
/* Si les valeurs sont valides... */
if($montant > 0 && !empty($nom))
{
// on se connecte à MySQL
$db = mysql_connect('localhost', 'Morph', '*********');
// on sélectionne la base
mysql_select_db('my_db',$db);
// Définition de la requête SQL
$sql = "UPDATE characters SET gold = gold + ". $montant ." WHERE name='". $nom ."'";
/* Affichage de débuggage */
echo("<pre>\n");
var_dump($sql);
echo("</pre>\n");
/* Fin de débuggage */
mysql_query($sql) or die("Erreur d'exécution. MySQL a retourné l'erreur ". mysql_error());
// la variable de session nom est enregistrée
echo '<br>FELICITATION le personnage ' .$nom;
echo '<br>a recu son or ';
}
else
{
echo 'dsl erreur;
}
?>
[/php]
Et l'utilisateur doit normalement voir à l'écran "FELICITATION le personnage x a recu son or" ou "désolé erreur". Or, nous ne voyons rien de cela à l'écran et après avoir cliqué sur ok, c'est le formulaire qui nous reste sous les yeux. Une seule chose change, c'est l'url qui passe de http://localhost/.../emp2.php/ à http://localhost/.../emp2.php/gold.php/