Besoin d'aide pour mise à jour PHP

10 messages   •   Page 1 sur 1
Petit nouveau ! | 5 Messages

18 juil. 2011, 17:52

Bonjour,

je recherche une personne pouvant mettre à jour mon formulaire flash et php.

Hébergé chez 1and1 sous php5 mon formulaire ne fonctionne plus.

Le formulaire fonctionnait sous php4.

Je reçois le mail mais aucune donnée ne s'affiche. La syntaxe est obsolète, je suis infographiste et malheureusement, je n'ai pas de connaissance en php.

Ci-dessous le code de mon fichier form.php
<?php
#
$MailTo="[email protected]";

# fonction permettant l'encodage des caractres accentuŽs
function getFormatedText($texte){ 
$texte =utf8_decode($texte); 
$texte =eregi_replace( "\r", "\n", $texte); 
$texte =stripcslashes($texte); 
return $texte; 
} 
# fin de la fonction

# application de la function aux variables concernŽes
$nom=getFormatedText($nom);
$prenom=getFormatedText($prenom);
$phone=getFormatedText($phone);
$adresse=getFormatedText($adresse);
$ville=getFormatedText($ville);
$objet=getFormatedText($objet);
$mess=getFormatedText($mess);



#
# Formatage de la Date   ######################################################
# ("m.d.Y"); pour passer au format europŽen ("d.m.Y");
# Pour rajouter  les heures de dŽcalage horaire ,ajouter "time()+3600*(2+date("I")));" +2 heure d'ŽtŽ RŽunion
$nowDay=date("d.m.Y");
$nowClock=date("H:i:s"); // pour les normes europŽennes c'est suffisant
#
# Formatage du corps du message ###############################################
#
$FormContent="
Les informations suivantes ont été reçues le $nowDay à $nowClock: 

----------------------------------------------------------------------------
Prénom: $prenom
Nom: $nom
E-mail: $email
Téléphone: $phone
Adresse: $adresse
Ville: $ville
----------------------------------------------------------------------------
Objet: $objet
Message: $mess
----------------------------------------------------------------------------
".urlencode(utf8_encode($FormContent));
#
#
mail($MailTo, "Message (de $prenom $nom)", $FormContent, "From: $email");
#
#
# Autorespondeur   ############################################################
#
#
       $filename = "answer.txt";
       $fd = fopen( $filename, "r" );
       $contents = fread( $fd, filesize( $filename ) );
       fclose( $fd );
       mail( "$email", "Accusé Réception - Monsite", "$contents\n\n",
             "From:[email protected]\n" );
#
#
# Flashsignal Variable   ######################################################
#
$signal=1;
echo "signal=$signal";
#
###############################################################################
?>

JeanJean83
Invité n'ayant pas de compte PHPfrance

18 juil. 2011, 18:56

Combien tu payes ?

Petit nouveau ! | 5 Messages

18 juil. 2011, 18:57

Combien tu payes ?

Quels sont tes tarifs ?

devlop78
Invité n'ayant pas de compte PHPfrance

19 juil. 2011, 01:39

Bon,

Hormis un problème de sécurité que j'ai vu, et un tas de bazarre pas clean, je vois surtout qu'il manque l'origine de
$nom=getFormatedText($nom);
$prenom=getFormatedText($prenom);
$phone=getFormatedText($phone);
$adresse=getFormatedText($adresse);
$ville=getFormatedText($ville);
$objet=getFormatedText($objet);
$mess=getFormatedText($mess);
Peut-être ton script compte-t-il sur les register_globals ?

Essaie, avant ton script, de mettre
extract($_REQUEST);
Et donne-nous le résultat. Tu peux en parallèle regarder à améliorer ton script, avec l'aide bénévole des personnes du forum ou avec la personne ci-dessus qui t'a proposé ses services. C'est certain que vu l'état du code, il serait très bien de le refaire, mais si tu cherches juste à le faire fonctionner comme avant, essaie ce que je t'ai mis.

Petit nouveau ! | 5 Messages

19 juil. 2011, 08:30

Bonjour,

Je te remercie pour ta réponse.

J'ai mis le code que tu m'as indiqué
extract($_REQUEST);
Cela fonctionne.

Je ne comprends pas ce que signifie " Peut-être ton script compte-t-il sur les register_globals ? ".

Si tu peux m'en dire un peu plus.

Si on peut m'aider à rendre ce script correc et à l'améliorer, je suis preneur.

Peut-être peux tu le faire pour moi et me dire en MP, combien je peux te donner pour ce travail.

Je te remercie pour ton aide rapide et efficace.

Eléphant du PHP | 314 Messages

19 juil. 2011, 09:27

Avec Register_Global

$_GET["toto"] était accessible via $toto
$_POST["tata"] était accessible via $tata

Mais ce ne sont pas là de bonnes pratiques ! Il vaut mieux toujours utiliser $_GET & $_POST, ou au pire l'assigné à une variable soit même,
$toto =& $_GET["toto"] // passage par référence; comme ça si on modifie l'un on modifie l'autre.
//ou pour juste copier la valeur
$toto = $_GET["toto"];
ainsi on garde le contrôle sur les noms de variables existantes.

Maintenant, si tu souhaites copier le comportement du register global, tu dois utiliser extract, qui soit dit en passant, marche avec n'importe quel tableau, pas juste $_GET & $_POST
Cordialement,
Julien - http://laravel.fr/

devlop78
Invité n'ayant pas de compte PHPfrance

19 juil. 2011, 14:39

Vu le site internet, de sa taille etc, je ne pense pas que tu sois très sollicité par e-mail. Je vois ici en première analyse deux sources de problèmes pour toi :

- ton formulaire flash passe par form.php, et donc quelqu'un de mal intentionné peut te spammer en passant par form.php. Cela dit, ça ne vaut pas forcément de s'en préoccuper si tu as 2 visiteurs par jour.

- La deuxième, qui découle de la première, est la source de tes headers Mail :
mail($MailTo, "Message (de $prenom $nom)", $FormContent, "From: $email");
A ma connaissance, il n'y a pas de risques pour les autres tant que tu restes en text/plain, mais pour le header "From: $email", il suffit que $email ait une valeur avec "[email protected]\r\nBcc:[email protected]", ce qui enverra à une tierse personne qui n'a rien demandé.

Pour ce cas là, une validation sur l'email côté serveur suffira, soit par une expression régulière facile à trouver sur le web, soit par un validateur php, soit dans une extrème prudence dans laquelle tu ne voudrais pas que ton validateur serveur soit plus strict que ton validateur flash, et dans ce cas tu pourrais te contenter de nettoyer la chaine de caractère (enlever caractères null, sauts de lignes, etc) ou autres fonctions (sanitize php). Je pense que dans ton cas, tu peux utiliser un validateur php

ex :

if (!filter_var($email, FILTER_VALIDATE_EMAIL))
{
die ("signal=0");
// On envoie le signal 0 pour dire qu'il y a eu un problème à flash.
}

Voilà, après comme je te dis, on peut tous te faire des prestations à 30 ou 50 euros le formulaire, mais je doute que tu rentabilises l'argent un jour. C'est pour ton bien que je dis ça, moi je ne crache pas sur une source de revenus ;)

Petit nouveau ! | 5 Messages

19 juil. 2011, 16:23

Merci pour toutes ces explications.

Je trouve le tarif proposé tout à fait correct.

comment procédons-nous ?

devlop78
Invité n'ayant pas de compte PHPfrance

19 juil. 2011, 16:27

Je vous recontacte par e-mail dans la soirée.

Cordialement,

Petit nouveau ! | 5 Messages

19 juil. 2011, 16:33

Merci beaucoup .

10 messages   •   Page 1 sur 1