script partenaires

Eléphanteau du PHP | 14 Messages

27 déc. 2007, 14:54

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
Modifié en dernier par fabrice88 le 27 déc. 2007, 15:47, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 déc. 2007, 15:35

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.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 14 Messages

27 déc. 2007, 15:44

je ne demande pas qu'on me donne quelque chose de tout fais je demande que l'on m'aide a créé le script...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 déc. 2007, 15:55

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".
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 14 Messages

27 déc. 2007, 16:39

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

ViPHP
ViPHP | 4039 Messages

28 déc. 2007, 03:04

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.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 185 Messages

29 déc. 2007, 00:15

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 ! ;)

Eléphanteau du PHP | 14 Messages

29 déc. 2007, 10:25

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.

Eléphant du PHP | 185 Messages

29 déc. 2007, 13:21

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>

Eléphanteau du PHP | 14 Messages

29 déc. 2007, 13:28

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

Eléphant du PHP | 185 Messages

29 déc. 2007, 13:43

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.

Eléphanteau du PHP | 14 Messages

29 déc. 2007, 20:18

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 ?

Eléphant du PHP | 185 Messages

30 déc. 2007, 01:41

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 )