par
AdriJaska » 26 août 2016, 17:25
Bonjour à tous !
Je vous explique mon problème, je suis entrain de faire un formulaire d'upload d'images qui fonctionne très bien mais le problème vient du fait que je veux conserver l'adresse où sont uploadées les photos dans ma base de donnée. Mon site est sur Free.fr et ma base de donnée aussi. Alors je sais qu'il y a certains problèmes avec eux au niveau de la racine du site, il faut ajouter "/mnt/132/sda/4/9/..." avant l'adresse. Je l'ai donc fait, mais le soucis, c'est qu'après mon url d'image dans ma base de donnée, j'ai de nouveau ce début d'url ! Cela me donne ceci : "/mnt/132/sda/4/9/adrien***/database/images_articles/32//mnt/132/sda/4/9/adrien***/php6JhoYp"
Je n'arrive pas à comprendre pourquoi... Voici mon code PHP et mon formulaire :
Code : Tout sélectionner
<?php
// on se connecte à la base de données
include('connexion_bd.php');
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données du fichier connexion_bd.php.');
mysql_query("SET NAMES UTF8");
$res = mysql_query("SELECT id FROM Articles ORDER BY `Articles`.`id` DESC LIMIT 1");
$affiche = mysql_fetch_array($res);
//Traitement du formulaire
if(isset($_POST["Valider"]))
{
$class = $_POST["class"];
$title = htmlspecialchars(stripcslashes(trim($_POST["title"])));
$born_date = $_POST["born_date"];
$sex = $_POST["sex"];
$coat = $_POST["coat"];
$text = stripcslashes($_POST["text"]);
$statut = $_POST["statut"];
$url_img1 = '/mnt/132/sda/4/9/adrienphilippon/database/images_articles/'.$affiche['id'].'/'.$photo.'';
$result = mysql_query("INSERT INTO Articles VALUES ( '', '".mysql_real_escape_string($class)."', '".mysql_real_escape_string($title)."', '".mysql_real_escape_string($born_date)."', '".mysql_real_escape_string($sex)."', '".mysql_real_escape_string($coat)."', '".mysql_real_escape_string($text)."', '".mysql_real_escape_string($statut)."', '".mysql_real_escape_string($url_img1)."' ) ");
//Si il y a une erreur, on crie ^^
if (!$result) {
die('Requête invalide : ' . mysql_error());
}
else{
//Si tout est ok, on informe le webmaster
$message_ok = '<div class="okay"><p>L\'article à bien été publié</p><div class="bouton"><a href="/admin/index.php" style="background-color: #2399de; color: #FFF;">Accueil</a></div></div>';
}
//On ferme else
}
//On ferme if(isset($_POST["Valider"]))
?>
Code : Tout sélectionner
<p>Image</br>
<?php
// on se connecte à la base de données
include('connexion_bd.php');
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données du fichier connexion_bd.php.');
mysql_query("SET NAMES UTF8");
//On va chercher le dernier numéro id
//SHOW TABLE STATUS fournit des informations sur les tables
$res = mysql_query("SELECT id FROM Articles ORDER BY `Articles`.`id` DESC LIMIT 1");
$affiche = mysql_fetch_array($res);
//on construit le nom du dossier et son adresse sur le serveur
$dossier_upload = '/mnt/132/sda/4/9/adrienphilippon/database/images_articles/'.$affiche['id'].'';
//si le dossier n'existe pas, on le créé
if (!file_exists($dossier_upload)) {
//on créé automatiquement un dossier d'upload d'image
mkdir ("$dossier_upload", 0777);
}
?>
<?php
//on vérifie l'extension des images et on arrange la mise en forme du nom
if(isset($_FILES['photo']))
{
unset($erreur);
//Extension autorisé
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG', 'bmp');
//Chemin du dossier image
$dest_dossier = '/mnt/132/sda/4/9/adrienphilippon/database/images_articles/'.$affiche['id'].'/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = '<a name="ancre_formulaire"></a><div class="erreur">Veuillez
sélectionner un fichier de type png, gif, bmp ou jpg !</div>';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèé
êëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
//Erreur
if(isset($erreur)){
echo $erreur;
}
?>
<fieldset>
<input type="file" size="65" name="photo" /></p>
</fieldset>
</p>
<p>
<div class="bouton"><input name="Valider" value="Valider" type="submit" required></div>
</p>
Si quelqu'un a une solution je suis preneur !
Merci d'avance.
Bonjour à tous !
Je vous explique mon problème, je suis entrain de faire un formulaire d'upload d'images qui fonctionne très bien mais le problème vient du fait que je veux conserver l'adresse où sont uploadées les photos dans ma base de donnée. Mon site est sur Free.fr et ma base de donnée aussi. Alors je sais qu'il y a certains problèmes avec eux au niveau de la racine du site, il faut ajouter "/mnt/132/sda/4/9/..." avant l'adresse. Je l'ai donc fait, mais le soucis, c'est qu'après mon url d'image dans ma base de donnée, j'ai de nouveau ce début d'url ! Cela me donne ceci : "/mnt/132/sda/4/9/adrien***/database/images_articles/32//mnt/132/sda/4/9/adrien***/php6JhoYp"
Je n'arrive pas à comprendre pourquoi... Voici mon code PHP et mon formulaire :
[code]<?php
// on se connecte à la base de données
include('connexion_bd.php');
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données du fichier connexion_bd.php.');
mysql_query("SET NAMES UTF8");
$res = mysql_query("SELECT id FROM Articles ORDER BY `Articles`.`id` DESC LIMIT 1");
$affiche = mysql_fetch_array($res);
//Traitement du formulaire
if(isset($_POST["Valider"]))
{
$class = $_POST["class"];
$title = htmlspecialchars(stripcslashes(trim($_POST["title"])));
$born_date = $_POST["born_date"];
$sex = $_POST["sex"];
$coat = $_POST["coat"];
$text = stripcslashes($_POST["text"]);
$statut = $_POST["statut"];
$url_img1 = '/mnt/132/sda/4/9/adrienphilippon/database/images_articles/'.$affiche['id'].'/'.$photo.'';
$result = mysql_query("INSERT INTO Articles VALUES ( '', '".mysql_real_escape_string($class)."', '".mysql_real_escape_string($title)."', '".mysql_real_escape_string($born_date)."', '".mysql_real_escape_string($sex)."', '".mysql_real_escape_string($coat)."', '".mysql_real_escape_string($text)."', '".mysql_real_escape_string($statut)."', '".mysql_real_escape_string($url_img1)."' ) ");
//Si il y a une erreur, on crie ^^
if (!$result) {
die('Requête invalide : ' . mysql_error());
}
else{
//Si tout est ok, on informe le webmaster
$message_ok = '<div class="okay"><p>L\'article à bien été publié</p><div class="bouton"><a href="/admin/index.php" style="background-color: #2399de; color: #FFF;">Accueil</a></div></div>';
}
//On ferme else
}
//On ferme if(isset($_POST["Valider"]))
?>[/code]
[code]<p>Image</br>
<?php
// on se connecte à la base de données
include('connexion_bd.php');
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données du fichier connexion_bd.php.');
mysql_query("SET NAMES UTF8");
//On va chercher le dernier numéro id
//SHOW TABLE STATUS fournit des informations sur les tables
$res = mysql_query("SELECT id FROM Articles ORDER BY `Articles`.`id` DESC LIMIT 1");
$affiche = mysql_fetch_array($res);
//on construit le nom du dossier et son adresse sur le serveur
$dossier_upload = '/mnt/132/sda/4/9/adrienphilippon/database/images_articles/'.$affiche['id'].'';
//si le dossier n'existe pas, on le créé
if (!file_exists($dossier_upload)) {
//on créé automatiquement un dossier d'upload d'image
mkdir ("$dossier_upload", 0777);
}
?>
<?php
//on vérifie l'extension des images et on arrange la mise en forme du nom
if(isset($_FILES['photo']))
{
unset($erreur);
//Extension autorisé
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPG', 'bmp');
//Chemin du dossier image
$dest_dossier = '/mnt/132/sda/4/9/adrienphilippon/database/images_articles/'.$affiche['id'].'/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = '<a name="ancre_formulaire"></a><div class="erreur">Veuillez
sélectionner un fichier de type png, gif, bmp ou jpg !</div>';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèé
êëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
//Erreur
if(isset($erreur)){
echo $erreur;
}
?>
<fieldset>
<input type="file" size="65" name="photo" /></p>
</fieldset>
</p>
<p>
<div class="bouton"><input name="Valider" value="Valider" type="submit" required></div>
</p>[/code]
Si quelqu'un a une solution je suis preneur ! :)
Merci d'avance.