par
koroce » 27 juil. 2011, 22:50
Bonsoir,
J'ai un probléme avec un formulaire d'upload de photo dans un champ longblob d'une BDD sql qui fonctionne trés bien avec MAMP sur Mac, et qui ne fonctionne plus avec WAMP sous windows.
j'ai un mesage d'erreur indiquant que l'index "photo_membre" n'est pas définit.
Je ne comprends pas d'où vient cette erreur?
Voici mon formulaire qui est insérer avec un include dans une page contenant d'autres formulaires:
<fieldset>
<legend>Choix de la photo en page d'accueil</legend>
<form method="post" enctype="multipart/formdata" action="inserer_photo.php?prenom=<?php echo $_GET['prenom'];?>" >
Veux tu que ta photo apparaisse en page d'accueil?:
<input type="radio" name="reponse" value="oui" id="oui"/><label for="oui">Oui</label>
<input type="radio" name="reponse" value="non" id="non" checked="checked"/><label for="non">Non</label>
<br/>
<br/>
Si <strong>NON</strong>, choisit un avatar:
<?php include("avatar.php");?>
<br/>
Si <strong>OUI </strong>choisit une photo (< à 488 ko): <br />
<input type="file" name="photo_membre"/><br/>
<input id="envoyer" type="submit" value="Mettre à jour"/>
</form>
</fieldset>
et mon fichier d'insertion de la photo dans BDD:
<?php
// récolte des données du fichier:
$maxsize=500000;
$image_tmp=$_FILES["photo_membre"]["tmp_name"];
$image_name=$_FILES["photo_membre"]["name"];
$image_size=$_FILES["photo_membre"]["size"];
$image_type=$_FILES["photo_membre"]["type"];
// Connexion à la base de données
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=SiteRac', 'root', '', $pdo_options);
// Suppression de l'enregistrement précédent
$req=$bdd->prepare('DELETE FROM images_binaires WHERE prenom=:prenom');
$req->execute(array(
'prenom' => $_GET['prenom']
));
if ($image_size > $maxsize)
{
?>
<script type="text/javascript">
alert('le fichier est trop gros choisit une autre photo');
history.back();
</script>
<?php
}
// ajout dans la table:
$donnees = addslashes(fread(fopen($image_tmp, "r"), $image_size));
$req = $bdd->prepare("INSERT INTO images_binaires(prenom,donnees_binaires,nom_fichier,taille_fichier,type_fichier,reponse,avatar)
VALUE(:prenom,'$donnees','$image_name','$image_size','$image_type',:reponse,:avatar) WHERE prenom=?");
$req->execute(array(
'prenom'=>$_GET['prenom'],
'reponse'=>$_POST['reponse'],
'avatar'=>$_POST['avatar']
));
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
Je ne vois pas de problème dans mes scripts, c'est peut être un problème de paramètrage de WAMP?
koroce
Bonsoir,
J'ai un probléme avec un formulaire d'upload de photo dans un champ longblob d'une BDD sql qui fonctionne trés bien avec MAMP sur Mac, et qui ne fonctionne plus avec WAMP sous windows.
j'ai un mesage d'erreur indiquant que l'index "photo_membre" n'est pas définit.
Je ne comprends pas d'où vient cette erreur?
Voici mon formulaire qui est insérer avec un include dans une page contenant d'autres formulaires:
[php]
<fieldset>
<legend>Choix de la photo en page d'accueil</legend>
<form method="post" enctype="multipart/formdata" action="inserer_photo.php?prenom=<?php echo $_GET['prenom'];?>" >
Veux tu que ta photo apparaisse en page d'accueil?:
<input type="radio" name="reponse" value="oui" id="oui"/><label for="oui">Oui</label>
<input type="radio" name="reponse" value="non" id="non" checked="checked"/><label for="non">Non</label>
<br/>
<br/>
Si <strong>NON</strong>, choisit un avatar:
<?php include("avatar.php");?>
<br/>
Si <strong>OUI </strong>choisit une photo (< à 488 ko): <br />
<input type="file" name="photo_membre"/><br/>
<input id="envoyer" type="submit" value="Mettre à jour"/>
</form>
</fieldset>
[/php]
et mon fichier d'insertion de la photo dans BDD:
[php]
<?php
// récolte des données du fichier:
$maxsize=500000;
$image_tmp=$_FILES["photo_membre"]["tmp_name"];
$image_name=$_FILES["photo_membre"]["name"];
$image_size=$_FILES["photo_membre"]["size"];
$image_type=$_FILES["photo_membre"]["type"];
// Connexion à la base de données
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=SiteRac', 'root', '', $pdo_options);
// Suppression de l'enregistrement précédent
$req=$bdd->prepare('DELETE FROM images_binaires WHERE prenom=:prenom');
$req->execute(array(
'prenom' => $_GET['prenom']
));
if ($image_size > $maxsize)
{
?>
<script type="text/javascript">
alert('le fichier est trop gros choisit une autre photo');
history.back();
</script>
<?php
}
// ajout dans la table:
$donnees = addslashes(fread(fopen($image_tmp, "r"), $image_size));
$req = $bdd->prepare("INSERT INTO images_binaires(prenom,donnees_binaires,nom_fichier,taille_fichier,type_fichier,reponse,avatar)
VALUE(:prenom,'$donnees','$image_name','$image_size','$image_type',:reponse,:avatar) WHERE prenom=?");
$req->execute(array(
'prenom'=>$_GET['prenom'],
'reponse'=>$_POST['reponse'],
'avatar'=>$_POST['avatar']
));
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
[/php]
Je ne vois pas de problème dans mes scripts, c'est peut être un problème de paramètrage de WAMP?
koroce