par
fabrice88 » 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 ?
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]<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>[/code]
Valide.php (avec test image taille et poid pour logo)
[code]
<?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();
?> [/code]
et enfin ma page affichagepartenaires.php
[code]<?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();
?> [/code]
Voilà si quelqun peut m'expliquer ou est l'erreur ?