problème d'affichage

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème d'affichage

par MainMa » 12 avr. 2007, 20:33

C'est juste que j'ai l'impression en voyant la réponse du site sur un nom d'utilisateur et un mot de passe aléatoire que vous n'avez pas prévu la protection contre ce qui s'appelle SQL Injection (j'ignore le terme français).

Essayez de se connecter avec votre nom d'utilisateur habituel et le mot de passe (attention à bien respecter les apostrophes et les espaces ; pas d'apostrophes au début ni à la fin) :

a' OR '1' = '1

et voyez si ça marche. Si la connexion est réussie, alors effectivement vous avez oublié de se protéger contre SQL Injection.

par deborah » 12 avr. 2007, 09:25

oui MainMa, ma connexion administrateur marche, pourquoi?

par MainMa » 12 avr. 2007, 07:35

Si tu pe allé sur http://hotels-ghb.com [...]
Est-ce que la connexion administrateur marche déjà sur votre site ?... J'ai juste une petite remarque à faire à propos...

par guilt92 » 11 avr. 2007, 15:36

Ma méthode, évoquée au dessus, ne te parait elle pas plus simple a utiliser ?

par deborah » 11 avr. 2007, 15:16

Ca c'est la fonction $tab_mois

	function mois($nombre,$limite)
	{
		$a = new connectDb("root", "", "ghb", "localhost");
		
		$requetePlus = " 	SELECT Nom_Hotel, Nom_Ville, Nom_Departement, hotel_mois, Id_Hotel, Categorie_hotel
							FROM Hotel
							INNER JOIN Ville ON Ville.Id_Ville = Hotel.Ville_Id_Ville
							INNER JOIN Departement ON Departement.Id_Departement = Ville.Departement_Id_Departement
					  		WHERE hotel_mois = 1 AND Adherant_Hotel = 1
							ORDER BY Categorie_hotel ASC LIMIT $limite,$nombre";

		$resultat = mysql_query($requetePlus) or die("Erreur SQL".$requetePlus."<br />".mysql_error());

		$tab_mois = array ();
		$i = 0;
			while ($ligne = mysql_fetch_array($resultat, MYSQL_ASSOC)) {
			$tab_mois[$i] = $ligne;
			$i ++;
		}
		mysql_close();
		return $tab_mois;
	}

par guilt92 » 11 avr. 2007, 15:12

Ne serait-ce pas plus simple de faire un while($tab=mysql_fetch_array($resultat)) plutôt que de parcourir les tableaux avec des foreach ?

Si à chaque fois que tu récupères un hotel tu fais un
"select url from photo where Id_Hotel = $tab['Id_Hotel']"
ça me parait plus simple...

Comment crées tu $tab_photo_mois et $tab_mois ?

par deborah » 11 avr. 2007, 15:00

Si tu pe allé sur http://hotels-ghb.com et qd tu clique sur hotels du mois (par exemple) je vourdais afficher une photo du premier hotel et ainsi de suite.

Je peux te montrer comme j'execute ma requête :

Requête pour slectionner les photos
SELECT Url_Photo,Nom_Hotel,Nom_Photo,Extension_Photo,Id_Hotel FROM Photo 
INNER JOIN  Hotel ON  Hotel.Id_Hotel = Photo.Hotel_Id_Hotel 
WHERE hotel_mois = 1
Requête pour la selection de l'hotel du mois
SELECT Nom_Hotel, Nom_Ville, Nom_Departement, hotel_mois, Id_Hotel, Categorie_hotel
FROM Hotel
INNER JOIN Ville ON Ville.Id_Ville = Hotel.Ville_Id_Ville
INNER JOIN Departement ON Departement.Id_Departement = Ville.Departement_Id_Departement
WHERE hotel_mois = 1 AND Adherant_Hotel = 1
ORDER BY Categorie_hotel ASC

par guilt92 » 11 avr. 2007, 14:55

Si l'ID de la photo est la meme que l'indice dans le tableau je comprends pas pourquoi il faudrait un foreach. De plus je suppose que tu as un while qui entoure tout cela pour parcourir toute la table non ? Sinon j'avoue que si tu ne décris pas plus précisement ce qu'il y a dans tes tableaux et la facon dont tu exploites ta base de données ainsi que ce que tu veux précisemment obtenir j'ai peur de ne pouvoir t'aider plus... Peut etre quelqu'un d autre que moi comprendra sinon....

par deborah » 11 avr. 2007, 14:45

un foreach ds un foreach, pour afficher une photo correspondante à un Id de l'hotel

par guilt92 » 11 avr. 2007, 14:44

pourquoi pas
foreach ($tab_photo_mois as $photo)  
              {  
                  if($tab['Id_Hotel'] == $photo)  
                  {  
                      echo "<td>caca</td>";  
                  }  
                  else  
                  echo "<td>pipi</td>";  
              }
Sinon il faudrait montrer la déclaration de $tab_photo_mois... Pourquoi un foreach dans un foreach ?

par deborah » 11 avr. 2007, 14:05

nan même en enlevant le $ de trop ca passe pas. En gros je voudrai faire 1 foreach imbriqué dans un autre foreach

par guilt92 » 11 avr. 2007, 13:58

              foreach ($tab_photo_mois as $ $photo) 
              { 
                  if($tab['Id_Hotel'] == $photo['Id_Hotel']) 
                  { 
                      echo "<td>caca</td>"; 
                  } 
                  else 
                  echo "<td>pipi</td>"; 
              } 
je ne sais pas si c'est le seul probleme mais il me semble qu'il y a un $ de trop dans foreach ($tab_photo_mois as $ $photo) ....

par deborah » 11 avr. 2007, 13:50

un petit coup de pouce serai le bienvenue car le site est en ligne

problème d'affichage

par deborah » 04 avr. 2007, 14:24

Bonjour,

J'ai un soucis sur un affichage mais je n'arrive pas a savoir comment faire

Voici la fonction d'affichage
iinclude("../HTML/entete_all1.html");	
       	echo "<div class=Style21 id=Layer12><table width=480 height=119 >";
     	foreach($tab_mois as $tab)
  		{
    		echo"<tr><td width = 250><font face=Bodoni MT size = 4><a href=../Frontcontroller/Frontcontroler.php?page=more&id=".$tab['Id_Hotel']."><u>".$tab['Nom_Hotel']."</u></a></font>&nbsp;&nbsp;&nbsp;";
			$cat = $tab['Categorie_hotel'];
			
			for ($i=0; $i<$cat;$i++)
			{
				echo "<img src=../HTML/images/star2an.gif>";
			}    				

		
			echo "</td><td ><strong>".$tab['Nom_Ville']."</strong></td></tr>";
			
	  		foreach ($tab_photo_mois as $ $photo)
	  		{
	  			if($tab['Id_Hotel'] == $photo['Id_Hotel'])
	  			{
	  				echo "<td>caca</td>";
	  			}
	  			else
	  			echo "<td>pipi</td>";
	  		}
	   	}
    	
 		
 		include("../HTML/footer_all2.html");
 	}



Le résultat que j'aimerai avoir c'est dès que qu'il rencontre le même nomde l'hotel il m'affiche la photo.
J'ai beau retourner ca dans tous les sens mais ca marche pa

Merci de votre aide
Déborah