Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1162 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Aide au sujet d'une fonction et gestion d'erreur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Aide au sujet d'une fonction et gestion d'erreur

n°1557410
lilougirl8
Posté le 09-05-2007 à 15:25:51  profilanswer
 

Bonjour,  
 
J'ai créer une fonction pour redimensionner des photos, bon ça marche, seulement, il m'arrive parfois d'avoir une erreur (je ne sais pas pourquoi) et cela m'affiche l'erreur (normal quoi).
je souhaiterai en fait que si une erreur se produit(a n'importe quelle stade de la fonction), que cela me renvoi vers une page erreur à moi...(avec possiblité de revenir a la page précedente)...sans que l'utilisateur voye cette erreur... Comment faire?
Dois-je faire un test à chacune des opérations :  
if (!$source = imagecreatefromjpeg($nom_temporaire) {
   header("location: blabla" );
   exit;
)
 
 
 

Code :
  1. <?php
  2. function creation_photo($nom, $nom_temporaire, $chemin, $taille_y, $taille_z) 
  3.   {
  4.     $source = imagecreatefromjpeg($nom_temporaire) or die ("Impossible de créer la photo $nom" );//On crée l'image a partir de la source  
  5.        $largeur_source = imagesx($source);//dimension image source
  6.         $hauteur_source = imagesy($source);//dimension image source
  7.      if ($hauteur_source > $largeur_source)//Si hauteur supérieur a largeur (donc format portrait)  
  8.           {
  9.           $destination = imagecreatetruecolor($taille_y, $taille_z) or die ("Impossible de créer la photo $nom" ); // On crée la photo vide au nouveau format portait
  10.                $largeur_destination = imagesx($destination);//dimension de la photo
  11.                $hauteur_destination = imagesy($destination);//dimension de la photo
  12.           }
  13.        else
  14.          {
  15.          $destination = imagecreatetruecolor($taille_z, $taille_y) or die ("Impossible de créer la photo $nom" ); // On crée la miniature vide au nouveau format paysage
  16.               $largeur_destination = imagesx($destination);//dimension de la
  17.               $hauteur_destination = imagesy($destination);//dimension miniature
  18.              }
  19.          imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source) or die ("Impossible de redimensionner la photo ($nom)" );// On crée la miniature
  20.          imagejpeg($destination, $chemin.$nom ) or die ("Impossible de copier l'image ($nom) dans le repertoire $chemin" ); //on enregistre sous le nom original la photo
  21.    }
  22. ?>

mood
Publicité
Posté le 09-05-2007 à 15:25:51  profilanswer
 

n°1557412
Shinuza
This is unexecpected
Posté le 09-05-2007 à 15:27:38  profilanswer
 

Dépend de ta version de php.
 
trigger_error ou exeception


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1557430
soju
One shot !
Posté le 09-05-2007 à 15:51:50  profilanswer
 

tu te fais ton propre gestionnaire d'erreur avec http://fr.php.net/manual/fr/functi [...] andler.php

n°1557433
lilougirl8
Posté le 09-05-2007 à 16:02:09  profilanswer
 

ok j'etait tomber sur un article a ce sujet sur le site su zero...
Donc je laisse tombé le if....  
ou je doi améliorer ça ???
vous trouver comment tous ça... je vai poster le reste du script
 
Voici la fonction qui me sert pour uploader les photos
 

Code :
  1. function upload_photos()
  2.   {
  3.  include("./script_connexion_serveur.php" ); 
  4.  $num = 1;
  5.         foreach($_FILES["photo"]["name"] as $key => $name)
  6.               {
  7.        if($_FILES["photo"]["name"][$key] !="" )
  8.       {
  9.          /*======= Définition des variables ==============*/
  10.          $nom = $_FILES["photo"]["name"][$key];
  11.          $nom_temporaire =  $_FILES["photo"]["tmp_name"][$key];
  12.          $nom_sans_extension = basename($_FILES["photo"]["name"][$key],".jpg" );
  13.          $nom_dossier = substr($nom_sans_extension, 0, -2);
  14.      $num_ok = $num+1;
  15.      $num_photo = sprintf("%02d",$num_ok );
  16.      $nom_photos_final = $nom_dossier.$num_photo.".jpg";     
  17.     /*===============================================*/
  18.  
  19.          /*============ Chemin dossier ===================*/
  20.          $chemin_ftp = 'html/...'.$nom_dossier.'';
  21.          $chemin_ftp2 = 'html/..../'.$nom_dossier.'/';
  22.          $chemin_local = './../villas/'.$nom_dossier.'';
  23.          $chemin_local2 = './../villas/'.$nom_dossier.'/';
  24.          /*===============================================*/
  25.          $command = 'chmod 0777 '.$chemin_ftp;
  26.      
  27.       if(!isset($erreur_oubli)){ //Si il n'y a pas d'erreur  
  28.     if (is_dir($chemin_local)) {
  29.      if (file_exists($chemin_local2.$nom_photos_final)) {
  30.       ftp_delete($conn_id,$chemin_ftp2.$nom_photos_final) or die("Impossible de supprimer le fichier $nom" ) ;
  31.      }
  32.     }
  33.             else {
  34.      ftp_mkdir($conn_id, $chemin_ftp)or die("Impossible de créer le dossier $nom_dossier" );
  35.      ftp_site($conn_id,$command)or die("Impossible de modifier les droits" );
  36.            }
  37.     creation_photo($nom_photos_final,$nom_temporaire, $chemin_local2, 333, 500);    
  38.    }
  39.   }
  40.  $num++;
  41.   }  
  42. }


 
Voici le script pour de traitement du formulaire :  
 

Code :
  1. include("./script_connexion_serveur.php" );
  2. require'./xxxx/fonction_creation_photos.php';
  3. require'./xx/fonction_upload.php';
  4. require'./xxxxx/fonction_verif_upload_photo.php';
  5. mysql_connect("localhost", "xxxxxx", "xxxxxx" );// on se connecte à MySQL
  6. mysql_select_db("xxxxx" );// on sélectionne la base   
  7. if (isset($_POST['envoyer']))
  8.        {
  9.   if (isset($_POST['reference'])) {
  10.   $ref = mysql_real_escape_string(strtoupper($_POST['reference']));
  11.   $requete = mysql_query("SELECT xxxxx FROM xxxx WHERE refxxx='".$ref."' " );
  12.   $requeteok = mysql_fetch_row($requete);
  13.    if (!empty($requeteok)) {
  14.     $modif = true;
  15.     }
  16.    else {
  17.    $modif = false;
  18.    }
  19.   }
  20.        /*================================================================= Restrictions et erreur ===================================================================*/
  21.    $i=0;    
  22.   if(!$modif) {
  23.    if(!empty($ref)) {
  24.      $recherche_reference = mysql_query("SELECT xxx FROM xxxx WHERE reference = '".$ref."'" );
  25.      $resultats_reference = mysql_fetch_array($recherche_reference);
  26.      if(!empty($resultats_reference)) {
  27.        $erreur_oubli[$i] = "La Référence existe déjà";
  28.        $i++;
  29.            }
  30.      if (!preg_match("/^[0-9]+[V|A]{1}$/", $ref)) {
  31.       $erreur_oubli[$i] = "La Référence que vous avez entré n'est pas valide";
  32.       $i++;
  33.      }
  34.     }
  35.   }
  36.   if(empty($_POST['reference'])) {
  37.     $erreur_oubli[$i] = "Vous n'avez pas entré de réference";
  38.     $i++;
  39.     }
  40.   if(empty($_POST['surface_habitable']))
  41.        {
  42.       $erreur_oubli[$i] = "Vous n'avez pas précisé de surface";
  43.      $i++;
  44.      }
  45.   else{
  46.    if ( !preg_match("/^\d+$/", $_POST['surface_habitable'])) {
  47.     $erreur_oubli[$i] = "La surface que vous avez entré n'est pas valide";
  48.     $i++;
  49.     }
  50.      } 
  51.   if(!empty($_POST['annee'])) {
  52.    if ( !preg_match("/^[17|18|19|20]{2}\d{2}/", $_POST['annee'])) {
  53.     $erreur_oubli[$i] = "L'année que vous avez entré n'est pas valide";
  54.     $i++;
  55.     }
  56.      }
  57.   if(!empty($_POST['annee_renov'])) {
  58.    if ( !preg_match("/^[18|19|20]{2}\d{2}/", $_POST['annee_renov'])) {
  59.     $erreur_oubli[$i] = "L'année de rénovation que vous avez entré n'est pas valide";
  60.     $i++;
  61.     }
  62.      }
  63.   if(!isset($_POST['coup_de_coeur']) OR empty($_POST['exclusivite']) )
  64.        {
  65.       $erreur_oubli[$i] = "Vous n'avez pas coché le champs coups de coeur ou exclusivité";
  66.      $i++;
  67.      }
  68.   if(!empty($_POST['surface_terrain'])) {
  69.    if ( !preg_match("/^\d+$/", $_POST['surface_terrain'])) {
  70.     $erreur_oubli[$i] = "La surface du terrain que vous avez entrer n'est pas valide";
  71.     $i++;
  72.     }
  73.   }
  74.   if(!empty($_POST['sdb'])) {
  75.    if ( !preg_match("/^[0-9]*$/", $_POST['sdb'])) {
  76.     $erreur_oubli[$i] = "La Nombre de Salle de bain que vous avez entré n'est pas valide";
  77.     $i++;
  78.     }
  79.   }
  80.   if(!empty($_POST['wc'])) {
  81.    if ( !preg_match("/^[0-9]*$/", $_POST['wc'])) {
  82.     $erreur_oubli[$i] = "La Nombre de wc que vous avez entré n'est pas valide";
  83.     $i++;
  84.     }
  85.   }
  86.   if (!empty($_FILES['miniature'])) {
  87.    if ($erreur_mini = verif_photo ($_FILES['miniature']['name'], $_FILES['miniature']['tmp_name'], $ref)) { 
  88.     foreach ($erreur_mini as $key => $value) {
  89.      $erreur_oubli[$i] = $value;
  90.      $i++;
  91.      }
  92.    }
  93.   }
  94.   if (!empty($_FILES['miniature'])) {
  95.    if ($erreur_photos = verif_photo ($_FILES['photo']['name'], $_FILES['photo']['tmp_name'], $ref)) { 
  96.     foreach ($erreur_photos as $key => $value) {
  97.      $erreur_oubli[$i] = $value;
  98.      $i++;
  99.     }
  100.    }
  101.   }
  102.   /*===========================================================================================================================================*/
  103.  
  104. if(isset($erreur_oubli))
  105.   {
  106.   include("./../erreur_formulaire.php" ); 
  107.   }
  108.  
  109.     else
  110.   {
  111.   $type_affaire = "Transaction";
  112.   $date_annonce = date('Y-m-d');
  113.   $date_maj = date('Y-m-d');
  114.   $type_bien = mysql_real_escape_string($_POST['type_bien']);
  115.   $surface_habitable = mysql_real_escape_string($_POST['surface_habitable']);  
  116.   $surface_terrain = mysql_real_escape_string($_POST['surface_terrain']);
  117.   $annee = mysql_real_escape_string($_POST['annee']);
  118.   $annee_renov = mysql_real_escape_string($_POST['annee_renov']);
  119.   $nombre_chambres = mysql_real_escape_string($_POST['nombre_chambres']);
  120.   $nombre_pieces = mysql_real_escape_string($_POST['nombre_pieces']);
  121.   $sdb = mysql_real_escape_string($_POST['sdb']);
  122.   $wc = mysql_real_escape_string($_POST['wc']);
  123.   $vue = mysql_real_escape_string($_POST['vue']);
  124.   $etage = mysql_real_escape_string($_POST['etage']);
  125.   $exposition = mysql_real_escape_string($_POST['exposition']);
  126.   $prix = mysql_real_escape_string($_POST['prix']);
  127.   $eaux_usees = mysql_real_escape_string($_POST['eaux_usees']);
  128.   $exclusivite = mysql_real_escape_string($_POST['exclusivite']);
  129.   $coup_coeur = mysql_real_escape_string($_POST['coup_de_coeur']);
  130.   $annonce = mysql_real_escape_string(htmlentities(preg_replace("/\s+/"," ", $_POST['annonce'] )));
  131.   $ville = mysql_real_escape_string($_POST['ville']); 
  132.    if(isset($_POST['ville']))
  133.         {
  134.         $recherche_cp = mysql_query("SELECT xxxx FROM xxxx WHERE ville = '".$ville."'" );
  135.      $resultats_cp = mysql_fetch_array($recherche_cp) or die ("Pas de réusltat pour le Code Postal" );
  136.      }
  137.    else
  138.      {
  139.      $resultats_cp = "";
  140.      } 
  141.    if(isset($_POST['prestation_int']))
  142.         {
  143.           $prestation_int = $_POST['prestation_int'];
  144.           $donnee_prest_int = mysql_real_escape_string(implode (",",$prestation_int));
  145.           } 
  146.         else
  147.        {
  148.        $prestation_int = "";
  149.        $donnee_prest_int = "";
  150.        }
  151.  
  152.  
  153.          if(isset($_POST['prestation_ext']))
  154.        {
  155.           $prestation_ext = $_POST['prestation_ext'];
  156.           $donnee_prest_ext = mysql_real_escape_string(implode (",",$prestation_ext));
  157.           } 
  158.      else
  159.         {
  160.        $prestation_ext = "";
  161.           $donnee_prest_ext = "";
  162.         }
  163.    
  164.     if($modif) {
  165.   $requete = "UPDATE xxxxxx SET date_maj='".$date_maj."', type_bien ='".$type_bien."', prix='".$prix."', ville='".$ville."', ";
  166.   $requete .= "code_postal = '".$resultats_cp[0]."', surface_habitable='".$surface_habitable."', surface_terrain='".$surface_terrain."', annee='".$annee."', annee_renov='".$annee_renov."', ";
  167.   $requete .= "nombre_chambres='".$nombre_chambres."', nombre_pieces='".$nombre_pieces."', nombre_sdb='".$sdb."', nombre_wc='".$wc."', vue='".$vue."', ";
  168.   $requete .= "eaux_usees='".$eaux_usees."', etage='".$etage."', exposition='".$exposition."', prestations_ext='".$donnee_prest_ext."', prestations_int='".$donnee_prest_int."', coup_de_coeur='".$coup_coeur."', ";
  169.   $requete .= " exclusivite='".$exclusivite."' , annonce='".$annonce."' WHERE reference='".$ref."'"; 
  170.   $requeteok = mysql_query($requete) or die(mysql_error());//on recupere le mot de passe et on le compare au login
  171.   upload_photos_mini();
  172.      upload_photos();
  173.   $message = "Votre annonce a été mis à jour avec succès";
  174.  }
  175.  else {
  176.   $requete = "INSERT INTO xxx (ID, date_entree, type_bien, type_affaire, nombre_pieces, reference, code_postal, ville, surface_habitable, ";
  177.   $requete .="surface_terrain, vue, nombre_chambres, nombre_sdb, nombre_wc, prix, annee, annee_renov, eaux_usees, etage, exposition, prestations_int, prestations_ext, coup_de_coeur, exclusivite, annonce) ";
  178.   $requete .= "VALUES ('','".$date_annonce."','".$type_bien."','".$type_affaire."','".$nombre_pieces."','".$ref."','".$resultats_cp[0]."','".$ville."','".$surface_habitable."','".$surface_terrain."', ";
  179.   $requete .= "'".$vue."','".$nombre_chambres."','".$sdb."','".$wc."','".$prix."','".$annee."','".$annee_renov."','".$eaux_usees."','".$etage."','".$exposition."','".$donnee_prest_int."','".$donnee_prest_ext."','".$coup_coeur."','".$exclusivite."','".$annonce."') ";
  180.   $requeteok = mysql_query($requete) or die(mysql_error());//on recupere le mot de passe et on le compare au login;  
  181.   upload_photos_mini();
  182.   upload_photos();
  183.   $message = "Votre annonce a été enregistré avec succès";
  184.  }
  185. $url = "xxxxxx?id=".$_GET['id']."";
  186. $text_url = "Retour à la page administration";
  187. include("./../succes_formulaire.php" );
  188. }
  189. mysql_close(); // Déconnexion de MySQL
  190. }


Message édité par lilougirl8 le 09-05-2007 à 16:07:04
n°1557926
lilougirl8
Posté le 10-05-2007 à 12:11:24  profilanswer
 

personne pour me donner son avis?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Aide au sujet d'une fonction et gestion d'erreur

 

Sujets relatifs
Erreur "simple" Javascript sous IEShell-script (Besoin d'aide)
[PHP] Systeme de génération d'image avec caractères : captcha[PHP]Champ Date
parcours d'un xml et erreur incompréhensible sous ie !!!Comment appeler une page PHP sans iframe ?
[PHP] Erreur aléatoire session start[VB .NET]Problème gestion d'onglets
[URGENT] besoin d'aide LoginForm 
Plus de sujets relatifs à : [PHP] Aide au sujet d'une fonction et gestion d'erreur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR