Page 1 sur 1

script partenaires

Posté : 27 déc. 2007, 14:54
par fabrice88
bonjour,
je recherche a créé un script qui me permetrait de faire ceci :
depuis un interface admin :
- création d'un nouveau partenaire
--> Ajout du logo du partenaire 130 x130 px (logo cliquable pour aller sur le site du partenaire)
--> Ajout du Nom du partenaire
--> Ajout du de la Description de l'activité
--> Ajout de l'adresse du site du partenaire.
--> Affichage de la date d'inclusion du partenaire sur mon site

+ possibilité de modifié ou de supprimer un partenaire

Se que verait l'internaute :
--> Nom du partenaire
--> logo cliquable du partenaire 130 x130 px
--> Description de l'activité
--> Adresse cliquable du site du partenaire.
--> Nombre de fois ou le lien a été cliqué

Voilà si quelqu'un peut m'aider ...

Merci d'avance

Posté : 27 déc. 2007, 15:35
par zeus
Modération :
PHPFrance n'est pas un site de distribution de scripts gratuits,
ni de débuggage de scripts téléchargés et utilisés sans compréhension.

Merci de prendre le temps de lire les règlements.

Posté : 27 déc. 2007, 15:44
par fabrice88
je ne demande pas qu'on me donne quelque chose de tout fais je demande que l'on m'aide a créé le script...

Posté : 27 déc. 2007, 15:55
par zeus
Il te faut pour ça nous dire où tu en es, qu'est-ce que tu pensais faire, où tu bloques.

Si tu n'as rien de ce que je te demande, nous interprétons ça comme "J'attends que ça me tombe dans les mains".

Posté : 27 déc. 2007, 16:39
par fabrice88
ben j'en suis au debut et je sais pas par quel bout commencé.
j'ai deja ma liste de partenaires et toutes les infos pour le contenu.
j'aimerai faire quelques chose de propre est de claire.
si vous pouviez m'indiquer les étapes a suivrent.... Merci

Posté : 28 déc. 2007, 03:04
par Berzemus
ben, il me semble que tu as déjà une belle liste d'objectifs, il suffit plus qu'a les réunir dans une interface (la penser, la dessiner), puis coder l'un après l'autre.. tout dépend si tu veux y aller cowboy et coder tout de suite ou si tu préfères réflechir avant à la structure et tout et tout, pour commencer tout de suite avec une vue globale satisfaisante.

Posté : 29 déc. 2007, 00:15
par Kaoteknik
Ce n'est pas évident de démarrer de rien lorsqu'on ne connait pas grand chose, je le conçois, mais rassure-nous sur un point : quelles bases as-tu en programmation PHP ?

Si tu démarres de zéro, dans ce cas un bon ouvrage traitant du PHP pourrait t'être utile. Par ailleurs il existe de nombreux sites qui permettent de s'initier pas à pas, tels que PHP débutant ou Le Site du Zéro (pour ne citer que ceux-là).

Si par contre tu as déjà entamé l'écriture du code, montre-nous ce que tu as déjà fait, et nous pourrons t'orienter, te conseiller, te corriger...

En tout cas n'attend pas que quelqu'un te mâche tout le boulot, je doute que tu trouves quelqu'un d'aussi généreux, à moins de proposer une rémunération.

Bon courage ! ;)

Posté : 29 déc. 2007, 10:25
par fabrice88
bonjour,
voilà ou j'en suis.

Page Formulaires : (comment faire pour l'ajout du logo?)

Code : Tout sélectionner

<form action="valide.php" method="post"> <p>Nom <input type="text" name="nom"> <br /> email <input type="text" name="email"> <br /> url de votre site <input type="text" name="url"> <br /> titre de votre site (75 carac. maxi) <input type="text" name="titre"> <br /> description du site (255 carac. maxi) <input type="text" name="description"> <br /> logo 130 x 130px [color=red]??????????[/color] <br /> <input type="submit" value="Valider"> </p> </form>

La Page Valide.php

Code : Tout sélectionner

<?PHP $db = mysql_connect('localhost', 'user', 'password'); mysql_select_db('mabase',$db); $sql = "INSERT INTO partenaires VALUES('$nom','$email','$url','$titre','$description','$logo')"; mysql_query($sql) or die('Erreur SQL !'.$sql.' '.mysql_error()); echo 'Les infos du nouveau partenaire ont été enregistrées.'; mysql_close(); ?>
Voilà pour l'instant j'en suis la. (pour l'affichage je vairai apres). Pour le logo a ajouté je sais pas comment faire.

Posté : 29 déc. 2007, 13:21
par Kaoteknik
Pour limiter le nombre de caractères pouvant être inscrit dans un champ, il faut utiliser le paramètre maxlength dans la balise <input>.

Ensuite la balise <textarea> sera plus adaptée qu'une balise <input> pour inscrire un texte long. Tu peux aussi lui ajouter l'attribut maxlength.

Pour ajouter un logo tu as déjà créé les champs "url de votre site" et "logo". Il ne te faudra rien de plus. Cela dit la balise <input> doit contenir l'attribut type="file" pour permettre le transfert de fichier. Il faudra également ajouter l'attribut enctype="multipart/form-data" dans la balise <form>.

Code : Tout sélectionner

<form action="valide.php" method="post" enctype="multipart/form-data"> <p> Nom <input type="text" name="nom" /> <br /> email <input type="text" name="email" /> <br /> url de votre site <input type="text" name="url" /> <br /> titre de votre site (75 carac. maxi) <input type="text" name="titre" maxlength="75" /> <br /> description du site (255 carac. maxi) <textarea name="description" maxlength="255"></textarea> <br /> logo 130 x 130px [color=red]??????????[/color] <input type="file" name="logo" /> <br /> <input type="submit" value="Valider"> </p> </form>

Posté : 29 déc. 2007, 13:28
par fabrice88
ok merci.
est ce que avec

Code : Tout sélectionner

<textarea name="description" maxlength="255"></textarea>
je suis limité a 255 caracteres dans mysql ? j'avais mis 255 car j'avais lu qu'on ne pouvais pas mettre plus de 255 caracteres.

est ce que ma page valide est bonne ?
pour le logo je me demande ou va allé s'enregistré l'image du logo sur le serveur ftp. je voudrai ke l'image s'enregistre dans un sous repertoir partenaires.

-- Pages
-- Images
|--partenaires

Posté : 29 déc. 2007, 13:43
par Kaoteknik
En l'état le formulaire ne suffira pas pour que tout fonctionne comme tu le souhaites. Il faut en effet un script php qui permettra l'upload d'images dans un répertoire.

Va faire un tour sur ce site qui propose un script bien fichu à ce propos.

Edit : concernant la limitation de caractères pouvant être enregistrés dans une base de données, tout va dépendre de l'attribut TYPE que tu attribueras au champ correspondant dans ta base de données. Consulte la documentation pour plus de précisions.

Posté : 29 déc. 2007, 20:18
par fabrice88
sa marche. juste un petit probleme avec l'image du logo.
l'upload fonctionne bien car l'image va bien dans le repertoire que je lui demande et se trouve bien du fait sur mon ftp.
Par contre dans mysql le chemin est faut au lieu d'avoir par exemple : "logopartenaires/partenaire1.jpg"
j'ai des choses du genre "/tmp/php346EG0"
donc quand je veus affiché mon image sa ne fonctionne pas.

si quelqu'un peus voir ou est l'erreur ? ( je vous redonne les codes dans l'etat actuel)

nouveau.php

Code : Tout sélectionner

<form action="valide.php" method="post" enctype="multipart/form-data"> <p> Nom <input type="text" name="nom" /> <br /> email <input type="text" name="email" /> <br /> url de votre site <input type="text" name="url" /> <br /> titre de votre site (75 carac. maxi) <input type="text" name="titre" maxlength="75" /> <br /> description du site (255 carac. maxi) <textarea name="description" maxlength="255"></textarea> <br /> logo 130 x 130px <input type="file" name="logo" accept="image/gif" /> <br /> <input type="submit" value="Valider"> </p> </form>
Valide.php (avec test image taille et poid pour logo)

Code : Tout sélectionner

<?PHP $db = mysql_connect('xxxx', 'xxxx', 'xxxxx'); mysql_select_db('xxxx',$db); $sql = "INSERT INTO partenaires VALUES('$id','$nom','$email','$url','$titre','$description','$logo')"; mysql_query($sql) or die('Erreur SQL !'.$sql.' '.mysql_error()); //LOGO PARTENAIRE if (isset($_FILES['logo'])) { //$_FILES existe on récupère les infos qui nous intéressent $logo=$_FILES['logo']['name'];//nom réel de l'image $size=$_FILES['logo']['size']; //poids de l'image en octets $tmp=$_FILES['logo']['tmp_name'];//nom temporaire de l'image (sur le serveur) $type=$_FILES['logo']['type'];//type de l'image //On récupère la taille de l'image list($width,$height)=getimagesize($tmp); if (is_uploaded_file($tmp)) //permet de vérifier si le fichier a été uplodé via http { //vérification du type de l'img, son poids et sa taille if ($type="image/gif" && $size<=30500 && $width<=150 && $height<=150 ) { // type mime gif, poids < à 20500 octets soit environ 20Ko, largeur = hauteur = 100px //Pour supprimer les espaces dans les noms de fichiers car celà entraîne une erreur lorsque vous voulez l'afficher $logo = preg_replace ("` `i","",$logo);//ligne facultative :) //On vérifie s'il existe une image qui a le même nom dans le répertoire if (file_exists('./logopartenaires/'.$logo)) { //Le fichier existe on rajoute dans son nom le timestamp du moment pour le différencier de la première (comme cela on est sûr de ne pas avoir 2 images avec le même nom :) ) $nom_final= preg_replace("`.gif`is",date("U").".gif",$logo); } else { $nom_final=$logo; //l'image n'existe pas on garde le même nom } //pour afficher le repertoire dans la base de donnees $new_logo = "logopartenaires/$logo"; //on déplace l'image dans le répertoire final move_uploaded_file($tmp,'./logopartenaires/'.$nom_final); //Message indiquant que tout s'est bien passé echo "L'image a été uploadée avec succès<br/>"; } else { //Le type mime, ou la taille ou le poids est incorrect echo 'Votre image a été rejetée (poids, taille ou type incorrect)'; } } } //Pour tester si l'image est bien à sa place echo '<img src="./logopartenaires/'.$nom_final.'" border="0" />'; echo '<br/>'; echo '<a href="javascript:history.back();">Retour</a>'; echo 'Les infos du nouveau partenaire ont été enregistrées.'; mysql_close(); ?>
et enfin ma page affichagepartenaires.php

Code : Tout sélectionner

<?PHP $db = mysql_connect('xxx', 'xxxx', 'xxxx'); mysql_select_db('mabase',$db); $sql = 'SELECT * FROM partenaires'; $req = mysql_query($sql) or die('Erreur SQL ! '.$sql.' '.mysql_error()); while($data = mysql_fetch_array($req)) { echo " <table> <tr> <td>"; echo $data['nom']; echo "</td> <td>"; echo $data['email']; echo "</td> </tr> <tr> <td>"; echo $data['titre']; echo "</td> <td>"; echo $data['url']; echo "</td> </tr> <tr> <td>"; echo $data['description']; echo "</td> <td>"; echo '<img src="', $data['logo'] ,'" alt="Logo partenaire", width="130" height="130"/>'; echo "</td> </tr> </table> "; } mysql_close(); ?>
Voilà si quelqun peut m'expliquer ou est l'erreur ?

Posté : 30 déc. 2007, 01:41
par Kaoteknik
Je n'ai pas lu l'intégralité de ton code, mais il y a au moins une erreur à cette ligne :
if ($type="image/gif" && $size<=30500 && $width<=150 && $height<=150 )
Le signe = seul est un opérateur d'affectation, aussi faudrait-il en mettre deux (==) afin d'effectuer une comparaison.

Je n'en suis pas certain mais il me semble que tu cherches à vérifier que le type de fichier est bien de type gif, il n'est donc pas nécessaire d'indiquer un répertoire dans la chaîne que tu compares à la variable $type.

Essaie de remplacer cette ligne par ceci :
if ($type == "gif" && $size <= 30500 && $width <= 150 && $height <= 150 )