[resolu]Warning qui s'affiche malgré un traitement de l' erreur

[resolu]Warning qui s'affiche malgré un traitement de l' erreur - PHP - Programmation

Marsh Posté le 29-07-2005 à 13:36:49    

Bonjour,
voila mon problème. J'ai ce code:

Code :
  1. $position= strpos($URLimg,'.',strlen($URLimg)-5); //On recherhce la positon du dernier '.' avant l'extension. -5 pour avoir le  . si jamis 'estc jpeg
  2. if ($position === false)
  3. {
  4.  $finalstring ='Urldelimgbadimg';}
  5. else
  6. { $extension=substr($URLimg,$position);
  7.  $finalstring= substr($URLimg,0,$position).'.th'.$extension;//on a le resultat : urldelimg.th.l'extension(type imagshack)
  8.  if ($extension!='.jpg' && $extension!='.jpeg' && $extension!='.png')
  9.   {$finalstring ='Urldelimgbadimg';}
  10. }


 
Rapidement, le but est d'obteir l'url d'un thumbnail ImageShack a partir de l'url de l'imagecomplète.
Si je met des bonnes URL ca marche sans problème. Maintenant si un petit rigolo rentre dans $URLimg 'ton script est pourri' et bien il me sort un :

Citation :

Warning: strpos(): Offset not contained in string. in f:\site temps files\learnphp\getth.php on line 5
Urldelimgbadimg


 
deja je ne veux pas resoudre l'erreur en
-modifiant le "niveau d'erreur" du serveur(je pense qu'il est possible de lui dire de ne pas afficher les warning)
-Regarder si l'URL rentrée auparavant est valide(avec des RegEx par exemple).Ca serait ecraser une mouche avec un marteau piqueur.
 
Si quelqu'un a une idée?
(PS: j'ai essayé de rentrer dans le if le strpos, ca me fait la meme erreur)


Message édité par kray le 29-07-2005 à 16:51:21
Reply

Marsh Posté le 29-07-2005 à 13:36:49   

Reply

Marsh Posté le 29-07-2005 à 13:39:19    

Reply

Marsh Posté le 29-07-2005 à 13:40:37    

kray a écrit :


Code :
  1. $position= strpos($URLimg,'.',strlen($URLimg)-5); //On recherhce la positon du dernier '.'




si $URLimg fait -de 5 caractères, a mon avis, strpos gueule [:petrus75]


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 29-07-2005 à 13:44:13    

strrpos serait beaucoup plus adapté ici, d'ailleurs.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-07-2005 à 14:55:24    

Allez je reponds dans l'ordre
-@strpos -> suis je bete. j'avais deja lu que le @ inhibait les warning mais javais complètement oublié
-effectivement il va pas trop aimer les  nombres négatif
-strrpos: Merci je cherchais cette fonction depuis pas mal de temps, mais je la "voyais" pas dans la doc php car je la "confondais" avec strpos :pt1cable:
 
Encore Merci a tous  ;)

Reply

Marsh Posté le 29-07-2005 à 15:17:50    


Dans le genre technique de goret :D

Reply

Marsh Posté le 29-07-2005 à 15:27:42    

ratibus a écrit :

Dans le genre technique de goret :D


 
Ouai, j'ai encore lu le post après avoir répondu. :/
 
Le @ peut quand même être (très rarement) utile si on s'en sert bien, mais c'est clair que c'est à éviter, et là c'est largement évitable. :)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-07-2005 à 15:33:03    

Je suis d'accord :)

Reply

Marsh Posté le 29-07-2005 à 20:20:15    

Aie, pourquoi c'est du goret le @?

Reply

Marsh Posté le 29-07-2005 à 20:46:19    

Parce que ça peut masquer des erreurs et te faire croire que ton code marche alors qu'en fait il se plante lamentablement. :spamafote:
 
Dans ton cas, strrpos est la solution, et s'il n'y avait pas strrpos il aurait suffit de faire une petite vérif préalable sur $URLimg.


Message édité par sielfried le 29-07-2005 à 20:47:14

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed