Erreur de requête.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Erreur de requête.

Re: Erreur de requête.

par Sato » 29 juin 2012, 14:41

Merci beaucoup je n'ai plus aucune erreur.

Le problème est que maintenant le fichier s'upload bien et se place dans le bon répertoire mais rien ne s'insère dans la base de donnée.

Voici le code:

formulaire_ajout.php:

<!DOCTYPE html>
<html>
<head>
<title>Direct Tunes Béta</title>
</head>

<body>
<h2>Formulaire d'ajout de musiques</h2>
<form action="insertion_contenu.php" method="POST" enctype="multipart/form-data">
<p>Titre: <input type="text" name="titre" /></p>
<p>Commentaire: <br /><textarea name="commentaire" rows="10" cols="50"></textarea></p>
<input type="hidden" name="MAX_FILE_SIZE" value="209715234">
<p>Choisissez une musique .mp3 ou .rar inférieur à 500mb.</p>
<input type="file" name="photo">
<br /><br />
<input type="submit" name="ok" value="Uploader">
</form><br />
<a href="affichage_blog.php">Afficher la liste des musiques</a>
</body>
</html>
le fichier.php d'ajout:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>

<body>
<?php
$connect = mysqli_connect("sql3.cluster1.easy-hebergement.net", "creatuxjdp3", "gabrielle", "creatuxjdp3");
/* Verification de la connexion*/
if (!$connect) {
	echo "Echec de la connexion : ".mysqli_connect_error();
	exit;
}

if ($_FILES['photo']['error']) {
	switch ($_FILES['photo']['error']){
		case 1: // UPLOAD_ERR_INI_SIZE
			echo "La taille du fichier est plus grande que la limite autorisée par le serveur.";
			break;
		case 2: // UPLOAD_ERR_FORM_SIZE
			echo "Il y'a trop de texte dans le formulaire.";
			break;
		case 3: // UPLOAD_ERR_PARTIAL
			echo "L'envoie du fichier a été interrompu pendant le transfert.";
			break;
		case 4: // UPLOAD_ERR_NO_FILE
	}
}
else {
	echo "Aucune erreur dans le transfert de fichier.<br />";
	if ((isset($_FILES['photo']['name'])&&($_FILES['photo']['error'] == UPLOAD_ERR_OK))) {
		$chemin_destination = 'musiques/';
		move_uploaded_file($_FILES['photo']['tmp_name'], $chemin_destination.$_FILES['photo']['name']);
			echo "Le fichier ".$_FILES['photo']['name']." a été copié avec classe sur le serveur bravo !";
		}
		else {
			echo "Erreur, le fichier n'a pas pus être copié.";
		}
	}
	
$requete = "INSERT INTO contenu (Titre, Date, Commentaire, Photo)
VALUES ('".htmlentities(addslashes($_POST['titre']),ENT_QUOTES)."','".date("Y-m-d H:i:s")."','".htmlentities(addslashes($_POST['commentaire']), ENT_QUOTES)."','".$_FILES['photo']['name']."')";
$resultat = mysqli_query($connect,$requete);
$identifiant = mysqli_insert_id($connect);
mysqli_close($connect);

if (!$identifiant != 0) {
	echo "<br />Ajout du commentaire réussis.<br /><br />";
}

else {
	echo "<br />Le commentaire nas pas pus être ajouté.<br /><br />";
}

?>
</body>
</html>
Merci encore, on y est presque.
Désolé pour le post, bien évidemment c'est moi qui a posté, j'ai tout simplement oublier de me connecter.
Désolé encore.

Re: Erreur de requête.

par Invité » 29 juin 2012, 14:27

Merci beaucoup je n'ai plus aucune erreur.

Le problème est que maintenant le fichier s'upload bien et se place dans le bon répertoire mais rien ne s'insère dans la base de donnée.

Voici le code:

formulaire_ajout.php:

<!DOCTYPE html>
<html>
<head>
<title>Direct Tunes Béta</title>
</head>

<body>
<h2>Formulaire d'ajout de musiques</h2>
<form action="insertion_contenu.php" method="POST" enctype="multipart/form-data">
<p>Titre: <input type="text" name="titre" /></p>
<p>Commentaire: <br /><textarea name="commentaire" rows="10" cols="50"></textarea></p>
<input type="hidden" name="MAX_FILE_SIZE" value="209715234">
<p>Choisissez une musique .mp3 ou .rar inférieur à 500mb.</p>
<input type="file" name="photo">
<br /><br />
<input type="submit" name="ok" value="Uploader">
</form><br />
<a href="affichage_blog.php">Afficher la liste des musiques</a>
</body>
</html>
le fichier.php d'ajout:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>

<body>
<?php
$connect = mysqli_connect("sql3.cluster1.easy-hebergement.net", "creatuxjdp3", "gabrielle", "creatuxjdp3");
/* Verification de la connexion*/
if (!$connect) {
	echo "Echec de la connexion : ".mysqli_connect_error();
	exit;
}

if ($_FILES['photo']['error']) {
	switch ($_FILES['photo']['error']){
		case 1: // UPLOAD_ERR_INI_SIZE
			echo "La taille du fichier est plus grande que la limite autorisée par le serveur.";
			break;
		case 2: // UPLOAD_ERR_FORM_SIZE
			echo "Il y'a trop de texte dans le formulaire.";
			break;
		case 3: // UPLOAD_ERR_PARTIAL
			echo "L'envoie du fichier a été interrompu pendant le transfert.";
			break;
		case 4: // UPLOAD_ERR_NO_FILE
	}
}
else {
	echo "Aucune erreur dans le transfert de fichier.<br />";
	if ((isset($_FILES['photo']['name'])&&($_FILES['photo']['error'] == UPLOAD_ERR_OK))) {
		$chemin_destination = 'musiques/';
		move_uploaded_file($_FILES['photo']['tmp_name'], $chemin_destination.$_FILES['photo']['name']);
			echo "Le fichier ".$_FILES['photo']['name']." a été copié avec classe sur le serveur bravo !";
		}
		else {
			echo "Erreur, le fichier n'a pas pus être copié.";
		}
	}
	
$requete = "INSERT INTO contenu (Titre, Date, Commentaire, Photo)
VALUES ('".htmlentities(addslashes($_POST['titre']),ENT_QUOTES)."','".date("Y-m-d H:i:s")."','".htmlentities(addslashes($_POST['commentaire']), ENT_QUOTES)."','".$_FILES['photo']['name']."')";
$resultat = mysqli_query($connect,$requete);
$identifiant = mysqli_insert_id($connect);
mysqli_close($connect);

if (!$identifiant != 0) {
	echo "<br />Ajout du commentaire réussis.<br /><br />";
}

else {
	echo "<br />Le commentaire nas pas pus être ajouté.<br /><br />";
}

?>
</body>
</html>
Merci encore, on y est presque.

Re: Erreur de requête.

par dix2 » 29 juin 2012, 12:02

Notice: Use of undefined constant connect - assumed 'connect' in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 11
if (!$connect) {
Notice: Undefined variable: FILES in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 17
switch ($_FILES['photo']['error']){
Notice: Undefined index: commentaires in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 43
voir commentaire plus bas
Notice: Undefined index: photos in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 43
voir commentaire plus bas
Notice: Use of undefined constant identifiant - assumed 'identifiant' in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 48
if (!$identifiant !=0) {
pour les erreurs 3 et 4, le pb vient du fait que PHP ne trouve pas les données passées par la méthode POST (données qui s'appellent "commentaires" et "photos")
en clair, tu arrives sur cette page apres avoir validé un formulaire
les données qui sont envoyées via le formulaire se retrouvent dans le tableau $_POST (par exemple, si mon formulaire contient un champs texte qui s'appelle "description", le contenu de ce champs rempli par l'internaute est envoyé par POST au serveur qui va executer le script correspondant à la page ciblée par le formulaire en ayant dans le tableau $_POST un élément dont la clé est "description" et dont la valeur est ce qu'a tapé l'internaute)
Ainsi, les erreurs 3 et 4 signifient que le formulaire ne contient pas les champs "commentaires" et "photos"
donc PHP ne trouve pas les données $_POST["commentaires"] et $_POST["photos"]

@+
dix2

Re: Erreur de requête.

par Mazarini » 29 juin 2012, 11:47

Notice: Undefined variable: FILES in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 17
=> c'est $_FILE et pas $FILE
Notice: Undefined index: commentaires in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 43
=> var_dump($_POST) pour voir les index (faute de frappe ?)
Notice: Undefined index: photos in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 43
=> photo non ?
Notice: Use of undefined constant identifiant - assumed 'identifiant' in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 48
=> il faut mettre les index des tableaux non numérique avec des quotes comme une chaine de caractères. A moins que tu utilise une constante ou une variable. C'est comme la différence entre echo 'identifiant' et echo identifiant.

Indique les lignes dans le code, sinon on doit compté les lignes et c'est chiant.

Re: Erreur de requête.

par Sato » 29 juin 2012, 11:12

salut,

il manque une parenthese :
$requete = "INSERT INTO contenu (Titre, Date, Commentaire, Photo)
VALUES ('".htmlentities(addslashes($_POST['titre']),ENT_QUOTES)."','".date("Y-m-d H:i:s")."','".htmlentities(addslashes($_POST['commentaires']), ENT_QUOTES)."','".$_FILES['photos']['name']."')";

@+
dix2
Je te remercie.

Voila que je tombe sur plusieurs erreurs.
Je pense que le suicide est envisageable.

Notice: Use of undefined constant connect - assumed 'connect' in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 11

Notice: Undefined variable: FILES in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 17

Notice: Undefined index: commentaires in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 43

Notice: Undefined index: photos in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 43

Notice: Use of undefined constant identifiant - assumed 'identifiant' in /home/thomas/Sites/http/direct-tunes.su/insertion_contenu.php on line 48

Le commentaire nas pas pus être ajouté.
Si une âme charitable pourrai m'expliquer, car j'aimerai vraiment en apprendre plus sur ce langage que je trouve géniale par ses possibilités.

Re: Erreur de requête.

par dix2 » 29 juin 2012, 10:12

salut,

il manque une parenthese :
$requete = "INSERT INTO contenu (Titre, Date, Commentaire, Photo)
VALUES ('".htmlentities(addslashes($_POST['titre']),ENT_QUOTES)."','".date("Y-m-d H:i:s")."','".htmlentities(addslashes($_POST['commentaires']), ENT_QUOTES)."','".$_FILES['photos']['name']."')";

@+
dix2

Erreur de requête.

par Sato » 29 juin 2012, 10:06

Bonjour,

Je suis entrain de réaliser un blog maison, rien de bien énorme.
J'ai essayer d'écrire le code moi-même sans tutoriels ni rien, mais j'ai une erreur sur mon fichier qui doit m'échapper.
Je vous assure que j'ai relue plusieurs fois la ligne concerné.

Voila le type d’erreur:
Parse error: syntax error, unexpected ';' in /home/thomas/Sites/http/privee/insertion_contenu.php on line 43
Bien sûr je connais cette erreur, mais je ne trouve pas ou est le soucis, la concaténation m'as l'air bonne...

Le fichier concerné par l'erreur:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>

<body>
<?php
$connect = mysqli_connect("localhost", "root", "", "blog");
/* Verification de la connexion*/
if (!connect) {
	echo "Echec de la connexion : ".mysqli_connect_error();
	exit;
}

if ($_FILES['photo']['error']) {
	switch ($FILES['photo']['error']){
		case 1: // UPLOAD_ERR_INI_SIZE
			echo "La taille du fichier est plus grande que la limite autorisée par le serveur.";
			break;
		case 2: // UPLOAD_ERR_FORM_SIZE
			echo "Il y'a trop de texte dans le formulaire.";
			break;
		case 3: // UPLOAD_ERR_PARTIAL
			echo "L'envoie du fichier a été interrompu pendant le transfert.";
			break;
		case 4: // UPLOAD_ERR_NO_FILE
	}
}
else {
	echo "Aucune erreur dans le transfert de fichier.<br />";
	if ((isset($_FILES['photo']['name'])&&($_FILES['photo']['error'] == UPLOAD_ERR_OK))) {
		$chemin_destination = 'photos/';
		move_uploaded_file($_FILES['photo']['tmp_name'], $chemin_destination.$FILES['photo']['name']);
			echo "Le fichier ".$_FILES['photo']['name']." a été copié avec classe sur le serveur bravo !";
		}
		else {
			echo "Erreur, le fichier n'a pas pus être copié.";
		}
	}
	
$requete = "INSERT INTO contenu (Titre, Date, Commentaire, Photo)
VALUES ('".htmlentities(addslashes($_POST['titre']),ENT_QUOTES)."','".date("Y-m-d H:i:s")."','".htmlentities(addslashes($_POST['commentaires']), ENT_QUOTES."','".$_FILES['photos']['name']."')";
$resultat = mysqli_query($connect,$requete);
$identifiant = mysqli_insert_id($connect);
mysqli_close($connect);

if (!identifiant !=0) {
	echo "<br />Ajout du commentaire réussis.<br /><br />";
}

else {
	echo "<br />Le commentaire nas pas pus être ajouté.<br /><br />";
}

?>
</body>
</html>
Je vous remercie d'avance.