[PHP] Insert into ne marche pas

Miniking Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
 ReDLoG -
Bonjour, sur mon site, je fais un upload d'image, et avec ma requête insert into, rien ne s'insère dans ma base de donnée, j'ai besoin d'aide :S
Voila le code :

<?php if(isset($_POST['submit']))
{
$destination = "../images/";
move_uploaded_file($_FILES['file']['tmp_name'], $destination.$_FILES['file']['name']);
$lien = "../images/" . $_FILES['file']['name'] . "";
$nom = $_POST['name'];
$auteur = $_POST['auteur'];
$req = 'insert into images(nom, auteur, lien) values ('.$nom.', "'.$auteur.'", "'.$lien.'")';
mysql_query('insert into images(nom, auteur, lien) values ('.$nom.', "'.$auteur.'", "'.$lien.'")');
?>
<center>L'image a bien étée mise en ligne.
<br><br>
<a href="../">Accueil</a>
</center>
<?php
}
else
{
?>
<center>Alors comme ça tu veux ajouter une image ?<br>
Tu n'as qu'a compléter ce formulaire :
<br><br>
<form method="post" enctype="multipart/form-data">
Titre : <input type="text" name="name" /><br>
Auteur : <input type="text" name="auteur" /><br>
Image : <input type="file" name="file" /><br>
<input type="submit" name="submit" value="Envoyer !" />
</form>
</center>
<?php
}
?>


Et pourtant, rien n'est inséré dans la base de donnée, aidez moi svp U_U

Merci.
A voir également:

2 réponses

maka54 Messages postés 698 Date d'inscription   Statut Membre Dernière intervention   80
 
$req = 'insert into images(nom, auteur, lien) values ('.$nom.', "'.$auteur.'", "'.$lien.'")';


il manque des quotes autour de $nom

autre chose, inverse les quotes doubles et simples de cette manière :

$req = "insert into images(nom, auteur, lien) values ('".$nom."', '".$auteur."', '".$lien."')";
0
ReDLoG
 
<?php
if(isset($_POST['submit']) && $_POST['submit'] == 'Envoyer !') {
	$destination = "../images/";
	move_uploaded_file($_FILES['file']['tmp_name'], $destination.$_FILES['file']['name']);
	$lien = "../images/".$_FILES['file']['name'];
	$nom = $_POST['name'];
	$auteur = $_POST['auteur'];
	$req = "INSERT INTO images VALUES('$nom', '$auteur', '$lien')";
	mysql_query($req)or die(mysql_error());
?>
<p style="text-align: center;">L'image a bien étée mise en ligne.<br /><br />
<a href="../">Accueil</a></p>
<?php } else { ?>
<div style="text-align: center;">
	Alors comme ça tu veux ajouter une image ?<br />
	Tu n'as qu'a compléter ce formulaire :<br /><br />
	<form method="post" action="" enctype="multipart/form-data">
		Titre : <input type="text" name="name" value="" /><br />
		Auteur : <input type="text" name="auteur" value="" /><br />
		Image : <input type="file" name="file" /><br />
		<input type="submit" name="submit" value="Envoyer !" />
	</form>
</div>
<?php } ?>

Quelques remarques :
1. Je ne saurais trop te conseiller de brider le poids du fichier au niveau de la balise "file" et dans ton script PHP
2. Vérifier les données envoyer par le formulaire (il y a tellement de gens remplis de mauvaises intentions sur le net...) en javascript côté client puis en PHP côté serveur
3. Vérifier l'extension du fichier envoyé par le formulaire, dans ton cas, je pourrais très bien "uploader" un fichier javascript comportant une extension en .js.jpg
4. Renommer automatiquement le fichier uploader en y ajoutant par exemple un grain de sel pour plus de sécurité
4. Je suppose que tu as bien fait une connection à la base de données avant la requête SQL

Volià, il est possible que j'ai oublié une ou plusieurs choses mais certainement qu'un autre intervenant pourra corriger et/ou confirmer tout ceci...
0