Page 1 sur 1

Agrémenter

Posté : 09 juin 2012, 19:02
par Asicoo
Bonjour,

Je souhaite agrémenter dans une boucle while :

j'ai donc fait $i = $i + 1;

et echo $i; pour afficher dans l'affichage mais


Notice: Undefined variable: i in C:\wamp\www\www\A\Rank_Player.php on line 101

Je précise que cela m'affiche bien 1 , 2 ,3,4 etc...
Mais juste au dessus de tout ça, l'erreur.

Merci :D

Re: Agrémenter

Posté : 09 juin 2012, 19:45
par xTG
Problème de portée de variable je dirai ou de déclaration.
Tu l'as initialisée ta variable avant de faire :
$i = $i + 1;

Re: Agrémenter

Posté : 09 juin 2012, 19:46
par Asicoo
Je savais pas trop quoi faire justement pour faire ça et j'ai trouvé ce petit morceau de code x) :x
La 1ère fois que j'utilise ce genre de variable

Re: Agrémenter

Posté : 09 juin 2012, 20:35
par xTG
Bah c'est un entier, donc un petit :
$i = 0;

Re: Agrémenter

Posté : 09 juin 2012, 20:41
par Asicoo
J'y avais pensé x)
Mais du coup tout reste sur 1...

Re: Agrémenter

Posté : 09 juin 2012, 21:24
par xTG
Tu connais le concept d'une boucle ? C'est que ça itère X fois sur son contenant...
Donc si tu mets l'initialisation dans la boucle... J'ai besoin de développer la suite ? :D

Re: Agrémenter

Posté : 09 juin 2012, 21:35
par Asicoo
Ah bah voilà :)
Merci en tout cas,

Mais une dernière question, sur mon tableau qui est un classement il a plusieurs page, quand je fais page suivante, cela retourne à 1, or je souhaite que cela me mette 6 et non 1 ^^
Sinon sa fonctionne à part ce petit détailles

Re: Agrémenter

Posté : 09 juin 2012, 22:05
par xTG
C'est juste un problème de maths.
Sur la page 1 tu initialises à 0 * N .
Sur la page 2 tu initialises à 1 * N.
Sur la page 3 tu initialises à 2 * N.
N étant le nombre par page - 1 (vu qu'on commence à zéro).
Te restes plus qu'à coder cela. ;)

Re: Agrémenter

Posté : 09 juin 2012, 22:19
par Asicoo
Héhé Merci :D

$N = ($Page-1)*$RcL['Rank_Player'];
et echo $N + $1

Sa Fonctionne :)
Par contre c'est un $_GET donc du coup tout passe par l'url,
Rank_Player.php?P=2
Si je remplace 2 par une lettre ou autre,
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-5,5' at line 1
Je veux empêcher celà comment faire :x

Re: Agrémenter

Posté : 09 juin 2012, 22:31
par xTG
Toujours vérifier le type de ce que tu attends avant de l'utiliser. ;)
Regardes du côté des filters qui sont assez puissants : http://fr2.php.net/filter
Ou bien t'as des tas d'autres méthodes.
Par exemple pour un entier :
if( !is_int($var) )
  $var = 0; // tu réinitialises la variable

Re: Agrémenter

Posté : 10 juin 2012, 00:09
par Asicoo
J'ai du mal à utiliser le type :x

La page doit être comprise entre 1 & x; x peut être grand x)
Si la $_GET est différent d'une valeur numérique alors on retourne à P=1


Je veux faire compliquer quand c'est simple ><



A t-il vraiment un risque ? Le ?P=1 ne fait que montrer une page.
Aucun risque BDD ?

Re: Agrémenter

Posté : 10 juin 2012, 09:53
par xTG
C'est à dire ? Je n'ai pas compris où tu voulais en venir.

Re: Agrémenter

Posté : 10 juin 2012, 10:11
par Asicoo
Laisse tomber ce que j'ai dis plus haut ^^

$P = mysql_real_escape_string(htmlentities(strip_tags($_GET['P']))) //J'ai abusé sur sa x)
$tests = array($P);
foreach ($tests as $element) {
    if (is_numeric($element)) {
// OK
    } else {

// PAS OK
header('location: Rank_Player.php?P=1');
    }
}
Cela me protège t'il correctement ?

Re: Agrémenter

Posté : 10 juin 2012, 12:59
par xTG
Belle usine à gaz... J'ose espérer que tu n'étudies pas dans le nucléaire. :P
Ceci suffit :
if( !is_numeric($_GET['P']) ){
  $_GET['P'] = 1;
}
$P = mysql_real_escape_string($_GET['P']);