impossible de faire fonctionner ma condition

Eléphanteau du PHP | 49 Messages

12 sept. 2017, 07:56

Bonjour les amis ,

j'ai un script qui affiche des femmes et des hommes de mon site de rencontre.

le problèmes c'est que j'ai des images qui commence par le nom d'image "photo_xxxxxx.png" et d'autre qui on pas cette extension au debut du nom de l'image.

ça fait que quand je lance mon script certaines photos vont s'afficher et d'autre non ?? parce qu'ils n' ont pas l'extension photo_ au debut du nom

comment faire pour que dans les deux cas cela s'affiche normalement ?

Alors j'ai voulu mettre cette condition dans le script mais rien à faire çà s'affiche pas??

si le fichier exist j'affiche l'image sans l'extension sinon j'affiche avec l’extension photo_

Merci de votre aide , je suis débutant..

voici une partie du code :

Code : Tout sélectionner

$sHTML .= <tr style="margin-top: 30px; border: 1px solid black;"> <td width="112" style="text-align: center;"><a href="http://www.jrencontre.fr/'.$femme['username'].'" target="_blank" rel="noreferrer"> [b] if(file_exists('wall/media/profile/'.$femme['picture'].')) { echo "<img src="wall/media/profile/'.$femme['picture'].'" border="0" width="190" height="300" style="max-height: 200px; border: 1px solid #cccccc; display: block"><br>"; } else { echo "<img src="wall/media/profile/photo_'.$femme['picture'].'" border="0" width="190" height="300" style="max-height: 200px; border: 1px solid #cccccc; display: block"><br>"; }[/b] <br><strong style="font-size: 12px; color: #9999FF">'.$femme['username'].'</strong> <br><a href="http://www.jrencontre.fr/'.$femme['username'].'" target="_blank" rel="noreferrer"><img src="http://www.jrencontre.fr/wall/profil.png" alt="Voir son profil" border="0"></a></td> <td width="148" style="font-size: 11px"></td> <td width="112" style="text-align: center;"><a href="http://www.jrencontre.fr/'.$oOldFemme['username'].'" target="_blank" rel="noreferrer"><img src="http://www.jrencontre.fr/wall/media/profile/'.$oOldFemme['picture'].'" border="0" width="190" height="300" style="max-height: 200px; border: 1px solid #cccccc; display: block"></a><br><strong style="font-size: 12px; color: #9999FF">'.$oOldFemme['username'].'</strong> <br><a href="http://www.jrencontre.fr/'.$oOldFemme['username'].'" target="_blank" rel="noreferrer"><img src="http://www.jrencontre.fr/wall/profil.png" alt="Voir son profil" border="0"></a></td> <td width="148" style="font-size: 11px"></td> </tr>';

voici tout le code :

Code : Tout sélectionner

<?php // Nombre d'homme à charger $nNombreHomme = 10; // $nNombre de femme à charger $nNombreFemme = 10; $conf = array(); $conf['db_hostname'] = 'localhost'; $conf['db_username'] = 'root'; $conf['db_password'] = ''; $conf['db_name'] = 'db'; $oPDO = new PDO('mysql:host='.$conf['db_hostname'].';dbname='.$conf['db_name'], $conf['db_username'], $conf['db_password']) or die("ERROR"); // On envoit les messages if ($nNombreHomme != 0) { $sListeHomme = $oPDO->prepare("SELECT * FROM members as m INNER JOIN members_data_members as md on m.member_id = md.data_id WHERE md.data_gender1 = 1 ORDER BY RAND() LIMIT $nNombreHomme"); $sListeHomme->execute(); $tListeHomme = $sListeHomme->fetchAll(PDO::FETCH_ASSOC); foreach($tListeHomme as $oHomme) { $sHTML = ''; // On charge une femme aléatoirement $oListeFemme = $oPDO->prepare("SELECT * FROM members as m INNER JOIN members_data_members as md on m.member_id = md.data_id WHERE md.data_gender1 = 2 ORDER BY RAND() LIMIT 10"); $oListeFemme->execute(); $oFemme = $oListeFemme->fetchAll(PDO::FETCH_ASSOC); $oOldFemme = null; foreach($oFemme as $femme) { if ($oOldFemme == null) { $oOldFemme = $femme; continue; } $sHTML .= <tr style="margin-top: 30px; border: 1px solid black;"> <td width="112" style="text-align: center;"><a href="http://www.jrencontre.fr/'.$femme['username'].'" target="_blank" rel="noreferrer"> [b] if(file_exists('wall/media/profile/'.$femme['picture'].')) { echo "<img src="wall/media/profile/'.$femme['picture'].'" border="0" width="190" height="300" style="max-height: 200px; border: 1px solid #cccccc; display: block"><br>"; } else { echo "<img src="wall/media/profile/photo_'.$femme['picture'].'" border="0" width="190" height="300" style="max-height: 200px; border: 1px solid #cccccc; display: block"><br>"; }[/b] <br><strong style="font-size: 12px; color: #9999FF">'.$femme['username'].'</strong> <br><a href="http://www.jrencontre.fr/'.$femme['username'].'" target="_blank" rel="noreferrer"><img src="http://www.jrencontre.fr/wall/profil.png" alt="Voir son profil" border="0"></a></td> <td width="148" style="font-size: 11px"></td> <td width="112" style="text-align: center;"><a href="http://www.jrencontre.fr/'.$oOldFemme['username'].'" target="_blank" rel="noreferrer"><img src="http://www.jrencontre.fr/wall/media/profile/'.$oOldFemme['picture'].'" border="0" width="190" height="300" style="max-height: 200px; border: 1px solid #cccccc; display: block"></a><br><strong style="font-size: 12px; color: #9999FF">'.$oOldFemme['username'].'</strong> <br><a href="http://www.jrencontre.fr/'.$oOldFemme['username'].'" target="_blank" rel="noreferrer"><img src="http://www.jrencontre.fr/wall/profil.png" alt="Voir son profil" border="0"></a></td> <td width="148" style="font-size: 11px"></td> </tr>'; $oOldFemme = null; } echo "$sHTML"; } } ?>

Mammouth du PHP | 1967 Messages

12 sept. 2017, 08:11

Je pense que tu confond plusieurs choses à la vue de ton code.

Il y a plusieurs façon d'afficher du HTML avec php.
soit tu met tous dans une variable et ensuite tu l'affiche,
soit tu affiche chaque bout de code l'un à la suite de l'autre.

Mais là tu nous fait un beau mélange des 2 qui ne marche pas
Je vais corriger ton code avec la première méthode
$url_photo = ((file_exists('wall/media/profile/'.$femme['picture'])) ? '' : 'photo_') . $femme['picture'];
$sHTML .='
<tr style="margin-top: 30px; border: 1px solid black;">
<td width="112" style="text-align: center;"><a href="http://www.jrencontre.fr/'.$femme['username'].'" target="_blank" rel="noreferrer">
[b] <img src="wall/media/profile/'.$url_photo.'" border="0" width="190" height="300" style="max-height: 200px; border: 1px solid #cccccc; display: block"><br>[/b]
<br><strong style="font-size: 12px; color: #9999FF">'.$femme['username'].'</strong>
<br><a href="http://www.jrencontre.fr/'.$femme['username'].'" target="_blank" rel="noreferrer"><img src="http://www.jrencontre.fr/wall/profil.png" alt="Voir son profil" border="0"></a></td>
<td width="148" style="font-size: 11px"></td>
<td width="112" style="text-align: center;"><a href="http://www.jrencontre.fr/'.$oOldFemme['username'].'" target="_blank" rel="noreferrer"><img src="http://www.jrencontre.fr/wall/media/profile/'.$oOldFemme['picture'].'" border="0" width="190" height="300" style="max-height: 200px; border: 1px solid #cccccc; display: block"></a><br><strong style="font-size: 12px; color: #9999FF">'.$oOldFemme['username'].'</strong>
<br><a href="http://www.jrencontre.fr/'.$oOldFemme['username'].'" target="_blank" rel="noreferrer"><img src="http://www.jrencontre.fr/wall/profil.png" alt="Voir son profil" border="0"></a></td>
<td width="148" style="font-size: 11px"></td>
</tr>';
Cette ligne :
$url_photo = ((file_exists('wall/media/profile/'.$femme['picture'])) ? '' : 'photo_') . $femme['picture'];
est une forme ternaire de condition je crée donc une variable contenant le nom de la photo en y ajoutant un prefix si le fichier sans prefix n’existe pas.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 49 Messages

12 sept. 2017, 10:19

à super merci j'attend ton code car c'est vrai je pense avoir rien compris de ce coté la et en voyant ton code.
je pense prendre une bonne leçon de php .
merci spols pour ta reponse .. :D

Mammouth du PHP | 1967 Messages

12 sept. 2017, 13:21

le code corrigé est dans mon post précédent, à toi de l'inclure dans ton code complet
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 49 Messages

17 sept. 2017, 19:27

Bonjour spols ,

j'ai fait les test en ajoutant ta modification et çà ne fonctionne pas?
en plus tu as ajouter un" b entre crochet "dans le code ce qui apparaît en plus à coté des photos on ne sait pas à quoi çà sert ?
Donc actuellement ce qui ce passe c'est par exemple.

j'ai une photo qui dans le répertoire ecris comme çà: photo_160572z3zkzzcjyx2vz9nve1mrkm.jpg
et bien il detect les image sans photo_ mais juste çà 160572z3zkzzcjyx2vz9nve1mrkm.jpg donc çà ne s'affiche pas..
si ta une idée pour corriger ton code..

Mammouth du PHP | 1967 Messages

18 sept. 2017, 08:20

commence ar afficher $urlphot, ou regarde le code source de ta page pour trouver le problème d'url

pour le [ b] il était dans ton code aussi, tu peux le supprimer probablement une tentative de bbcode imbriqué qui a échoué dans le forum

PS si j'en crois le résultat de ton autre post, tu n'a plus besoin de celui-ci
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 49 Messages

19 sept. 2017, 12:27

oui c'est vrai mais je suis en train de me former à la programmation et je veux apprendre donc je test toutes les possibilités

Eléphanteau du PHP | 49 Messages

19 sept. 2017, 13:30

je viens d'apprendre que la fonction file_exists ne fonctionne pas pour verifier des chemins en url http://
donc ta solution spol normal quel fonctionne pas..
peut tu m'aider la dessus?

Mammouth du PHP | 1967 Messages

19 sept. 2017, 16:46

tu n'utilise pas le protocol http dans tes url de file_exist, en tout cas pas dans le code donné
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube