Je viens de faire les tutoriaux de phpdébutant, pour construire une page d'ajout d'enregistrement dans une table. Je n'arrive pas a joindre ces deux scripts, le premier copie la photo dans le dossier images/news/ et le deuxième envoie les élèments (titre, corps...) dans la base de données.
Pouvez-vous m'aider.... En fait j'ai fait un formulaire de saisie avec des champs de texte dont celui du nom de la photo et celui du fichier photo (alors que j'aimerai ne faire qu'un champ et que le nom de la photo soit automatiquement celui du fichier que j'ai choisi).
Merci d'avance
Note : pour l'instant ça fonctionne mais ça me copie deux enregistrements dans ma base, et j'aimerais simplifier le code.
<?php
session_start();
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = '../images/news/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$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);
}
}
?>
deuxième script qui envoie l'enregistrement dans la base
<?php
if(isset($_POST['titre'])) $titre=$_POST['titre']; else $titre="";
if(isset($_POST['date'])) $date=$_POST['date']; else $date="";
if(isset($_POST['corps'])) $corps=$_POST['corps']; else $corps="";
if(isset($_POST['lien'])) $lien=$_POST['lien']; else $lien="";
if(isset($_POST['photo'])) $photo=$_POST['photo']; else $photo="";
{
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('toaster',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$sql = "INSERT INTO news(titre, date, corps, photo, lien) VALUES('$titre','$date','$corps','$photo','$lien')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
mysql_close(); // on ferme la connexion
}
?>