erreur syntaxique

Eléphant du PHP | 66 Messages

04 oct. 2007, 14:41

J'ai cette erreur je pige pas trop le problème
Erreur : Erreur de syntaxe près de '' à la ligne 1
Voila mon code
<?php
$numg = $_GET['numgrpe'];

$sql = "Select * From photos where num_groupe=$numg";
$sql_exe = mysql_query($sql) or die('Erreur : ' . mysql_error());
while($Tab = mysql_fetch_array($sql_exe))
{ 
if($numg=1)
{
?>
  <tr>
    <td width="860" valign="top" align="center"><a href="photo.php?numphot=<?=$Tab["num_photo"];?>"><img  border="0" width="850" src="images/<?php echo $Tab['img_photo']; ?>"></a></td>
  </tr>
<?php
}
?>
   <tr>
    <td width="860" valign="top" align="center"><a href="photo.php?numphot=<?=$Tab["num_photo"];?>"><img  border="0" width="200" src="images/<?php echo $Tab['img_photo']; ?>"></a></td>
  </tr>
<? } ?>
[/quote]

d0m
Mammouth du PHP | 1141 Messages

04 oct. 2007, 14:52

imprime ta requete avant de l'executer pour voir l'erreur :
(et au passage sors ta variable!!!)
$sql = "Select * From photos where num_groupe=".$numg.";"; 
echo $sql;

Eléphant du PHP | 66 Messages

04 oct. 2007, 14:55

ça me donne ça :
Select * From photos where num_groupe=Erreur : Erreur de syntaxe près de '' à la ligne 1
Mais tu es sur de ta syntaxe pour l'extraction de la variable?

Pas que je remette en cause tes compétence.

Eléphant du PHP | 443 Messages

04 oct. 2007, 14:56

if($numg=1) 
encore une...

L'opérateur d'égalité en php c'est == ou === pour l'identité.
= c'est une affectation !!

sinon tu es sur de nous avoir fourni le début du script ou n'est-ce qu'une partie ?
Modifié en dernier par Tracker le 04 oct. 2007, 15:01, modifié 1 fois.

d0m
Mammouth du PHP | 1141 Messages

04 oct. 2007, 15:00

Mais tu es sur de ta syntaxe pour l'extraction de la variable?
oui, c'est juste de la concaténation (ta requete est une chaine).

Tu vois qu'en imprimant ta requête il n'y a rien derrière le égal donc $numg est vide.
Ton problème vient donc d'au dessus.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 oct. 2007, 15:03

De plus, c'est une grave faille de sécurité d'insérer une valeur provenant de l'utilisateur directement dans une requête.

Imagine que, pour une raison ou une autre, d'une manière ou d'une autre, $_GET['numgrpe'] contienne la chaine

Code : Tout sélectionner

"1; SELECT * FROM utilisateur"
Du coup, ton simple SELECT deviens une porte par laquelle un pirate peut tester l'existence de certaines tables "standard" (User, droit, admin, ...) et donc tenter une attaque sur ton site :?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 66 Messages

04 oct. 2007, 15:07

Merci c'est bon c'est résolu problème dans mon passage de variable dans ma page précédente

Merci