Inserer un enregistrement d'une image en tant que lien/MYSQL

Petit nouveau ! | 3 Messages

24 nov. 2011, 16:10

Bonjour,

J'ai codé un petit script permettant d' uploader une image en 2 exemplaire. En taille d'origine et en taille Miniature.
Mon code marche Pour l' upload, mais des que je veut l' insérer en tant que lien sur la bdd, il me sors une erreur.


Notice: Undefined variable: bdd in C:\Site\Ar2600 V2\partie_admin\ajout_news_up.php on line 71

Fatal error: Call to a member function prepare() on a non-object in C:\Site\Ar2600 V2\partie_admin\ajout_news_up.php on line 71

Mon code PHP:
<?php

if(!empty($_FILES))
{
	$avatar = $_FILES['avatar'];
	$avatar_name = $avatar['name'];
	$ext = strtolower(substr(strrchr($avatar_name, '.'),1));
	$ext_auth = array('jpg','jpeg','png','gif');
	
	function check_extension($ext,$ext_auth)
	{
		if(in_array($ext,$ext_auth))
		{
			return true;
		}
	}
	
	$valid = (!check_extension($ext,$ext_auth)) ? FALSE : TRUE;
	$erreur = (!check_extension($ext,$ext_auth)) ? 'Veuillez charger une image' : '';
	
	if($valid)
	{
		$max_size = 20000000;
		if($avatar['size']>$max_size)
		{
			$valid = false;
			$erreur = 'Fichier trop gros';
		}
	}
	
	if($valid)
	{
		if($avatar['error']>0)
		{
			$valid = false;
			$erreur = 'Erreur lors du transfert';
		}
	}
	
	if($valid)
	{
		$path_to_image = 'news_photo/images/fullsize/';
		$path_to_min = 'news_photo/images/min/';
		
		$filename = sha1(uniqid($avatar_name));
		
		$source = $avatar['tmp_name'];
		$target = $path_to_image . $filename. '.'. $ext;
		
		move_uploaded_file($source,$target);
		
		if($ext == 'jpg' || $ext == 'jpeg') {$im = imagecreatefromjpeg($path_to_image.$filename. '.'.$ext);}
		if($ext == 'png') {$im = imagecreatefrompng($path_to_image.$filename. '.'.$ext);}
		if($ext == 'gif') {$im = imagecreatefromgif($path_to_image.$filename. '.'.$ext);}
		
		$ox = imagesx($im);
		$oy = imagesy($im);
		
		$nx = 150;
		$ny = floor($oy *($nx/$ox));
		
		$nm = imagecreatetruecolor($nx,$ny);
		
		imagecopyresized($nm, $im, 0, 0, 0, 0, $nx, $ny, $ox, $oy);
		
		imagejpeg($nm, $path_to_min.$filename.'.'.$ext);
		
		$nom_image = $filename.'.'.$ext;
	
		$req = $bdd->prepare('INSERT INTO upload(nom) VALUES(:nom)');
		$req->execute(array('nom'=>$nom_image));
		$req->closeCursor();
				
	}
}


?>
Mon code Html du formulaire:
<form id="form1" name="form1" enctype="multipart/form-data" method="POST" action="<?php echo $editFormAction; ?>">
    <table width="850">
      <tr>
        <td width="306" height="35"><div align="right">Titre de la news :</div></td>
        <td width="532"><span id="sprytextfield2">
          <input name="ch_news_titre2" type="text" id="ch_news_titre3" />
          <span class="textfieldMaxCharsMsg">Le nombre maximum de caractères a été dépassé.</span></span></td>
      </tr>
      <tr>
        <td height="67"><label for="ch_apercu_texte3">
          <div align="right">Apercu du Texte :</div>
          </label>
          <div align="right"></div></td>
        <td><span id="sprytextarea3">
          <textarea name="ch_apercu_texte2" id="ch_apercu_texte2" cols="45" rows="2"></textarea>
          <span class="textareaMaxCharsMsg"></span></span></td>
      </tr>
      <tr>
        <td><label for="ch_news_texte3">
          <div align="right">Texte de la News :</div>
          </label>
          <div align="right"></div></td>
        <td><span id="sprytextarea">
          <textarea name="ch_news_texte2" id="ch_news_texte2" cols="45" rows="5"></textarea>
          </span></td>
      </tr>
      <tr>
        <td colspan="2"><div align="center"><span id="sprycheckbox">
            <input name="ch_news_etat" type="checkbox" id="ch_news_etat" checked="checked" />
            <label for="ch_news_etat">Activation de la news</label>
            </span></div></td>
      </tr>
      <tr>
        <td colspan="2"><div align="center"> Charger une Image :
            <input type="file" name="avatar" />
            <div class="success"></div>
        <div class="error"></div>
        </div></td>
      </tr>
      <tr>
        <td height="58" colspan="2"><div align="center">
            <div align="center">
              <input type="submit" name="ch_news_envoi" id="ch_news_envoi" value="Créer la News" />
            </div>
          </div></td>
      </tr>
    </table>
    <input type="hidden" name="MM_insert" value="form1" />
  </form>
Je vois pas ou est mon erreur. Je commence a m'arracher les cheveux sur ce code.
Merci beaucoup d'avance de votre aide.

P@B

ViPHP
ViPHP | 2577 Messages

24 nov. 2011, 17:23

Bonjour,

La variable $bdd (ligne 71) n'est jamais renseignée dans ton script d'ou le "notice".
En particulier $bdd n'est donc pas un objet d'ou le "fatal"

Petit nouveau ! | 3 Messages

24 nov. 2011, 19:34

Re-Bonjour,

Merci de votre reponse rapide,
Que dois-je changer pour que ca marche ??
Excusez de mon ignorance, je suis novice.

Merci

P@B

Petit nouveau ! | 3 Messages

24 nov. 2011, 19:45

C'est bon j'ai trouvé :D .

Merci beaucoup encore une fois.

P@B