Script erroné en passant au php5.4

Script erroné en passant au php5.4 - PHP - Programmation

Marsh Posté le 04-06-2013 à 12:32:04    

Bonjour,
Mon hébergeur passe du php4 au php5.4 et de ce fait mon script de téléchargement avec compteur ne fonctionne plus ! Un  message me dit que la redirection n'est pas bonne.
Voici le script en question:

Code :
  1. <a href="../clic.php?url=Telechargements/Cartes.zip" onClick="return confirm('===== A V E R T I S S E M E N T ===== \n Cliquez sur OK si vous acceptez le règlement.')"><img src="../images/Telechargement.jpg"></a>
  2. <br><font face=verdana size=2>(<?include"../Telechargements/Telechargements_Cartes.zip.txt"?> )</font>


 
Merci à vous si vous pouvez m'éclairer
A+

Message cité 1 fois
Message édité par guisaim le 04-06-2013 à 13:35:08
Reply

Marsh Posté le 04-06-2013 à 12:32:04   

Reply

Marsh Posté le 04-06-2013 à 13:22:30    

Y'a quoi dans clic.php ?
 
Met ton code entre les balises code, ça permet de mieux y voir ;).


---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
Reply

Marsh Posté le 04-06-2013 à 13:45:01    

Merci d'avoir répondu !
dans clic.php il y a ceci (script que j'avais trouvé sur le net et qui fonctionnait très bien en php4)

Code :
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. $fichier=str_replace ("/", "_", "$url" ); // remplacement des caractères spéciaux dans les noms de fichiers
  4. $fichier="Telechargements/".$fichier.".txt"; // ouvrir le fichier texte pour chaque telechargement
  5. if(!file_exists("Telechargements" ))    //  ouvrir le fichier nommé telechargements
  6. {mkdir("data",0755);}                  // chmoder le fichier ( permettre l'ecriture sur ceux-ci )
  7. if(!file_exists("$fichier" )){          // si le fichier existe
  8. $fp=fopen("$fichier","w" );             // écriture sur le fichier
  9. fputs($fp,"0" );
  10. fclose($fp);}
  11. $fp=fopen("$fichier","r+" );
  12. $nb=fgets($fp,10);
  13. $nb++;
  14. fseek($fp,0);
  15. fputs($fp,$nb);
  16. fclose($fp);
  17. Header("Location:$url" );
  18. ?>


 
En php5.4, le message d'avertissement apparait mais quand on clique sur OK rien ne se passe.....pas de téléchargement !

Message cité 1 fois
Message édité par guisaim le 04-06-2013 à 14:02:42

---------------
Ce qui compte pour la richesse ce n'est pas d'en disposer mais d'en profiter !!!
Reply

Marsh Posté le 04-06-2013 à 14:27:50    

guisaim a écrit :

Bonjour,
Mon hébergeur passe du php4 au php5.4 et de ce fait mon script de téléchargement avec compteur ne fonctionne plus ! Un  message me dit que la redirection n'est pas bonne.
Voici le script en question:

Code :
  1. <a href="../clic.php?url=Telechargements/Cartes.zip" onClick="return confirm('===== A V E R T I S S E M E N T ===== \n Cliquez sur OK si vous acceptez le règlement.')"><img src="../images/Telechargement.jpg"></a>
  2. <br><font face=verdana size=2>(<?include"../Telechargements/Telechargements_Cartes.zip.txt"?> )</font>
 

Merci à vous si vous pouvez m'éclairer
A+

 

Effectivement, c'est le grand saut. :ouch:

 
guisaim a écrit :

Merci d'avoir répondu !
dans clic.php il y a ceci (script que j'avais trouvé sur le net et qui fonctionnait très bien en php4)

Code :
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. $fichier=str_replace ("/", "_", "$url" ); // remplacement des caractères spéciaux dans les noms de fichiers
  4. ...



 

En php5.4, le message d'avertissement apparait mais quand on clique sur OK rien ne se passe.....pas de téléchargement ![/quotemsg]

 

les register_globals n'existent plus en 5.4 :

Citation :


register_globals boolean

 

Définit si oui ou non les variables EGPCS (Environment, GET, POST, Cookie, Server) seront enregistrées comme des variables globales.

 

Depuis » PHP 4.2.0, la valeur par défaut de cette directive est off.

 

Lisez le chapitre sur la sécurité concernant l'utilisation de register_globals pour plus d'informations.

 

Notez que register_globals ne peut pas être défini durant le traitement ( ini_set()). Vous pouvez utiliser .htaccess si votre hôte vous le permet comme décrit ci-dessous. Exemple d'une entrée .htaccess : php_flag register_globals off.

 

Note:

 

La directive register_globals est affectée par la directive variables_order .

 

Avertissement

 

Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.


http://fr2.php.net/manual/fr/ini.c [...] er-globals

 

En remplacant $url par $_GET['url'] ça devrait mieux passer déjà.

 
guisaim a écrit :


Code :
  1. ...
  2. Header("Location:$url" );
  3. ?>



 

C'est header en minuscule (pas forcément gênant vu que php est insensible à la casse pour les fonctions mais il faut mieux avoir l'habitude de bien respecter la casse (pour éviter de se mélanger), vu que pour les variables et attributs de classe, php est sensible à la casse).

 

edit : correction typo


Message édité par FranceDenBas le 04-06-2013 à 14:38:04

---------------
"Il a inventé le bougisme : je bouge donc je suis" :sol: - Dupont-Aignan à propos de Son Altesse Sérénissime Sarkal 1er. Merci Handsome Devil et Meriadeck.
Reply

Marsh Posté le 04-06-2013 à 14:57:19    

Si j'effectue le remplacement par $_GET['url'] j'ai l'erreur suivante en ligne 3 et 17:
 
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /homepages/32/d160618161/htdocs/clic.php on line 3


---------------
Ce qui compte pour la richesse ce n'est pas d'en disposer mais d'en profiter !!!
Reply

Marsh Posté le 04-06-2013 à 16:00:01    

guisaim a écrit :

Si j'effectue le remplacement par $_GET['url'] j'ai l'erreur suivante en ligne 3 et 17:

 

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /homepages/32/d160618161/htdocs/clic.php on line 3

 

Effectivement y'a des "" :

 

Soit modifies les 2 lignes :

Code :
  1. $fichier=str_replace ("/", "_", $_GET['url']);


et

Code :
  1. header("Location: ".$_GET['url']);
 

ou sinon tu rajoutes seulement (et ne touches pas au reste)

Code :
  1. $url = $_GET['url'];
 

avant

Code :
  1. $fichier=str_replace ("/", "_", "$url" );



Message édité par FranceDenBas le 04-06-2013 à 16:01:21

---------------
"Il a inventé le bougisme : je bouge donc je suis" :sol: - Dupont-Aignan à propos de Son Altesse Sérénissime Sarkal 1er. Merci Handsome Devil et Meriadeck.
Reply

Marsh Posté le 04-06-2013 à 17:53:22    

Merci !!!!
Ca fonctionne parfaitement en changeant les 2 lignes.
Bonne soirée


---------------
Ce qui compte pour la richesse ce n'est pas d'en disposer mais d'en profiter !!!
Reply

Sujets relatifs:

Leave a Replay

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