Page 1 sur 1

Créer tableau avec photo et descriptif

Posté : 25 août 2006, 09:51
par webide
Bonjour,
Je souhaite créer un tableau dans une page avec par ligne 5 photos et le descriptif sous chaque photos.
D'habitude, j'utilise 2 fichier distincts comme admin.
Je créais à chaque fois un dossier pour chaque photo pour pouvoir permettre de la supprimer.
Un exemple:
<?php

include("images.class.php");

function getextension($fichier) {
  $bouts = explode(".", $fichier);
  $extension = array_pop($bouts);
  return $extension;
}

if ($_POST['action'] == "ajouter") {
  if ($image && !empty($_POST['repertoire']) && !empty($_POST['mot_de_passe'])){
    if ($_POST['mot_de_passe'] == "xxxx") {
      if ($_POST['repertoire'] == "accueil" || $_POST['repertoire'] == "presentation" || $_POST['repertoire'] == "gravure") {
        $repertoire = $_POST['repertoire'];
        $extension = strtolower(getextension($image_name));
        if ($extension == "jpg" || $extension == "png" || $extension == "bmp" || $extension == "gif") {
          $imag = new images();
          $imag->repertoire = $repertoire;
          if ($imag->ajouter_image($image, $image_name)) echo "<font face=\"Verdana\">Le fichier " . $image_name . " a bien été envoyé.</font>";
          else echo "<font face=\"Verdana\">Une erreur s'est produite !</font>";
        } else echo "<font face=\"Verdana\">Extension interdite !</font>";
      } else echo "<font face=\"Verdana\">Repertoire interdit !</font>";
    } else echo "<font face=\"Verdana\">Mot de passe incorrect !</font>";
  } else echo "<font face=\"Verdana\">Formulaire incomplet !</font>";
} else if ($_POST['action'] == "supprimer") {
  if (!empty($_POST['image']) && !empty($_POST['mot_de_passe'])) {
    if ($_POST['mot_de_passe'] == "xxxx") {
      $extension = strtolower(getextension($image));
      if ($extension == "jpg" || $extension == "png" || $extension == "bmp" || $extension == "gif" || $extension == "jpeg") {
        if (@unlink($image)) echo "<font face=\"Verdana\">L'image <b>$image</b> a bien été suprimé !</font>";
        else echo "<font face=\"Verdana\">Une erreur s'est produite !</font>";
      } else echo "<font face=\"Verdana\">Extension interdite !</font>";
    } else echo "<font face=\"Verdana\">Mot de passe incorrect !</font>";
  } else echo "<font face=\"Verdana\">Formulaire incomplet !</font>";
}

?>
<html>
<body>

<form action="admin_images.php" method="post">
<input type="hidden" name="action" value="supprimer">
<table>
<tr>
<td><font face="Verdana">Image à supprimer :</font></td>
<td><select name="image">
<option></option>
<option value="">+++ accueil +++</option>
<?php

$images1 = new images();
$images1->repertoire = "accueil";
$images1->liste_select();

?>
<option value="">+++gravure+++</option>
<?php

$images2 = new images();
$images2->repertoire = "gravure";
$images2->liste_select();

?>

</select></td>
</tr>
<tr>
<td><font face="Verdana">Mot de passe :</font></td>
<td><input type="password" name="mot_de_passe"></td>
</tr>
<tr>
<td><input type="submit" value="Supprimer l'image !" style="color: #FF0000;"></td>
</tr>
</table>
</form>

<hr>
<form action="admin_images.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="action" value="ajouter">
<table>
<tr>
<td><font face="Verdana">Repertoire de destination :</font></td>
<td><select name="repertoire">
<option></option>
<option value="accueil">accueil</option>
<option value="gravure">gravure</option>



</select></td>
</tr>
<tr>
<td><font face="Verdana">Fichier à envoyer :</font></td>
<td><input type="file" name="image"></td>
</tr>
<tr>
<td><font face="Verdana">Mot de passe :</font></td>
<td><input type="password" name="mot_de_passe"></td>
</tr>
<tr>
<td><input type="submit" value="Envoyer image"></td>
</tr>
</table>
</form>

<hr>

<a href="index.html">Retour à l'accueil</a>


</body>
</html>
+ le fichier pour mettre ou modifier le texte descriptif
<?php

function getextension($fichier) {
  $bouts = explode(".", $fichier);
  $extension = array_pop($bouts);
  return $extension;
}

if (!empty($_POST['fichier']) && isset($_POST['fichier']) && $_POST['fichier'] != ".htaccess") {
  if ($_POST['action'] == "modifier") {
    if (!empty($_POST['contenu']) && isset($_POST['contenu']) &&
        !empty($_POST['login']) && isset($_POST['login']) &&
        !empty($_POST['pass']) && isset($_POST['pass'])) {
      if ($_POST['login'] == "xxxxxx" && $_POST['pass'] == "xxxxxx") {
        if (getextension($_POST['fichier']) == "txt" && !ereg("\.\.", $_POST['fichier']) &&
            !ereg("/", $_POST['fichier']) && file_exists("./interact/" . $_POST['fichier'])) {
          $pointeur = fopen("./interact/" . $fichier, "w");
          fwrite($pointeur, $_POST['contenu']);
          fclose($pointeur);
        } else echo "Fichier non autorisé !\n";
      } else echo "Login ou mot de passe incorrect !\n";
    } else echo "Formulaire incomplet !\n";
  } else
   {
    if (getextension($_POST['fichier']) == "txt" && !ereg("\.\.", $_POST['fichier']) &&
        !ereg("/", $_POST['fichier']) && file_exists("./interact/" . $_POST['fichier'])) {
      echo "<form action='admin_texte.php' method='post'>\n";
      echo "<input type='hidden' name='action' value='modifier'>\n";
      echo "<input type='hidden' name='fichier' value='$fichier'>\n";
      echo "Contenu de $fichier :<br>\n";
      echo "<textarea name='contenu' cols='50' rows='12'>";
      
      
      $fichier = $_POST['fichier'];
      $pointeur = fopen("./interact/" . $fichier, "r");
      while (!feof($pointeur)) {
        $ligne=fgets($pointeur, 4096);
        
        echo "$ligne";
      }
      fclose($pointeur);
      echo "</textarea><br>\n";
      echo "Login : <input type='text' name='login' size='10'><br>\n";
      echo "Passe : <input type='password' name='pass' size='10'><br>\n";
      echo "<input type='submit' value='Enregistrer les modifications'>\n";
      echo "</form>\n";
    } else echo "Fichier non autorisé\n";
  }
} else {
  echo "<form action='admin_texte.php' method='post'>\n";
  echo "Choisissez :<br>\n";
  echo "<select name='fichier'>\n";
  echo "<option></option>\n";
  if ($pointeur = opendir("./interact/")) {
    while (($file = readdir($pointeur)) !== false) {
      if ($file != "" && $file != "." && $file != ".." && $file != ".htaccess") {
        echo "<option value='$file'>$file</option>\n";
      }
    }
    closedir($pointeur);
  } else echo "Erreur sur le serveur !\n";
  echo "</select>\n";
  echo "<input type='submit' value='Modifier ce fichier'>\n";
  echo "</form>\n";
}

?>
<a href="index.htm">Retour à l'accueil</a>
Le souci, c'est que j'ais 70 images et descriptifs à mettre, cela veut dire des lignes de codes interminables, une ribambelle de dossiers images, bref quasi ingérable.
Y a t'il un moyen plus simple de réaliser cela.
Merci d'avance
webide

Posté : 25 août 2006, 11:13
par ouckileou
J'ai changé

Code : Tout sélectionner

par [php] :axe:

Posté : 27 août 2006, 15:50
par webide
Bonjour
J'ais essayé de créer le tableau avec une admin pour insérer les nouveautées et une base de données (je débute)
Enfin bref attention aux dégats.
Voici la base sql
CREATE TABLE an_support (
  photo varchar(50) NOT NULL default '',
  message text NOT NULL,
) TYPE=MyISAM;
La page d'admin pour insérer les photos et descriptifs:
$hote="localhost";
$user="root";
$base_id = mysql_connect($hote, $user);
if (!$base_id){echo "Connexion à la base de données impossible !";}
if (isset ($file) && $HTTP_POST_FILES["file"]["error"]==0 && $HTTP_POST_VARS['MAX_FILE_SIZE']>=$HTTP_POST_FILES["file"]["size"])
$nom=$HTTP_POST_FILES["file"]["name"];
$point=strrpos($nom,"."); 
if (!$point) $ext=""; else $ext=strtolower(substr($nom,$point));
if (($ext==".jpg") || ($ext==".gif" )) 
$repertoire_upload="support/";

$insertSQL = "INSERT INTO support (message, photo) VALUES ('$message','$photo')";

<html>
<body>

<form action="envoi" method="post" enctype="multipart/form-data" name="form1">
                  <input name="MAX_FILE_SIZE" type="hidden" value="60000">
                  <table align="center">
                    <tr valign="baseline">
                         <td nowrap align="right">Message:</td>
                      <td><textarea name="message" cols="40" rows="7"></textarea></td>
                    </tr>
                    <tr valign="baseline">
                      <td nowrap align="right">&nbsp;</td>
                      <td>Photo format gif ou jpg pas plus de 60ko </td>
                    </tr>
                    <tr valign="baseline">
                      <td nowrap align="right">Photo:</td>
                      <td><input name="file" type="file" id="file" size="35"></td>
                    </tr>
                    <tr valign="baseline">
                      <td nowrap align="right">&nbsp;</td>
                      <input type="submit" value="Insérer l'enregistrement">
                        <input name="ajout" type="hidden" id="ajout" value="ok">
                        </tr>
                  </table>
                  </form>
et la page ou apparaisent les images et les descriptifs (6 photos par ligne)
<?php


$nb = 6;               
$host = "localhost";
$login = "xxx";        
$hostname = "xxx";     

$bdd = mysql_connect($host, $login);

mysql_select_db($hostname,$bdd);

$sql = "SELECT * FROM `table` ORDER BY `id` ASC";

$req = mysql_query($sql) or die('<u>Probleme SQL</u> : '.$sql.'<br>'.mysql_error
());

echo'<table>';
$i = 1;
while($resultat = mysql_fetch_array($req)) {
if($i == 1) { echo'<tr>'; }
echo'<td><img src="'.$resultat['url'].'"></img></td></tr>';
echo'<td>{$resultat['message text']</td>}
$i++;
if($i > $nb) { echo'</tr>'; $i = 1; }
}
echo'</table>';
?>
Il y a beaucoup d'erreur je pense.
Si quelqu'un avait la patience de regarder.
Merci d'avance
webide