Texte avec image (+formulaire)

Signaler
Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
-
Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
-
bonjour à tous !!
je suis novice dans le PHP et je voudrai savoir comment "combiner" 2 scripts que j'ai trouvé: un pour uploader des fichiers et un pour poster des commentaire

voici le code du fichier en .PHP (avec la structure HTML) pour uploader des fichiers:
<HTML>
<head>
<title>UPLOAD DE FICHIERS</title>
</head>

<CENTER>

<?
// Taille max des fichiers (octets)
$MFS= 2000000;
// Répertoire de stockage
$rep="upload/";

if(isset($_FILES['userfile'])) {
if($_FILES['userfile']['size']>0) {
   $savefile= $rep.$_FILES['userfile']['name'];
   $temp = $_FILES['userfile']['tmp_name'];
   if (move_uploaded_file($temp, $savefile)) { ?>
      Votre fichier a bien été enregistré !

Nom : <?echo $_FILES['userfile']['name'];?>

Taille : <?echo $_FILES['userfile']['size'];?> o

Type : <?echo $_FILES['userfile']['type'];?>
<?   } else { ?>
      Erreur d'enregistrement !
   <? }

} else { ?>
   Trop gros fichier !
   ( <? echo $MFS;?> octets max.)
<? }
} ?>
  
<FORM METHOD ="POST"
      ENCTYPE= "multipart/form-data">
   >
  

  
</FORM>

LISTE DES PHOTOS UPLOADEES

<? $dir = opendir($rep);

while ($f = readdir($dir))
   if(is_file($rep.$f)) { ?>
      ----

                     "
               target="_blank"><? echo $f; ?>
         |
         <? echo filesize($rep.$f); ?>,
                     <? echo date("d/m/Y H:i:s",filectime($rep.$f)); ?>
        ,
   <? }

closedir($dir); ?>

</CENTER></HTML>

et le fichier du formulaire-page d'affichage des commentaires (en .PHP3):
<?php

$largeurTableauxA ="80%";                             // Largeur du TableauA
$couleurBordTableauA= "#000000";                      // Couleur de la bordure du TableauA
$couleurFondEnteteTableauA="#FFCC00";                // Couleur de fond de la ligne d'entête du tableauA
$couleurFondLigneNomAuteurTableauA="#EBB800";        // Couleur de fond des lignes "Nom de l'auteur"
$couleurFondLigneCommentaireTableauA="#FFCC00";      // Couleur de fond des lignes "Commentaire"

$NombreComParPage=10;              // Nombre maximum de commentaires à afficher dans le tableau (par page)
$NombreMaxPages=50;                // Nombre maximum de pages de commentaires susceptibles d'être affichées

$largeurTableauxB="80%";                             // Largeur du TableauB
$couleurBordTableauB="#000000";                      // Couleur de la bordure du TableauB
$couleurFondEnteteTableauB="#FFCC00";                // Couleur de fond de la ligne d'entête du tableauB
$couleurFondFormulaireTableauB="#FFCC00";            // Couleur de fond de la cellule affichant le formulaire

$longueurMaxCommentaires="50000";   // Nombre maximum de caractères pouvant être postés dans un commentaire
$longueurMaxMots="50";              // Nombre maximum de caractères par "mot" (ce dispositif permet d'empêcher une éventuelle augmentation incontrôlée de la largeur des tableaux)

// #####################################################################################
?>

<?php
// ****************************************************************************************

if((@ strlen($n)>$longueurMaxCommentaires) or (@ strlen($c)>$longueurMaxCommentaires)) {
  print("Désolé, la taille maximale des annonces pouvant être postés est limitée à $longueurMaxCommentaires caractères.
\n");
  print("Retour aux annonces\n");
  exit;
}
// #####################################################################################
?>

<html>
<head>
<title>Annonces</title>
</head>

<center>
Annonces
</center>

<?php
// ***********************************************************************************

if(!file_exists("livre.dat")) {
  $idFicLivre =fopen("livre.dat","w+");
    fputs($idFicLivre,"Fichier Index. Ne pas éditer !\n");
  fclose($idFicLivre);
}

if(!isset($c)) $c= "";
if(!isset($n)) $n="";
if(!isset($p)) $p="";

// ***********************************************************************************

function coupeMotsLongs($chaine,$ncaracteres) {
  $chaineRes=$chaine;
  while(ereg("([^ ]{".$ncaracteres."})[^ ]",$chaineRes,$corres)) {
    $partRep=$corres[1];
    $chaineRes=ereg_replace($partRep,$partRep."
",$chaineRes);
  }
  return($chaineRes);
}

// ***********************************************************************************

if ($c and $n) {

  // détermination de la date
  $tdate=getdate();
  $jour=sprintf("%02.2d",$tdate["mday"])."/".sprintf("%02.2d",$tdate["mon"])."/".$tdate["year"];
  $heure=sprintf("%02.2d",$tdate["hours"])."H".sprintf("%02.2d",$tdate["minutes"]);
  $d=$jour." à ".$heure;

  // nettoyage du nom
  $n=htmlentities($n);
  $n=stripslashes($n);
  $n=trim($n);

  // nettoyage du commentaire
  $c=htmlentities($c);
  $c=str_replace(chr(10),"
",$c);
  $c=str_replace(chr(13),"",$c);
  $c=stripslashes($c);
  $c=trim($c);

  $idFicLivreCom=fopen("livre.dat","a+");
  fputs($idFicLivreCom,$n);         // 1ère ligne
  fputs($idFicLivreCom,"|");        //
  fputs($idFicLivreCom,$d."|\n");   //
  fputs($idFicLivreCom,$c."\n");    // 2ème ligne
  fclose($idFicLivreCom);

}

// ***********************************************************************************

$TabLivre=file("livre.dat");
$nLignesTabLivre=count($TabLivre)-1;
$nCommentaires=$nLignesTabLivre/2;

for($compt=1;$compt<=$nCommentaires;$compt++) {
  $nom[$compt]=trim(stripslashes(strtok($TabLivre[($compt*2)-1],"|")));
  $date[$compt]=trim(stripslashes(strtok("|")));
  $commentaire[$compt]=trim(stripslashes($TabLivre[($compt*2)]));
}

// ***********************************************************************************

if($n and $c)  {
  print("\n\");
  print(\"----
\n");
  print("<center> \n");
  print(" \n");
  print("Merci pour votre participation ! \n");
  print(" \n");
  print("</center> \n");
  print(", \n\");
  print("
\n");
  print("
\n");
}

// ***********************************************************************************

if(!$p) {
  $p=1;   // $p représente le numéro de la page de commentaire à afficher : par défaut, $p=1
}

if($nCommentaires>0) {

  print("\n\");
  print(\"----
\n");

    print("<table border=\"0\" width=\"100%\" cellspacing=\"1\" align=\"center\" cellpadding=\"5\"> \n");

    print("----
\n");
    print(", \n\");

    if($nCommentaires>$NombreComParPage) {
       print(\"<center> \n\");
      print(\" \n\");
      print(\" pages &nbsp; \n\");
      print(\" \n\");
      for($a =1;$a<= min($NombreMaxPages,floor((($nCommentaires-1)/$NombreComParPage)+1));$a++) {
        if($a==$p) print(\"$a &nbsp; \n\");
        else print(\"$a &nbsp; \n\");
      }
      print(\" \n\");
      print(\" \n\");
      print(\"</center> \n\");
    }

    print(\" \n\");
    print(\"<center> \n\");
    print(\" ajouter une nouvelle annonce
\n\");
    print(\"</center> \n\");
    print(\" \n\");
    print(\"</td> \n\");
    print(\" \n\");

    for($compt =($nCommentaires-(($p-1)*$NombreComParPage));$compt>= max(1,($nCommentaires-($p*$NombreComParPage)+1));$compt--) {
      print(\"----
\n");
        print("<table> \n");
        print("----
\n");
        print(", &nbsp;</td> \n\");
        print(\"\n");
        print("".coupeMotsLongs($nom[$compt],$longueurMaxMots)." a écrit, le ".$date[$compt]." : \n");
        print(", \n\");
        print(\" \n\");
        print("
\n");
      print("</td></tr> \n");
      print("<tr><td bgcolor="$couleurFondLigneCommentaireTableauA"> \n");
        print("\n\");
        print(\"----
\n\");
        print(\"&nbsp;, \n\");
        print(\"\n");
        print("".coupeMotsLongs($commentaire[$compt],$longueurMaxMots)."\n");
        print(", \n\");
        print(\" \n\");
        print("
\n");
      print("</td></tr> \n");
    }

    if(($nCommentaires>$NombreComParPage) and $p<=min($NombreMaxPages,floor((($nCommentaires-1)/$NombreComParPage)+1))) {
      print("<tr> \n");
      print("<td bgcolor="$couleurFondEnteteTableauA" height="20"> \n");
      print("<center> \n");
      print(" \n");
      print(" pages &nbsp; \n");
      print(" \n");
      for($a =1;$a<= min($NombreMaxPages,floor((($nCommentaires-1)/$NombreComParPage)+1));$a++) {
        if($a==$p) print("$a &nbsp; \n");
        else print("$a &nbsp; \n");
      }
      print(" \n");
      print(" \n");
      print("</center> \n");
      print("</td> \n");
      print("</tr> \n");
    }

    print("</table> \n");

  print("</td></tr> \n");

  print("</table> \n");

  print("
\n");

}

// *********************************************************************************************

if($nCommentaires<1)  {
  print("\n\");
  print(\"----
\n");
  print("<center> \n");
  print(" \n");
  print("Il n'y a aucune annonce. \n");
  print(" \n");
  print("</center> \n");
  print(", \n\");
  print("
\n");
  print("
\n");
}

// ***********************************************************************************

print("");

print("\n\");
print(\"----
\n");

  print("<table border=\"0\" width=\"100%\" cellspacing=\"1\" align=\"center\" cellpadding=\"5\"> \n");

  print("----
\n");
  print(", \n\");
  print(\" \n\");

  if($nCommentaires>0) print(\" <center>Ajouter une nouvelle annonces :</center> \n\");
  else print(\"<center>Envoyer une premiere annonce :</center> \n\");

  print(\" \n\");
  print(\"</td> \n\");
  print(\" \n\");

  print(\"----
\n");
  print("<form method =\"POST\" action=\"livredor.php3\"> \n");
  print("<center> \n");
  print("
\n");
  print(" \n");
  print("Votre nom:&nbsp; \n");
  print(" \n");
  print(" \n");
  print("

\n");
  print("<textarea rows=\"7\" name=\"c\" cols=\"50\" wrap=\"virtual\" style=\"background-color: #000000; color: #FFCC00; border: 1 solid #FF0000\"></textarea> \n");
  print("
\n");
  print(" \n");
  print("</form> \n");
  print(", \n\");

  print("
\n");

print("</td></tr> \n");
print("</table> \n");

// #####################################################################################
?>

</html>

mon but serait de créer une page où des internautes post leurs annonces avec une photo, donc le upload serait utilisé pour des photo et je cherche le moyen d'afficher ces photos
avec: une photo correspond à une anonce, je peux m'occuper de la structure HTML de la page finale si besoin est.

merci d'avance !!!








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




Jack NUMBER


 

2 réponses

Messages postés
163
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
27 janvier 2016

bonjour,

Je pense que t'as besoin d'une base de données pour stocker ces infos (les articles et les liens des images)

c mieux qu'un fichier.

Pour le ulpoad je pense que ton script marche, il serai mieux d'utiliser deux pages , la première pour visualisation des articles et images et sur cette page tu mets un lien

[upload.php cliquez ici pour envoyer un article/ image]
et dans ta page upload.php, le script de postage du fichier et de l'article

@ -:) Zebra
Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
2
OK
c'est vrai ça sera plus simple de faire ça Zebra
mais je ne m'y connai pa du tout en PHP et je ne sais vraimen pas comment géré une base de données, j'ai créé un forum avec phpBB mais bon tout est automatique, je sais juste comment accéder à cette base de données par Free.

[ considérons un tableau de bordure 0,
avec l'image dans la cellule de gauche et le texte de l'article dans la cellule de droite ]
en gros je voudrait:
- savoir comment "dire" telle image correspond à tel article lors de l'upload
- savoir afficher telle image à tel endroit (je peux récupéré la même chose pour le texte dans le 1er script)
tous ça automatiquement avec le PHP

merci !!!








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




Jack NUMBER