Insertion de données qui ne fonctionne pas

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 : Insertion de données qui ne fonctionne pas

Re: Insertion de données qui ne fonctionne pas

par Kal747 » 21 mars 2013, 15:27

Ton premier problème est que tu as mal inclus ton fichier php :
No such file or directory in C:\wamp\www\Aria-Soll\fxphoto.php on line 20
Commence par régler celui-ci

Re: Insertion de données qui ne fonctionne pas

par iSteelZ » 20 mars 2013, 19:06

Je pense utiliser ton script, mais alors, tu pourrais me dire comment utiliser les fonctions que tu as crées ?
J'ai fait ça en includant tes fonctions (fxphoto.php), mais j'ai plein d'erreurs...
<?php
session_start();
$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$pseudo = $_SESSION['pseudo'];
$taille_maxi = 500000;
$taille = filesize($_FILES['avatar']['tmp_name']);
include("fxphoto.php");


if($taille > $taille_maxi)
{
     $erreur = 'Le fichier est trop gros.';
}
else
{
      
    $fichier = strtr($fichier,
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);

	$chemin = $dossier . $pseudo . $fichier;
	
    redimensionneImage($fichier, $chemin, 200, 200);
    
}
?>
( ! ) Warning: imagecreatefromjpeg(avater.jpg) [<a href='function.imagecreatefromjpeg'>function.imagecreatefromjpeg</a>]: failed to open stream: No such file or directory in C:\wamp\www\Aria-Soll\fxphoto.php on line 20
Call Stack

( ! ) Warning: imagealphablending() expects parameter 1 to be resource, boolean given in C:\wamp\www\Aria-Soll\fxphoto.php on line 23
Call Stack

( ! ) Warning: imagesavealpha() expects parameter 1 to be resource, boolean given in C:\wamp\www\Aria-Soll\fxphoto.php on line 24
Call Stack

( ! ) Warning: getimagesize(avater.jpg) [<a href='function.getimagesize'>function.getimagesize</a>]: failed to open stream: No such file or directory in C:\wamp\www\Aria-Soll\fxphoto.php on line 85
Call Stack

( ! ) Warning: imagecopyresampled() expects parameter 2 to be resource, boolean given in C:\wamp\www\Aria-Soll\fxphoto.php on line 104
Call Stack

( ! ) Warning: imagedestroy() expects parameter 1 to be resource, boolean given in C:\wamp\www\Aria-Soll\fxphoto.php on line 106
Call Stack

Tu sais comment régler ces erreurs... embêtantes ? :)
Parce que je ne comprend pas trop les erreurs en fait...

Re: Insertion de données qui ne fonctionne pas

par Kal747 » 20 mars 2013, 19:00

Bonjour,

Ton code ne gère que les JPEG car tu impose à ce que l'avatar soit en JPG :
$chemin = $dossier . $pseudo . '.jpg';
Tu utilise aussi les fonctions gd propres à JPEG :
$img_src = imagecreatefromjpeg($_FILES['avatar']['tmp_name']);
Tu devrais laisser au choix à l'utilisateur du type de photo. Une fois uploadé, tu testes l’extension et tu redimensionne en fonction du type de l'image.

Je t'invite à jeter un oeil à mon code que tu peux voir avec ce lien :

http://adakal.fr/php-creer-une-miniatur ... eg-ou-png/

Il te permet de redimensionner une image JPEG ou PNG et de m'enregistrer.

J’espère t'avoir guidé

Insertion de données qui ne fonctionne pas

par iSteelZ » 20 mars 2013, 13:22

Salut :)

Je suis en train de coder un site avec un espace membres, et je suis sur le script de l'avatar.

J'ai réussi à donner un nom spécial pour éviter les doublons, à redimensionner l'image (pour éviter les images 1000*1000 dans une zone de commentaires), à la mettre dans le dossier voulu, mais au moment d'insérer le chemin de la photo dans la BDD, rien ne se fait.
<?php
session_start();
$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$pseudo = $_SESSION['pseudo'];
$chemin = $dossier . $pseudo . '.jpg';
$taille_maxi = 500000;
$taille = filesize($_FILES['avatar']['tmp_name']);


if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros.';
}
if(!isset($erreur))
{
      
    $fichier = strtr($fichier,
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);

    $img_src = imagecreatefromjpeg($_FILES['avatar']['tmp_name']);
	
    list($width_src, $height_src) = getimagesize($_FILES['avatar']['tmp_name']);      

    $img_dst = imagecreatetruecolor(200, 200);
          
    imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, 200, 200, $width_src, $height_src);
          
	$chemin_fichier_destination = $chemin;

    if (!imagejpeg($img_dst, $chemin, 75))
    {
        include("connexion.php");
		
		$req = $bdd->prepare('UPDATE inscription SET photo = :photo WHERE pseudo = :pseudo');
        $req->execute(array(
        'photo' => $chemin,
        'pseudo' => $pseudo
        ));
		
		unlink ($imgname_src);
		header("Location:profil.php");
		
    }
    
}
else
{
     echo $erreur;
}
?>
Aussi, pour l'instant mon code ne gère que les JPEG, comment faire pour pouvoir gérer toutes les images ?

Merci d'avance
iSteelZ