Page 1 sur 1

erreur syntaxique

Posté : 04 oct. 2007, 14:41
par Z3lg4dis
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]

Posté : 04 oct. 2007, 14:52
par d0m
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;

Posté : 04 oct. 2007, 14:55
par Z3lg4dis
ç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.

Posté : 04 oct. 2007, 14:56
par Tracker
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 ?

Posté : 04 oct. 2007, 15:00
par d0m
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.

Posté : 04 oct. 2007, 15:03
par zeus
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 :?

Posté : 04 oct. 2007, 15:07
par Z3lg4dis
Merci c'est bon c'est résolu problème dans mon passage de variable dans ma page précédente

Merci