[Résolu] Une erreur, mais ou?

WRInaute discret
Bonjour,

Je voudrais utiliser l' urlrewriting pour un album photo.
J'ai crée un fichier .htacces mais ca fonctionne tjs pas!!!

J'ai beau chercher d'après les pages d'aide, mais vraiment je pige rien, quelqu'un peut-il me filer un coup de pouce?

Voici les albums : http://www.aqua-planete.com/Albums/ enfin, je voudrais juste que ce soit les pages /disp_img.php (ex : http://www.aqua-planete.com/Albums/disp ... d_img=2880 ) qui soient rewritées.

J'ai alors fais le fichier .htaccess avec ca dedans (ce fichier est dans le repertoire "Albums") :
RewriteEngine on
RewriteRule -p([0-9]*)-([0-9]+)\.html$ /Albums/disp_img.php?id-img=$2&page=$1 [L]

Mais visiblement, c'est pas tout ce qu'il faut faire!!! mais les infos que je lis s'arretent tjs là.
 
WRInaute impliqué
Est-tu sur que la réécriture est autorisée? As tu fais le test recommandé dans le tutoriel de webrankinfo?
 
WRInaute discret
Re: Une erreur, mais ou?

planete7 a dit:
Voici les albums : http://www.aqua-planete.com/Albums/
J'ai alors fais le fichier .htaccess avec ca dedans (ce fichier est dans le repertoire "Albums") :
Code:
RewriteEngine on
RewriteRule -p([0-9]*)-([0-9]+)\.html$  /Albums/disp_img.php?id-img=$2&page=$1 [L]
si ton .htaccess est sous album, pourquoi remettre "/Albums" devant "/disp..." tu es chez un hébergeur qui t'oblige à mettre le chemin complet depuis la racine?
et autre question, pourquoi ton premier nombre tu le déclares comme ([0-9]*) et le second ([0-9]+) ?

désolé de ne pas t'apporter de réponse mais ta syntaxe me fait me poser des questions ;)
 
WRInaute discret
Comme j'y connais pas grand chose, je pourrais pas te dire pk j'ai fais comme ci ou comme ca!!! je me suis servi du htaccess de mon annuaire comme exemple.
 
WRInaute impliqué
Tu peux mettre une exmeple précis de ce que tu veux?

L'adresse vu par le navigateur, et l'adresse une fois qu'elle est réécrite STP.
 
WRInaute discret
Ben, ce qu'il me faudrait, c'est le nom de la photo!!!

Ex : http://www.aqua-planete.com/Albums/disp ... d_img=2880

Au lieu de 2880 (id_img) j'aimerai qu'il y ait le nom de l'image au lieu de son id, ici red_sea_max, et ceci en rewriting pour que google indexe les photos.

(Mais je sais pas comment ca se passe si plusieurs photos ont le meme nom, dans des fichiers différents).

L'idéal serait :
aqua-planete.com/Albums/disp_img-ici l'id de l'album-ici le nom de la photo

donc :
http://www.aqua-planete.com/Albums/disp ... d_img=2880
deviendrait:
http://www.aqua-planete.com/Albums/51-red_sea_max.html
 
WRInaute discret
rien ne t'empêche d'afficher le nom de la photo dans ton URL réécrite, cependant il faut que tu puisses en extraire un élément qui permet ensuite au php de savoir quelle photo appeler (tu fais donc bien de te poser la question de l'unicité des noms d'image et autres)

moi ce que je ferais, c'est une URL du genre:
www.aqua-planete.com/Albums/photo-{ID_photo}-nom-de-la-photo.htm, où ID_photo est un nombre qui identifie la photo

et ta règle serait du genre
Code:
photo-(0-9)*-.*\.htm /Albums/disp_img.php?id_img=$1
 
WRInaute discret
Hello!
Merci pour ton aide, l'url du genre que tu pense me convient parfaitement!

J'ai testé, mais ca me donne l'erreur :
Code:
__________________________________________________________________

255 
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, tech@ovh.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.



--------------------------------------------------------------------------------

Apache/1.3.41 Server at www.aqua-planete.com Port 80
__________________________________________________________________

Pourtant l'url rewriting fonctionne bien sur l'annuaire, sur ce meme site!!!
 
WRInaute discret
c'est normal j'ai fait une erreur :D
Code:
photo-([0-9]*)-.*\.htm /Albums/disp_img.php?id_img=$1
ça sera mieux comme ça :lol:
 
WRInaute discret
WRInaute discret
Ah!!
Désolé!!!

J'ai fait la modif, je n'ai plus d'erreur, mais l'url n'est pas réecrite!
Je m'excuse de t'ennuyer avec ca, mais je pige vraiment rien.
 
WRInaute discret
planete7 a dit:
J'ai fait la modif, je n'ai plus d'erreur, mais l'url n'est pas réecrite!
ça m'embête pas, je suis aussi ici pour des soucis du genre, en attendant qu'on me dépanne j'essaie de dépanner d'autres ;)

tu peux m'en dire plus sur "l'url n'est pas réecrite" ?

essaye comme ça:

Code:
RewriteEngine on
RewriteRule photo-([0-9]*)-.*\.htm Albums/disp_img.php?id_img=$1

Code:
RewriteEngine on
RewriteRule ^photo-([0-9]*)-.*\.htm /Albums/disp_img.php?id_img=$1

Code:
RewriteEngine on
RewriteRule ^/photo-([0-9]*)-.*\.htm /Albums/disp_img.php?id_img=$1

et les mêmes variantes sans "/Albums"
 
WRInaute discret
tu peux m'en dire plus sur "l'url n'est pas réecrite" ?
Ben, a l'url "http://www.aqua-planete.com/Albums/disp_img.php?id_img=2880" j'ai tjs l'URL "http://www.aqua-planete.com/Albums/disp_img.php?id_img=2880" d'ecrit!
Donc, la réecriture ne se fait pas!

J'ai bien tenté toutes tes solutions, mais y a pas moyen!!! grrr, ca m'en
veut cette histoire!!!!
 
WRInaute discret
planete7 a dit:
"http://www.aqua-planete.com/Albums/disp_img.php?id_img=2880"
je pige pas bien, ta nouvelle url devrait être "http://www.aqua-planete.com/Albums/photo-2880-nomdelaphoto.htm" et c'est la réécriture qui la transforme en "http://www.aqua-planete.com/Albums/disp_img.php?id_img=2880" pour que la mécanique PHP puisse l'exploiter
 
WRInaute discret
Avant il y avait "http://www.aqua-planete.com/Albums/disp_img.php?id_img=2880"
Ca c'était avant le fichier .htaccess

Une fois qu'on met l'url rewriting avec le fichier .htaccess, dans la barre d'adresse, on devrait bien avoir : "http://www.aqua-planete.com/Albums/photo-2880-nomdelaphoto.htm"

Non?

Mais là, j'ai tjs "http://www.aqua-planete.com/Albums/disp_img.php?id_img=2880", comme avant! C'est que la réecriture ne se fait pas non?
 
WRInaute discret
Sur le coup, je me demande si j'ai bien vraiment saisie l'utilité et le fonctionnement de l'URL rewriting!!!!

Imaginons, sur mon site, je me connecte a l'album.
http://www.aqua-planete.com/Albums/index.php

j'ouvre par exemple la section "Lacs Africains" http://www.aqua-planete.com/Albums/disp ... =3&stat=ok

De là, je selectionne mon album photo (Planete). http://www.aqua-planete.com/Albums/disp ... 68&stat=ok

Ensuite, si je selectionne une photo, celle du milieu en haut (placidochromis electra)! l'url que je lis dans la barre d'adresse est :
http://www.aqua-planete.com/Albums/disp ... d_img=2725

Ca devrait plutot etre : http://www.aqua-planete.com/Albums/phot ... lectra.htm non?
 
WRInaute discret
oui effectivement, un truc (important) t'échappe :D

il faut que tu modifies ton code de façon à ce que toutes les URL que tu peux utiliser soient de la forme www.monsite.com/rep/toto.htm

que le fichier de réécriture traduira par exemple en www.monsite.com/index.php?rub=rep&page=toto qui donne à Php les variables pour construire la page demandée

le fichier de réécriture c'est qu'une partie du boulot, il faut aussi revoir tout le code afin qu'il n'y aie plus d'URL type php ;)
 
WRInaute discret
planete7 a dit:
Tien, c'est marrant, si je tape http://www.aqua-planete.com/Albums/phot ... lectra.htm par contre ca fonctionne!!!!
ça veut dire que tu as bien créé la règle de réécriture, félicitations ;)

par contre en effet ça peut prendre du temps de modifier la façon dont sont générées toutes les URL du site, mais c'est quand même vachement plus sympa comme résultat au final et les moteurs de recherche ont le plaisir d'indexer avec facilité tout ton site (ou tout ce que tu veux leur faire indexer) ce qui n'est pas systématique avec des url php avec des paramètres de partout
 
WRInaute discret
En tous cas, je te remercie beaucoup pour ton aide!
De mon coté, je t'aiderais bien, mais .... lol

Sans abuser de ta bonne aide, est-ce que c'est ce genre d'URL que je dois changer des mon fichier? Code:
Code:
<a href=\"disp_img.php?id_img=".$id_img_apres.$continuitesecure."\">Photo suivante</a>"
Et si oui, par quoi, je vois pas du tout?
 
WRInaute discret
planete7 a dit:
Sans abuser de ta bonne aide, est-ce que c'est ce genre d'URL que je dois changer des mon fichier? Code:
Code:
<a href="disp_img.php?id_img=".$id_img_apres.$continuitesecure."">Photo suivante</a>"
Et si oui, par quoi, je vois pas du tout?
pour mon souci, j'ai trouvé tout seul, ct un souci de majuscule/minuscule :D

pour l'URL oui tu as mis le doigt sur l'une d'elle ;)

je pense que le code devrait ressembler à ça:
Code:
<a href="photo-".$id_img_apres.$continuitesecure.".htm">Photo suivante</a>"
tout simplement ;) puisque tu veux retrouver ton URL virtuelle du type photo-{numéro d'image}-{nom image}.htm

par contre dans ton code là je ne sais pas ce qu'est la variable $continuitesecure, et il n'y a pas de variable contenant le nom de l'image, soit il faut la créer, soit tu oublies l'idée de mettre le nom de l'image dans l'URL
 
WRInaute discret
Je vais voir ca!!!

Par contre la variable pour le nom de l'image, c'est "$url_img" enfin, je crois!!!
C'est ce que j'ai mis dans "alt" pour que le nom s'affiche au lieu du n°ID quand on met la souris sur la photo.
 
WRInaute discret
planete7 a dit:
Je vais voir ca!!!

Par contre la variable pour le nom de l'image, c'est "$url_img" enfin, je crois!!!
C'est ce que j'ai mis dans "alt" pour que le nom s'affiche au lieu du n°ID quand on met la souris sur la photo.
ah ben si tu as trouvé ça :) c'est bon

Code:
<a href="photo-".$id_img_apres.$continuitesecure."-".$url_img.".htm">Photo suivante</a>"

et hop :)

par contre je suppose que tu as aussi l'URL pour Photo Précédente, et aussi sur une page plus haute, disp_serie.php je pense, d'autres URL pointant vers ces images

etc... etc... y'a du boulot mais ça vaut le jus et une fois qu'on a compris ça va vite :)
 
WRInaute discret
Voila, je crois que j'y suis arrivé!!!!

En tous cas, super merci, j'aurais jamais fais tout ca sans toi.


J'ai un petit bug, je vais essayer de trouver, quand j'ouvre un album au niveau de la grande photo, si je fais "suivant", la photo passe bien à la suivante, mais le nom dansz l'url ne change pas (l'id de la photo change lui), et ceci uniquement sur la première des photos qui défile, et si je refais suivant, l'url change mais garde donc une photo de retard au niveau du nom dans l'url.

Disons que l'affichage de la première photo via la page disp_serie se passe bien, mais au premier clic "suivant" ou "précedent" , seul est incrémenté de 1 le n°ID de la photo, pas le nom.

Ca a l'air d'etre qu'une question d'incrémentation qq part par là.

Code:
//hits + 1
$hits_img++;
$chaine="UPDATE $tbl_ilist SET hits='$hits_img' WHERE id='$id_img'";
MYSQL_QUERY($chaine);

$label_img=nl2br($label_img);
$url_imgbig = "img/".$folder_currentalbum."/".$url_img;

//images avant celle affichee
$chaine = "SELECT id FROM ".$tbl_ilist." WHERE album=".$id_album." AND date_verif";
if ($display_order=="ASC") 
  {$chaine=$chaine."<";}
else
  {$chaine=$chaine.">";}
$chaine=$chaine."'".$date_verif_img."' ORDER BY date_verif ";
if ($display_order=="ASC") 
  {$chaine=$chaine."DESC";}
else
  {$chaine=$chaine."ASC";}

$list_avant = MYSQL_QUERY($chaine);
$nb_img_avant = MYSQL_NUMROWS($list_avant);
if ($nb_img_avant>0) {$id_img_avant = mysql_result($list_avant,0,"id");}



//image affichee
$num_img_current = $nb_img_avant+1;

//images apres celle affichee
$chaine = "SELECT id FROM ".$tbl_ilist." WHERE album=".$id_album." AND date_verif";
if ($display_order=="ASC") 
  {$chaine=$chaine.">";}
else
  {$chaine=$chaine."<";}
$chaine=$chaine."'".$date_verif_img."' ORDER BY date_verif ".$display_order;
$list_apres = MYSQL_QUERY($chaine);
$nb_img_apres = MYSQL_NUMROWS($list_apres);
if ($nb_img_apres>0) {$id_img_apres = mysql_result($list_apres,0,"id");}

//ttes les images de l'album
$chaine = "SELECT id,date_verif FROM ".$tbl_ilist." WHERE album=".$id_album." ORDER BY date_verif DESC";
$list_img = MYSQL_QUERY($chaine);
$nb_img = MYSQL_NUMROWS($list_img);



$nav="<tr><td class=\"barreinfo2\"><center>";
if ($nb_img_avant>0)
  {
$nav=$nav."<a href=\"photo-".$id_img_avant.$continuitesecure."-".$url_img.".htm\">Photo précédente</a>&nbsp;&nbsp;&nbsp;";
  }
$nav=$nav.$num_img_current." (".$txt_sur." ".$nb_img.")";
if ($nb_img_apres>0)
  {
  $nav=$nav."&nbsp;&nbsp;&nbsp;<a href=\"photo-".$id_img_apres.$continuitesecure."-".$url_img.".htm\">Photo suivante</a>";
  }

Bon, je remet l'ancienne page sans réecriture, en attendant de trouver ce qui cloche.
 
WRInaute discret
planete7 a dit:
J'ai un petit bug, je vais essayer de trouver, quand j'ouvre un album au niveau de la grande photo, si je fais "suivant", la photo passe bien à la suivante, mais le nom dans l'url ne change pas (l'id de la photo change lui), et ceci uniquement sur la première des photos qui défile, et si je refais suivant, l'url change mais garde donc une photo de retard au niveau du nom dans l'url.
certainement parce que ta variable $url_img n'est pas mise à jour au bon moment

dans le code que tu as copié on ne voit pas le moment où une valeur lui est affectée, donc difficile de t'aider ;)
 
WRInaute discret
J'ai un petit bug, je vais essayer de trouver, quand j'ouvre un album au niveau de la grande photo, si je fais "suivant", la photo passe bien à la suivante, mais le nom dans l'url ne change pas (l'id de la photo change lui), et ceci uniquement sur la première des photos qui défile, et si je refais suivant, l'url change mais garde donc une photo de retard au niveau du nom dans l'url.

Vraiment, je cherche, mais je trouve pas d'ou vient le pb!!!
Si qq avait la gentillesse de me donner un coup de pouce!!!!

Voici le fichier complet
Code:
<?

require("fonctions.inc.php");
$start_time=get_moment();
require("connect.inc.php");
require("config.inc.php");
$lang_filename = "lang/".$lang."_disp_img.inc.php";
require($lang_filename);

require("presentation2.inc.php");

//affichage haut
HAUTPAGEWEB("$titre_galerie");

if (isset($_GET["id_img"])) {$id_img=$_GET["id_img"];} else {$id_img="";}
if (isset($_GET["secure"])) {$secure=$_GET["secure"];} else {$secure="";}

//securite 0
ereg("([0-9]*)",$id_img,$secereg);
if (($id_img != $secereg[0]) OR ($id_img=="")) {erreurRC($txt_securitylock);}
ereg("([a-z0-9]*)",$secure,$secereg);
if (($secure!="") AND (($secure != $secereg[0]) OR (strlen($secure)!=20))) {erreurRC($txt_securitylock);}

/* connexion à la base de données ------------------------------------------- */
//connexion à la database
($db = @mysql_connect("$serveur", "$utilisateur", "$motdepasse")) or erreurRC($txt_errsrv);
@mysql_select_db("$database",$db) or erreurRC($txt_errdb);

//verif pwd
$chaine="SELECT album FROM ".$tbl_ilist." WHERE id=".$id_img;
$request = MYSQL_QUERY($chaine);
$nb_rep = MYSQL_NUMROWS($request);
if ($nb_rep!=1) {erreurRC($txt_securitylock);}
$id_album = mysql_result($request,0,"album");

$chaine="SELECT secureid FROM ".$tbl_alist." WHERE id=".$id_album;
$request = MYSQL_QUERY($chaine);
$secureid_album = mysql_result($request,0,"secureid");
if ($secure!=$secureid_album) {erreurRC($txt_securitylock);}

//infos sur l'album en cours
$chaine="SELECT nom,idpere,folder FROM ".$tbl_alist." WHERE id=".$id_album;
$request = MYSQL_QUERY($chaine);
$nb_rep = MYSQL_NUMROWS($request);
if ($nb_rep!=1) {erreurRC($txt_securitylock);}
$nom_currentalbum = mysql_result($request,0,"nom");
$idpere_currentalbum = mysql_result($request,0,"idpere");
$folder_currentalbum = mysql_result($request,0,"folder");

//haut de page
echo "<table cellspacing=0 cellpadding=0 border=0 width=\"100%\">\n";
echo "<tr><td colspan=2><center><font class=\"titrepage\">".ucfirst($nom_currentalbum)."</font><br></td></tr>\n";
if ($admlinkdisplay=="oui")
  {echo "<tr><td colspan=2></td></tr>\n";}
echo "<tr><td colspan=2>";

echo "  <tr><td class=\"barreinfo\"><br>".$txt_galerie." : <a href=\"index.php\">".$titre_galerie."</a>";

function build_arbo($identpere,$secure,$table_alist)
{
  if ($identpere!=0)
  {
    $chaine="SELECT nom,id,idpere FROM ".$table_alist." WHERE id=".$identpere."";
	$reqrec = MYSQL_QUERY($chaine);
	$newidentpere = mysql_result($reqrec,0,"idpere");
	$newid = mysql_result($reqrec,0,"id");
	build_arbo($newidentpere,$secure,$table_alist);
	$nom_album = mysql_result($reqrec,0,"nom");
	$continuitesecure="";
    if ($secure!="")
      {$continuitesecure="&amp;secure=".$secure;}
	echo "&nbsp;&nbsp;>&nbsp;&nbsp;<a href=\"disp_album.php?id_album=".$newid.$continuitesecure."\">".ucfirst($nom_album)."</a>";
  }
}

$continuitesecure="";
if ($secure!="")
  {$continuitesecure="&amp;secure=".$secure;}  
  
//construction reccursive de l'arbo
build_arbo($idpere_currentalbum,$secure,$tbl_alist);
echo "&nbsp;&nbsp;>&nbsp;&nbsp;<a href=\"disp_serie.php?id_album=".$id_album.$continuitesecure."\">".ucfirst($nom_currentalbum)."</a>";
echo "</td></tr>\n";

$chaine="SELECT hits,url,date_verif,label FROM ".$tbl_ilist." WHERE id=".$id_img;
$request = MYSQL_QUERY($chaine);
$nb_rep = MYSQL_NUMROWS($request);
if ($nb_rep!=1) {erreurRC($txt_securitylock);}

$hits_img = mysql_result($request,0,"hits");
$url_img = mysql_result($request,0,"url");
$date_verif_img = mysql_result($request,0,"date_verif");
$label_img = mysql_result($request,0,"label");

//hits + 1
$hits_img++;
$chaine="UPDATE $tbl_ilist SET hits='$hits_img' WHERE id='$id_img'";
MYSQL_QUERY($chaine);

$label_img=nl2br($label_img);
$url_imgbig = "img/".$folder_currentalbum."/".$url_img;

//images avant celle affichee
$chaine = "SELECT id FROM ".$tbl_ilist." WHERE album=".$id_album." AND date_verif";
if ($display_order=="ASC") 
  {$chaine=$chaine."<";}
else
  {$chaine=$chaine.">";}
$chaine=$chaine."'".$date_verif_img."' ORDER BY date_verif ";
if ($display_order=="ASC") 
  {$chaine=$chaine."DESC";}
else
  {$chaine=$chaine."ASC";}

$list_avant = MYSQL_QUERY($chaine);
$nb_img_avant = MYSQL_NUMROWS($list_avant);
if ($nb_img_avant>0) {$id_img_avant = mysql_result($list_avant,0,"id");}



//image affichee
$num_img_current = $nb_img_avant+1;

//images apres celle affichee
$chaine = "SELECT id FROM ".$tbl_ilist." WHERE album=".$id_album." AND date_verif";
if ($display_order=="ASC") 
  {$chaine=$chaine.">";}
else
  {$chaine=$chaine."<";}
$chaine=$chaine."'".$date_verif_img."' ORDER BY date_verif ".$display_order;
$list_apres = MYSQL_QUERY($chaine);
$nb_img_apres = MYSQL_NUMROWS($list_apres);
if ($nb_img_apres>0) {$id_img_apres = mysql_result($list_apres,0,"id");}

//ttes les images de l'album
$chaine = "SELECT id,date_verif FROM ".$tbl_ilist." WHERE album=".$id_album." ORDER BY date_verif DESC";
$list_img = MYSQL_QUERY($chaine);
$nb_img = MYSQL_NUMROWS($list_img);



$nav="<tr><td class=\"barreinfo2\"><center>";
if ($nb_img_avant>0)
  {
$nav=$nav."<a href=\"photo-".$id_img_avant.$continuitesecure."-".$url_img.".htm\">Photo précédente</a>&nbsp;&nbsp;&nbsp;";
  }
$nav=$nav.$num_img_current." (".$txt_sur." ".$nb_img.")";
if ($nb_img_apres>0)
  {
  $nav=$nav."&nbsp;&nbsp;&nbsp;<a href=\"photo-".$id_img_apres.$continuitesecure."-".$url_img.".htm\">Photo suivante</a>";
  }

echo "  <tr><td class=\"barrenav\" align=center>".$nav."</td></tr>\n";
echo "</table>";
echo "</td></tr></table>\n";
//fin haut de page

//image et infos
$derniere_modif_ok1=explode("-",$date_verif_img);
$derniere_modif_ok2=explode(" ",$derniere_modif_ok1[2]);
$date_afficher=$derniere_modif_ok2[0]."/".$derniere_modif_ok1[1]."/".$derniere_modif_ok1[0];
$fsize=floor((filesize("$url_imgbig"))/1024); 

echo "<img border=1 src=\"".$url_imgbig."\" title=\"".$url_img."\" alt=\"".$url_img."\">";

echo "<br><table class=\"barreinfo2\" align=center>\n";
if ($dispinfos3label) echo "<tr class=\"barrenav\"><td>$label_img</td><td align=right></td></tr>\n";

if ($dispinfos3date) echo "<tr class=\"barrenav\"><td>".$txt_postee." :</td><td align=right>$date_afficher</td></tr>\n";
if ($dispinfos3hits) echo "<tr class=\"barrenav\"><td>".$txt_vue." :</td><td align=right>$hits_img ".$txt_fois."</td></tr>\n";
if ($dispinfos3name) echo "<tr class=\"barrenav\"><td>".$txt_nom." :</td><td align=right>$url_img</td></tr>\n";

if ($dispinfos3exif)
{
  $exif = @exif_read_data($url_imgbig, 0, true);

/*foreach ($exif as $key => $section)
{ foreach ($section as $name => $val) {echo "$key.$name: $val<br />\n";}}*/

  echo "<tr class=\"barrenav\"><td colspan=2><i>".$txt_exifinfos." :</i></td></tr>";
  echo "<tr class=\"barrenav\"><td>".$txt_exifcamera." :</td><td align=right>";
  if (isset($exif['IFD0']['Model'])) echo $exif['IFD0']['Model'];
  if (isset($exif['IFD0']['Make'])) echo " (".$exif['IFD0']['Make'].")";
  echo "<br>";
  echo "<tr class=\"barrenav\"><td>".$txt_exiffocal." :</td><td align=right>";
  if (isset($exif['EXIF']['FocalLength'])) echo $exif['EXIF']['FocalLength']." mm";
  echo "</td></tr>\n";
  echo "<tr class=\"barrenav\"><td>".$txt_exifexposure." :</td><td align=right>";
  if (isset($exif['EXIF']['ExposureTime'])) echo $exif['EXIF']['ExposureTime']." sec";
  elseif (isset($exif['COMPUTED']['ExposureTime'])) echo $exif['COMPUTED']['ExposureTime'];
  echo "</td></tr>\n";
  echo "<tr class=\"barrenav\"><td>".$txt_exifaperture." :</td><td align=right>";
  if (isset($exif['COMPUTED']['ApertureFNumber'])) echo $exif['COMPUTED']['ApertureFNumber'];
  echo "</td></tr>\n";
  echo "<tr class=\"barrenav\"><td>".$txt_exifiso." :</td><td align=right>";
  if (isset($exif['EXIF']['ISOSpeedRatings'])) echo $exif['EXIF']['ISOSpeedRatings'];
  echo "</td></tr>\n";
  echo "<tr class=\"barrenav\"><td>".$txt_exifresolution." :</td><td align=right>";
  if (isset($exif['EXIF']['ExifImageWidth']) AND isset($exif['EXIF']['ExifImageLength']) )echo $exif['EXIF']['ExifImageWidth']." * ".$exif['EXIF']['ExifImageLength']."</td></tr>\n";
}
echo "</table>\n";

//bas de page
echo "<br><tr><td>\n";
echo "<table border=0 cellspacing=1 cellpadding=5 width=\"100%\">\n";
echo "  <tr><td class=\"barrenav\" align=center>".$nav."</td></tr>\n";
echo "</table>";


MYSQL_CLOSE();
BASPAGEWEB();
?>
<p><center><font color="#00FF00">_________________</font></center></p>

<p><center><font color="#00FFFF">Vous pouvez vous aussi créer ou compléter votre/vos album(s) en
m'envoyant vos photos, pour cela <a href="mailto:aquaplanete@orange.fr?subject=Albums photos aqua-planete&body=Envoyez ici (en pièce jointe) vos photos, pensez aussi à mettre un nom ou pseudo pour votre album, merci de votre participation."><font size="2">cliquez ici</font></a>, vous pouvez aussi compléter ou créer les albums d'aquariums publics. (Dans l'é-mail, pensez à laisser un nom ou un pseudonyme)<br><br>
Merci de votre participation.</font></p>

</a>
<body>
<center><font size="2"><script type="text/javascript"><!--
google_ad_client = "pub-2388819725391828";
google_ad_output = "textlink";
google_ad_format = "ref_text";
google_cpa_choice = "CAAQhKOayAIaCAT1nDlv9NdEKPCxuosB";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center><p>
<html>

<p><? require("../ap bot sousrep.php"); ?>
</body>

</html>
 
WRInaute discret
Salut Lomic2!!!

Il y a très peu de changement entre les deux fichiers, juste les 2 URL ("precedent" et "suivant"):

Code:
<?
// Copyright 2003 Benjamin Py [www.ben3w.com] 

// This file is part of 2BGAL
// 2BGAL is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
// 2BGAL is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with 2BGAL ; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

require("fonctions.inc.php");
$start_time=get_moment();
require("connect.inc.php");
require("config.inc.php");
$lang_filename = "lang/".$lang."_disp_img.inc.php";
require($lang_filename);

require("presentation2.inc.php");

//affichage haut
HAUTPAGEWEB("$titre_galerie");

if (isset($_GET["id_img"])) {$id_img=$_GET["id_img"];} else {$id_img="";}
if (isset($_GET["secure"])) {$secure=$_GET["secure"];} else {$secure="";}

//securite 0
ereg("([0-9]*)",$id_img,$secereg);
if (($id_img != $secereg[0]) OR ($id_img=="")) {erreurRC($txt_securitylock);}
ereg("([a-z0-9]*)",$secure,$secereg);
if (($secure!="") AND (($secure != $secereg[0]) OR (strlen($secure)!=20))) {erreurRC($txt_securitylock);}

/* connexion à la base de données ------------------------------------------- */
//connexion à la database
($db = @mysql_connect("$serveur", "$utilisateur", "$motdepasse")) or erreurRC($txt_errsrv);
@mysql_select_db("$database",$db) or erreurRC($txt_errdb);

//verif pwd
$chaine="SELECT album FROM ".$tbl_ilist." WHERE id=".$id_img;
$request = MYSQL_QUERY($chaine);
$nb_rep = MYSQL_NUMROWS($request);
if ($nb_rep!=1) {erreurRC($txt_securitylock);}
$id_album = mysql_result($request,0,"album");

$chaine="SELECT secureid FROM ".$tbl_alist." WHERE id=".$id_album;
$request = MYSQL_QUERY($chaine);
$secureid_album = mysql_result($request,0,"secureid");
if ($secure!=$secureid_album) {erreurRC($txt_securitylock);}

//infos sur l'album en cours
$chaine="SELECT nom,idpere,folder FROM ".$tbl_alist." WHERE id=".$id_album;
$request = MYSQL_QUERY($chaine);
$nb_rep = MYSQL_NUMROWS($request);
if ($nb_rep!=1) {erreurRC($txt_securitylock);}
$nom_currentalbum = mysql_result($request,0,"nom");
$idpere_currentalbum = mysql_result($request,0,"idpere");
$folder_currentalbum = mysql_result($request,0,"folder");

//haut de page
echo "<table cellspacing=0 cellpadding=0 border=0 width=\"100%\">\n";
echo "<tr><td colspan=2><center><font class=\"titrepage\">".ucfirst($nom_currentalbum)."</font><br></td></tr>\n";
if ($admlinkdisplay=="oui")
  {echo "<tr><td colspan=2></td></tr>\n";}
echo "<tr><td colspan=2>";

echo "  <tr><td class=\"barreinfo\"><br>".$txt_galerie." : <a href=\"index.php\">".$titre_galerie."</a>";

function build_arbo($identpere,$secure,$table_alist)
{
  if ($identpere!=0)
  {
    $chaine="SELECT nom,id,idpere FROM ".$table_alist." WHERE id=".$identpere."";
	$reqrec = MYSQL_QUERY($chaine);
	$newidentpere = mysql_result($reqrec,0,"idpere");
	$newid = mysql_result($reqrec,0,"id");
	build_arbo($newidentpere,$secure,$table_alist);
	$nom_album = mysql_result($reqrec,0,"nom");
	$continuitesecure="";
    if ($secure!="")
      {$continuitesecure="&amp;secure=".$secure;}
	echo "&nbsp;&nbsp;>&nbsp;&nbsp;<a href=\"disp_album.php?id_album=".$newid.$continuitesecure."\">".ucfirst($nom_album)."</a>";
  }
}

$continuitesecure="";
if ($secure!="")
  {$continuitesecure="&amp;secure=".$secure;}  
  
//construction reccursive de l'arbo
build_arbo($idpere_currentalbum,$secure,$tbl_alist);
echo "&nbsp;&nbsp;>&nbsp;&nbsp;<a href=\"disp_serie.php?id_album=".$id_album.$continuitesecure."\">".ucfirst($nom_currentalbum)."</a>";
echo "</td></tr>\n";

$chaine="SELECT hits,url,date_verif,label FROM ".$tbl_ilist." WHERE id=".$id_img;
$request = MYSQL_QUERY($chaine);
$nb_rep = MYSQL_NUMROWS($request);
if ($nb_rep!=1) {erreurRC($txt_securitylock);}

$hits_img = mysql_result($request,0,"hits");
$url_img = mysql_result($request,0,"url");
$date_verif_img = mysql_result($request,0,"date_verif");
$label_img = mysql_result($request,0,"label");

//hits + 1
$hits_img++;
$chaine="UPDATE $tbl_ilist SET hits='$hits_img' WHERE id='$id_img'";
MYSQL_QUERY($chaine);

$label_img=nl2br($label_img);
$url_imgbig = "img/".$folder_currentalbum."/".$url_img;

//images avant celle affichee
$chaine = "SELECT id FROM ".$tbl_ilist." WHERE album=".$id_album." AND date_verif";
if ($display_order=="ASC") 
  {$chaine=$chaine."<";}
else
  {$chaine=$chaine.">";}
$chaine=$chaine."'".$date_verif_img."' ORDER BY date_verif ";
if ($display_order=="ASC") 
  {$chaine=$chaine."DESC";}
else
  {$chaine=$chaine."ASC";}

$list_avant = MYSQL_QUERY($chaine);
$nb_img_avant = MYSQL_NUMROWS($list_avant);
if ($nb_img_avant>0) {$id_img_avant = mysql_result($list_avant,0,"id");}

//image affichee
$num_img_current = $nb_img_avant+1;

//images apres celle affichee
$chaine = "SELECT id FROM ".$tbl_ilist." WHERE album=".$id_album." AND date_verif";
if ($display_order=="ASC") 
  {$chaine=$chaine.">";}
else
  {$chaine=$chaine."<";}
$chaine=$chaine."'".$date_verif_img."' ORDER BY date_verif ".$display_order;
$list_apres = MYSQL_QUERY($chaine);
$nb_img_apres = MYSQL_NUMROWS($list_apres);
if ($nb_img_apres>0) {$id_img_apres = mysql_result($list_apres,0,"id");}

//ttes les images de l'album
$chaine = "SELECT id,date_verif FROM ".$tbl_ilist." WHERE album=".$id_album." ORDER BY date_verif DESC";
$list_img = MYSQL_QUERY($chaine);
$nb_img = MYSQL_NUMROWS($list_img);



$nav="<tr><td class=\"barreinfo2\"><center>";
if ($nb_img_avant>0)
  {
$nav=$nav."<a href=\"disp_img.php?id_img=".$id_img_avant.$continuitesecure."\">Photo précédente</a>&nbsp;&nbsp;&nbsp;";
  }
$nav=$nav.$num_img_current." (".$txt_sur." ".$nb_img.")";
if ($nb_img_apres>0)
  {
  $nav=$nav."&nbsp;&nbsp;&nbsp;<a href=\"disp_img.php?id_img=".$id_img_apres.$continuitesecure."\">Photo suivante</a>";
  }

echo "  <tr><td class=\"barrenav\" align=center>".$nav."</td></tr>\n";
echo "</table>";
echo "</td></tr></table>\n";
//fin haut de page

//image et infos
$derniere_modif_ok1=explode("-",$date_verif_img);
$derniere_modif_ok2=explode(" ",$derniere_modif_ok1[2]);
$date_afficher=$derniere_modif_ok2[0]."/".$derniere_modif_ok1[1]."/".$derniere_modif_ok1[0];
$fsize=floor((filesize("$url_imgbig"))/1024); 

echo "<br><center><img border=1 src=\"".$url_imgbig."\" title=\"".$id_img."\" alt=\"photo\"></center>";

echo "<br><table class=\"barreinfo2\" align=center>\n";
if ($dispinfos3label) echo "<tr class=\"barrenav\"><td>$label_img</td><td align=right></td></tr>\n";

if ($dispinfos3date) echo "<tr class=\"barrenav\"><td>".$txt_postee." :</td><td align=right>$date_afficher</td></tr>\n";
if ($dispinfos3hits) echo "<tr class=\"barrenav\"><td>".$txt_vue." :</td><td align=right>$hits_img ".$txt_fois."</td></tr>\n";
if ($dispinfos3name) echo "<tr class=\"barrenav\"><td>".$txt_nom." :</td><td align=right>$url_img</td></tr>\n";

if ($dispinfos3exif)
{
  $exif = @exif_read_data($url_imgbig, 0, true);

/*foreach ($exif as $key => $section)
{ foreach ($section as $name => $val) {echo "$key.$name: $val<br />\n";}}*/

  echo "<tr class=\"barrenav\"><td colspan=2><i>".$txt_exifinfos." :</i></td></tr>";
  echo "<tr class=\"barrenav\"><td>".$txt_exifcamera." :</td><td align=right>";
  if (isset($exif['IFD0']['Model'])) echo $exif['IFD0']['Model'];
  if (isset($exif['IFD0']['Make'])) echo " (".$exif['IFD0']['Make'].")";
  echo "<br>";
  echo "<tr class=\"barrenav\"><td>".$txt_exiffocal." :</td><td align=right>";
  if (isset($exif['EXIF']['FocalLength'])) echo $exif['EXIF']['FocalLength']." mm";
  echo "</td></tr>\n";
  echo "<tr class=\"barrenav\"><td>".$txt_exifexposure." :</td><td align=right>";
  if (isset($exif['EXIF']['ExposureTime'])) echo $exif['EXIF']['ExposureTime']." sec";
  elseif (isset($exif['COMPUTED']['ExposureTime'])) echo $exif['COMPUTED']['ExposureTime'];
  echo "</td></tr>\n";
  echo "<tr class=\"barrenav\"><td>".$txt_exifaperture." :</td><td align=right>";
  if (isset($exif['COMPUTED']['ApertureFNumber'])) echo $exif['COMPUTED']['ApertureFNumber'];
  echo "</td></tr>\n";
  echo "<tr class=\"barrenav\"><td>".$txt_exifiso." :</td><td align=right>";
  if (isset($exif['EXIF']['ISOSpeedRatings'])) echo $exif['EXIF']['ISOSpeedRatings'];
  echo "</td></tr>\n";
  echo "<tr class=\"barrenav\"><td>".$txt_exifresolution." :</td><td align=right>";
  if (isset($exif['EXIF']['ExifImageWidth']) AND isset($exif['EXIF']['ExifImageLength']) )echo $exif['EXIF']['ExifImageWidth']." * ".$exif['EXIF']['ExifImageLength']."</td></tr>\n";
}
echo "</table>\n";

//bas de page
echo "<br><tr><td>\n";
echo "<table border=0 cellspacing=1 cellpadding=5 width=\"100%\">\n";
echo "  <tr><td class=\"barrenav\" align=center>".$nav."</td></tr>\n";
echo "</table>";


MYSQL_CLOSE();
BASPAGEWEB();
?>
<p><center><font color="#00FF00">_________________</font></center></p>

<p><center><font color="#00FFFF">Vous pouvez vous aussi créer ou compléter votre/vos album(s) en
m'envoyant vos photos, pour cela <a href="mailto:aquaplanete@orange.fr?subject=Albums photos aqua-planete&body=Envoyez ici (en pièce jointe) vos photos, pensez aussi à mettre un nom ou pseudo pour votre album, merci de votre participation."><font size="2">cliquez ici</font></a>, vous pouvez aussi compléter ou créer les albums d'aquariums publics. (Dans l'é-mail, pensez à laisser un nom ou un pseudonyme)<br><br>
Merci de votre participation.</font></p>

</a>
<body>

<html>

<p><? require("../ap bot sousrep.php"); ?>
</body>

</html>
 
WRInaute discret
ok c'est plus clair (justement ton souci se situe au niveau de ces URL...)

donc en fait, si j'ai bien compris le code, l'URL de l'image avant est construite comme ça:
Code:
"disp_img.php?id_img=".$id_img_avant.$continuitesecure."

l'image après:
Code:
"disp_img.php?id_img=".$id_img_apres.$continuitesecure."

or là tu n'as en fait que l'id des images, cad le numéro, et pas le nom car si tu regardes plus haut la requète qui va chercher les infos sur l'image avant et celle pour après, elle ne récupère que l'id, requête pour l'image d'avant:
Code:
//images avant celle affichee
$chaine = "SELECT id FROM ".$tbl_ilist." WHERE album=".$id_album." AND date_verif";
il n'y a que id dans le SELECT
pareil pour l'URL après:
Code:
//images apres celle affichee
$chaine = "SELECT id FROM ".$tbl_ilist." WHERE album=".$id_album." AND date_verif";
$url_img est récupéré plus tôt, donc si tu l'utilises dans l'URL pour l'image d'avant ou l'image d'après, en fait tu ne donnes que le nom de l'image en cours (c'est pour ça que tu vois un décalage)

il faut donc modifier les requètes SQL qui récupèrent l'id des images avant et après, comme ça:
Code:
//images avant celle affichee
$chaine = "SELECT id, url FROM ".$tbl_ilist." WHERE album=".$id_album." AND date_verif";
pareil pour l'URL après:
Code:
//images apres celle affichee
$chaine = "SELECT id, url FROM ".$tbl_ilist." WHERE album=".$id_album." AND date_verif";
et ensuite récupérer la valeur de url dans une variable que tu utiliseras dans les URL comme tu l'avais fait avec $url_img
en ajoutant dans la parenthèse de ce if:
Code:
if ($nb_img_avant>0) {$id_img_avant = mysql_result($list_avant,0,"id");}
ceci:
Code:
if ($nb_img_avant>0) {$id_img_avant = mysql_result($list_avant,0,"id"); $url_img_avant=mysql_result($list_avant,0,"url")}
pareil pour après:en ajoutant dans la parenthèse de ce if:
Code:
if ($nb_img_apres>0) {$id_img_apres = mysql_result($list_apres,0,"id");}
ceci:
Code:
if ($nb_img_apres>0) {$id_img_apres = mysql_result($list_apres,0,"id"); $url_img_apres=mysql_result($list_apres,0,"url")}

et là je pense que tu as pigé le truc, le nom de l'image d'après sera dans $url_img_apres et pour l'image d'avant, $url_img_avant

à toi de jouer, tu refais la même modif que tu avais faite, mais au lieu de $url_img, tu mets les $url_img_avant et $url_img_apres
Code:
$nav=$nav."<a href=\"photo-".$id_img_avant.$continuitesecure."-".$url_img_avant.".htm\">Photo précédente</a>&nbsp;&nbsp;&nbsp;";
[....]
$nav=$nav."&nbsp;&nbsp;&nbsp;<a href=\"photo-".$id_img_apres.$continuitesecure."-".$url_img_apres.".htm\">Photo suivante</a>";
voilà ça devrait marcher comme ça ;)
 
WRInaute discret
J'ai beau lire et relire en me creusant la tête, je pige strictement rien!!!!!
Disons que je comprend le principe, mais pas le sens de tous ces codes ) { ; etc...

J'ai une erreur a la ligne 117

Code:
$url_img_avant=mysql_result($list_avant,0,"url")}
Certainement un code ou une accolade ou un truc de genre!!!

en tous cas, merci bcp
 
WRInaute discret
Sans dec, je crois que j'ai trouvé tout seul comme un grand!!!

j'ai changé
Code:
$url_img_avant=mysql_result($list_avant,0,"url")}

par

Code:
$url_img_avant=mysql_result($list_avant,0,"url");}
le point-virgule sur le avant et après, mais j'avoue, je l'ai pas fait en le sachant, mais en testant sachant que l'erreur donnée venait de '}'

________________________________________

Tout est parfait

Je te remercie infiniment.
 
WRInaute discret
bien vu ;) j'ai été trop vite ;)

alors ça fonctionne comme ça?

[Edit]ah oui ça fonctionne bien, plus qu'à faire pareil pour disp_album.php et disp_serie.php ;)

[Edit2]si tout va bien, hésite pas à mettre "Résolu" dans le titre de ton sujet ;) (il suffit de cliquer sur le bouton "Editer" de ton premier message)
 
WRInaute discret
et quand tu auras finis, tu devrais envoyer les fichiers modifiés au créateur de ce système d'album, comme ça d'autres pourront en bénéficier s'il propose une nouvelle version ;)
 
Discussions similaires
Haut