IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages serveur Discussion :

Mails formulaires PHP - Panne de réception/confirmation d'inscriptions ..


Sujet :

Langages serveur

  1. #1
    Futur Membre du Club Avatar de 3000fr
    Homme Profil pro
    Admin
    Inscrit en
    juin 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Admin

    Informations forums :
    Inscription : juin 2002
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Mails formulaires PHP - Panne de réception/confirmation d'inscriptions ..
    Bonjour à tous ....
    Bon... j'ai besoin d'aide, étant novice en php... un soucis de mails est apparue le 18 janvier 2021 dans un site que j'aide à entretenir ...

    Pour résumé le script & codes de tout le site a été conçu il y a 5 ou 6 ans... le créateur a disparu ... Je me bat un peu pour le maintenir en fonction ...
    L'amie qui le possède m'a contacté... les mails de validations de comptes ne sont plus reçu par les nouveaux inscrits ....
    Donc impossible de valider le compte ... Il y a une option dans la partie admin qui permet de renvoyer le mails de validation ... Pas de réception... idem ...
    Aucunes modification n'a été apportée au site/fichiers etc ... Donc je comprends pas ...

    Il y a aussi la possibilité de valider le membre manuellement sans attendre le mail, mais par la suite... si le mail est invalide, il pourra pas récupérer son compte et faire d'autres actions ...
    J'ai chercher le max d'infos dans les fichiers ...
    J'ai contacté l’hébergeur (PlanetHoster) ... ils me répondent:
    Il faudrait dans le script essayer de forcer le sender.
    Bien entendu, je ne sais pas comment modifier le code / script ...

    J'ai rechercher dans les fichiers ce qui pouvait être rattachés aux e-mails ... Le site est très compliqué ... Partie admin/ partie membres / partie liaison serveur Windows ... (Jeu)

    Voici ce que j'ai trouvé:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     // Email de confirmation 
            $data = array(
                'title' => 'Registration Ttttttt13 - Step 2',
                'content' => '
                    <table width="100%">
                        <tr>
                            <td width="140">UserID</td>
                            <td>'.$Client->user_id.'</td>
                        </tr>
                        <tr>
                            <td>Password</td>
                            <td>'.$Client->password.'</td>
                        </tr>
                        <tr>
                            <td>Email</td>
                            <td>'.$Client->email.'</td>
                        </tr>
                        <tr>
                            <td>Secret key</td>
                            <td>'.$Client->user_key.'</td>
                        </tr>
                    </table>'
            );
     
            $Mail = new Mail();
            $Mail->cfg_set('tpl_dir', TPL_E_DIR);
            $Mail->cfg_set('sender', EMAIL_SENDER);
            $Mail->cfg_set('charset', CHARSET);
     
            /* envoi */
            $Mail->array2data('contact.tpl', $data);
            //$Mail->send_email('Tttttttt13 - Registration confirmation', $Client->email);
     
            $body = $Mail->get_data();
            send_mail('Ttttttt13', $Client->email, 'mail@MMMM.com', 'Ttttttt13 - Registration completed', $body );
            send_mail('Ttttttt13 - DUPLICATE', 'mail@MMMM.com', 'mail2@MMMM.com', 'Ttttttt13- Registration completed - DUPLICATE', $body);
     
            System::redirection('/register/done');
        }
    }

    Second fichier - (A VALIDER) - admin

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
    /*
     * Liste des utilisateurs
     */
     
    $Tpl->tpl['contenu'] .= '
        <h2>Users</h2>
        <p class="breadcrumb">
            <a href="/'.$M.'/">Admin</a> >
            <a href="/'.$M.'/'.$M2.'">Users</a> >
            Non validé
        </p>
        <p><a href="/'.$M.'/'.$M2.'">Back</a></p>
        <p>Users not confirmed : </p>';
     
     
    $Tpl->tpl['contenu'] .= '
    <table width="100%">
        <tr class="headings">
            <td>ID</td>
            <td>UserID</td>
            <td>Email</td>
            <td>Date</td>
            <td>IP</td>
            <td></td>
        </tr>';
     
    $requete = "SELECT * FROM ".USERK12TABLE." WHERE valid=0 ORDER BY id DESC LIMIT 1000";
    $sql = mysql_query($requete);
     
    while($Row = mysql_fetch_object($sql))
    {
        $Tpl->tpl['contenu'] .= '
            <tr>
                <td>'.$Row->id.'</td>
                <td>'.$Row->user_id.'</td>
                <td>'.$Row->email.'</td>
                <td>'.date('d-m-Y H:i', $Row->date_inscription).'</td>
                <td>'.$Row->ip.'</td>
                <td>
                    <a href="/register/confirm/'.$Row->clef.'" target="_blank">Confirm</a> - 
                    <a href="/'.$M.'/'.$M2.'/resend_welcome/?UserID='.$Row->user_id.'">Resend email</a> - 
                    <a href="/'.$M.'/'.$M2.'/delete_local/?UserID='.$Row->user_id.'" target="_blank">Delete</a>
                </td>
            </tr>';
    }
     
    $Tpl->tpl['contenu'] .= '</table>';

    Voilà, donc je suis bloqué, ne connaissant pas ces codes ... Je ne saurais "bricoler"

    Si un développer / webmaster est intéressé de m'aider ... si solution trouvée... je pense que la propriétaire du site pourra donner une rétribution ...
    Pour un développer, je pense que ceci peut être assez intéressant ...

    Merci d'avance bon dimanche ...

    PS: Si le message n'est pas dans la bonne section ... merci de le déplacer

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2010
    Messages
    5 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2010
    Messages : 5 261
    Points : 10 115
    Points
    10 115
    Par défaut
    Peut-être l'envoi de mail a été bloqué par l'hébergeur du site suite au dépassement de certains quotas ou qu'il y a un problème technique chez l'hébergeur. Dans une page de test séparée essayes d'envoyer un mail basique pour voir.

  3. #3
    Futur Membre du Club Avatar de 3000fr
    Homme Profil pro
    Admin
    Inscrit en
    juin 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Admin

    Informations forums :
    Inscription : juin 2002
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    J'ai posé la question ... il me dit de forcer l'envoi et me donne ces pistes:
    Et que chez eux, tout est ok

    Si je vérifie les headers.

    Return-Path:
    (envelope-from )
    Return-path:

    Il faudrait dans le script essayer de forcer le sender
    Car je suspecte que dans le header le tout passe par username@hostname du serveur et que cela augmente le score du spam.
    Aussi avez-vous une whitelist sur le script pour ne pas bloquer notre ip ? 199.188.220.242
    Donc je n'ai pas trouvé de whitelist, et je ne sais pas plus ... il y a tellement de fichier dans le site ... je peine ...
    J'ai tenté de changer le mail d'envoi ... mais rien n'y fait

    Merci pour le reply ...

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2010
    Messages
    5 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2010
    Messages : 5 261
    Points : 10 115
    Points
    10 115
    Par défaut
    Mais as-tu essayé dans une page de test distincte d'envoyer un mail basique en php, genre
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
     
    $destination = 'adressemail@toto.fr';
     
    $message = "Test d'envoi de message pour voir si tout fonctionne correctement";
     
    var_dump(mail($destination, 'Mon Sujet', $message));
    ?>
    En remplaçant $destination par ton adresse bien sûr. Est-ce que tu reçois le mail ?

  5. #5
    Futur Membre du Club Avatar de 3000fr
    Homme Profil pro
    Admin
    Inscrit en
    juin 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Admin

    Informations forums :
    Inscription : juin 2002
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Voilà, j'ai des news ... j'ai installé le code dans un fichier, le mail fonctionne, je l'ai reçu

    Sur la page d'envoi, j'ai : bool(true)
    Par contre, j'ai du modifier le htaccess, car il trouvait pas le fichier. (je me suis souvenu ce que le créateur m'avait dit à l'époque.

    htaccess:
    Code apache : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Options -Indexes
     
    SetEnvIf Request_URI ".*" object_is_image=gif
     
    RewriteEngine on
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    RewriteCond $1 !^(index\.php|crossdomain\.xml|webana|standalone|favicon|standalone|BingSiteAuth\.xml|cgi\-bin|robots\.txt|download|medias|forum|sitemap.xml|favicon\.ico|test\.html|testmails.php)
    RewriteRule ^(.*)$ /index.php/$1 [L]

    Ensuite, j'ai trouvé dans le mail par defaut (il n'est pas utilisé, mais il semble que toutes les erreurs vont ici... tentatives d'utiliser des mails inexistants, qui reviennent en erreurs etc ...
    Dans le Webmail, il y a 179'000 mails .... Je vais demander pourquoi, et si je peux tout supprimer ...
    Par contre, j'ai trouver un truc... il semble que le code pour les inscriptions soit dirigé vers le SPAM, donc jamais distribué... depuis quelques jours seulement

    Voici une copie:

    Mail failure - rejected by local scanning code
    Photo du contact
    De Mail Delivery System, le 2021-01-24 07:56
    Détails
    A message that you sent was rejected by the local scanning code that
    checks incoming messages on this system. The following error was given:

    This message was classified as SPAM and may not be delivered

    ------ This is a copy of your message, including all the headers. ------

    Received: from tabcdef by world-212.ca.planethoster.net with local (Exim 4.93)
    (envelope-from <tttttttn@world-212.ca.planethoster.net>)
    id 1l3ewM-00053H-68
    for taaaaaaaaaaaaa@gmail.com; Sun, 24 Jan 2021 07:56:26 -0500
    To: taaaaaaaaaaaaa@gmail.com
    Subject: Ttttttt13 - New ticket #18922
    X-PHP-Script: www.Ttttttt13.com/index.php for 180.191.56.140
    X-PHP-Filename: /home/tabcdef/public_html/index.php REMOTE_ADDR: 180.191.56.140
    From: Ttttttt13<ccccccct@ttttttt13.com>
    Reply-To: Ttttttt13<ccccccct@ttttttt13.com>
    Return-Path: TTtttttt13<ctttttt@ttttttt13.com>
    Message-ID: <600d6e79ea170webmaster@www.ttttttt13.com>
    X-Mailer: PHP v5.6.40
    MIME-Version: 1.0
    Content-Type: multipart/mixed;
    boundary="8cbdc031c7effa92ba0185679480e8bd"
    Date: Sun, 24 Jan 2021 07:56:26 -0500

    --8cbdc031c7effa92ba0185679480e8bd
    Content-Type: multipart/alternative;
    boundary="1_8cbdc031c7effa92ba0185679480e8bd"

    --1_8cbdc031c7effa92ba0185679480e8bd
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 8bit
    Je vais encore me renseigner .... Je vois qu'il y a un Spam Filter ....

    Merci... j'avance .....

    Edit ... Voici le spam filtre ... qu'en penser ? util de régler ?


  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2010
    Messages
    5 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2010
    Messages : 5 261
    Points : 10 115
    Points
    10 115
    Par défaut
    Bon, tu sais maintenant que ce n'est pas le serveur de mail qui est en panne. Concernant le code php de ton premier message, je n'ai rien à dire de particulier, sinon qu'il doit dater pas mal puisqu'il utilise encore mysql ce qui n'est pas très sécurisant. Normalement il faudrait passer à mysqli sinon en plus de potentiels problèmes de sécurité tu vas être bloqué pour les mises à niveau de php.

    Aussi aucune des variables affichées dans le html n'est protégée par htmlspecialchars, ce n'est pas toujours nécessaire mais si c'est une variable définie par l'utilisateur cela peut-être une faille de sécurité majeure si elle n'a pas été traitée préalablement.

    C'est donc difficile de se prononcer sans voir le contexte global du code, mais disons qu'une mise à jour ne serait pas du luxe. A savoir si une remise à niveau ne serait pas plus compliquée que de repartir sur de nouvelles bases. Sinon cela peut sans doute encore fonctionner quelques années comme ça mais c'est clairement pas du code futur proof, et pas impossible que les bug proviennent d'une faille de sécurité qui aurait été exploitée, je n'en sais rien. Mais c'est une possibilité puisque la panne a été subite et que le serveur de mail n'est pas en panne.

    Possible aussi que telle ou telle config du serveur a été updatée à cette date et qu'elle empêche l'exécution du code, ou encore que le nombre de mail invalide dépasse une valeur pré configurée ou que ce soit un problème dans le régale de ton filtre de spam. Mais là je ne saurai pas te renseigner car je ne suis pas spécialiste de l'administration serveur. Tu aurais plus de chances d'avoir des réponses avisées en posant tes questions concernant l'administration du serveur dans la rubrique "administration serveur". Il faudrait commencer par là avant de se pencher sur le code php, car même s'il est obsolète (utilisation de mysql) il n'est pas nécessairement à l'origine du problème.

    EDIT: en fait peut-être tu es dans la meilleure rubrique concernant l 'administration serveur, mais je n'en suis pas certain, il y a aussi cette rubrique.

  7. #7
    Futur Membre du Club Avatar de 3000fr
    Homme Profil pro
    Admin
    Inscrit en
    juin 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Admin

    Informations forums :
    Inscription : juin 2002
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Ok, oui, le code doit être assez ancien... 6 ou 7 ans ... le créateur a disparu ... Je pense maintenant à un truc ... Il y a aussi une liaison avec un server Windows ... qui récupère le nouveau membre et l'inscrit automatiquement en tant que login du site et du jeu ...
    Le jeu utilise le login et le mot de passe du site pour jouer en ligne ... Le fichier qui est placé sur le serveur ne semble pas être utilisé pour l'envoi de mails des validations

    j'ai nettoyé les mails... tout est vide ... donc ce n'est pas ça ... Les conseillers de planethoster m'ont répondu:
    Le nombre de courriel dans la boite ne crée pas de blocage au niveau du spam filter.
    Le spam filter est celui du smtp et non disponible dans le cpanel.
    Le mieux est vraiment avec un webmaster de mettre dans le code le -f
    Donc voici le retour de mail erreur lors de mon dernier essais:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    Mail failure - rejected by local scanning code 
     
    De Mail Delivery System, le 2021-01-25 10:14
    Détails
    A message that you sent was rejected by the local scanning code that
    checks incoming messages on this system. The following error was given:
     
      This message was classified as SPAM and may not be delivered
     
    ------ This is a copy of your message, including all the headers. ------
     
    Received: from tantrbgn by world-212.ca.planethoster.net with local (Exim 4.93)
        (envelope-from <ttttttt@world-212.ca.planethoster.net>)
        id 1l43Zq-00014V-2p
        for ttt@tttttttt.com; Mon, 25 Jan 2021 10:14:50 -0500
    To: ttt@tttttttt.com
    Subject: tttttt13 - Registration - Step 1 [Resent]
    X-PHP-Script: www.xxxxxx13.xxx/index.php for 37.171.80.73
    X-PHP-Filename: /home/tttttttt/ttttttt/index.php REMOTE_ADDR: 37.179.81.79
    From: Ttttttt13<xxxxxxt@txxxxxx.com>
    Reply-To: Ttttttt13<xxxxxxt@txxxxxx.comm>
    Return-Path: Ttttttt13<xxxxxxt@txxxxxx.com>
    Message-ID: <600ee069dffffwebmaster@www.tttttttt.com>
    X-Mailer: PHP v5.6.40
    MIME-Version: 1.0
    Content-Type: multipart/mixed;
       boundary="f261e615255fd065ce7feee738233a5c"
    Date: Mon, 25 Jan 2021 10:14:50 -0500
     
    --f261e615255fd065ce7feee738233a5c
    Content-Type: multipart/alternative;
           boundary="1_f261e615255fd065ce7feee738233a5c"
     
    --1_f261e615255fd065ce7feee738233a5c
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 8bit
     
     
     Registration Ttttttt-13 - Step 1
     
     
            Hello
     
            Thank-you for your registration.
            To confirm that this email is correct, please click on the following link : https://xxxxxx13.xxx/xxxxxx/confirm/20e963f1d7eff73a7f5555575a2144d5537
     
        Email from : www.xyzyzyzd.ppp
     
     
    --1_f261e615255fd065ce7feee738233a5c
    Content-Type: text/html; charset="utf-8"
    Content-Transfer-Encoding: 8bit
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Tttttttttttttt</title>
    </head>
    <body>
     
    <table width="650" align="center">
    <tr><td>
     
        <h1>Registration Ttttttttt - Step 1</h1>
     
     
            <b>Hello</b><br><br>
            <p>Thank-you for your registration.</p>
            <p>To confirm that this email is correct, please click on the following link : <a href="https://ttttttt13.com/xxxxxxx/xxxxxxx/20e963f1d7eff73a7f8575a2144d5537">https://ttttttt13.com/xxxxxxx/xxxxxxx/20e963f1d7eff73a7f8575a2144d55377</a></p>
     
        <br><br>
        <em>Email from : <a href="https://www.tttttttt13.com">www.ttttttttt3.com</a></em>
     
    </td></tr>
    </table>
     
    </body>
    </html>
     
    --1_f261e615255fd065ce7feee738233a5c--
     
    --f261e615255fd065ce7feee738233a5c--

    Et sinon voici le code installé sur le Windows server

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    <?php
    if(!defined('INWWW'))
        exit('Big no No NO.');
     
    $out = '';
     
    if($_GET)
    {
        $initial="etc";
        $Email = $_GET['txtEmail'];
        $UserID = $_GET['txtUser'];
        $Password = $_GET['txtPass'];
        $CPassword = $_GET['txtPass2'];
        $UserKey = $_GET['txtKey'];
        $SecretQuestion = $_GET['txtQuest'];
        $Answer = $_GET['txtAnswer'];
        $FirstName = $_GET['txtName'];
        $MI = substr($UserID,0,1);
        $LastName = $_GET['txtLastName'];
        $Month = $_GET['txtMonth'];
        $Day = $_GET['txtDay'];
        $Year = $_GET['txtYear'];
        $Sex = $_GET['txtSex'];
        $Country = $_GET['txtCountry'];
     
        function is_email($email) {
            if(!filter_var($email, FILTER_VALIDATE_EMAIL))
                return false;
            else
                return true;
        }
     
        $error = "";
        function AllOK() {
     
            global $DB,$error,$Email,$UserID,$Password,$CPassword,$UserKey,$SecretQuestion,$Answer,$FirstName,$MI,$LastName,$Month,$Day,$Year,$Sex,$Country;
     
            if (strlen($UserID) < 6 || strlen($UserID) > 50 || !preg_match("/^[a-zA-Z0-9_-]+$/", $UserID)) {
                $error .= "Invalid ID. Only letters, can be used numbers (6 ~ 50).<br/>";
                return false;
            }
     
     
            if (strlen($Password) < 6 || strlen($Password) > 30 || !preg_match("/^[a-zA-Z0-9\!\(\)\^\*\+\-\~\_]+$/", $Password)) {
                $error .= "Invalid password. (6 ~ 30). No caps<br/>";
                return false;
            }
     
            $first_letter_password = substr($Password, 0, 1);
            if (!preg_match("/^[a-z]+$/", $first_letter_password)) {
                $error .= "Invalid password. (6 ~ 30). Your password mus start with a letter.<br/>";
                return false;
            }
     
     
            if (strlen($UserKey) != 7 || !preg_match("/^[0-9]/", $UserKey)) {
                $error .= "Secret key invalid. Only numbers allowed.<br/>";
                return false;
            }
     
            if ($Password != $CPassword) {
                $error .= "Passwords do not match...<br/>";
                return false;
            }
     
            $SecretQuestion = str_replace("'", "''", $SecretQuestion);
     
            if (!is_email($Email)) {
                $error .= "Email invalid.<br/>";
                return false;
            }
     
            if (!preg_match("/^[a-zA-Z 0-9_-]+$/", $Answer) || strlen($Answer) == "0") {
                $error .= "Secret anwser contains invalid chars. (only letters and numbers allowed)<br/>";
                return false;
            }
     
            if (!preg_match("/^[a-zA-Z_-]+$/", $FirstName) || strlen($FirstName) == "0") {
                $error .= "Invalid name. (only letters allowed)<br/>";
                return false;
            }
     
            if (!preg_match("/^[a-zA-Z_-]+$/", $LastName) || strlen($LastName) == "0") {
                $error .= "Last name invalid. (only letters allowed)<br/>";
                return false;
            }
     
            if (strlen($MI) != 1 || !preg_match("/^[a-zA-Z_-]+$/", $MI)) {
                $error .= "Inicial no valido. Solo letras estan permitidas.<br/>";
                return false;
            }
     
            if ($Month > 12 || $Month < 1 || !preg_match("/^[0-9]/", $Month) || strlen($Month) == "0") {
                $error .= "Invalid month.<br/>";
                return false;
            }
     
            if ($Day > 31 || $Day < 1 || !preg_match("/^[0-9]/", $Day) || strlen($Day) == "0") {
                $error .= "Invalid day.<br/>";
                return false;
            }
     
            if ($Year > 2007 || $Year < 1950 || !preg_match("/^[0-9]/", $Year) || strlen($Year) == "0") {
                $error .= "Invalid year.<br/>";
                return false;
            }
     
            if ($Sex != 1 && $Sex != 2) {
                $error .= "Invalid sex.<br/>";
                return false;
            }
     
     
            if (empty($Country)) {
                $error .= "Invalid country.<br/>";
                return false;
            }
     
     
     
            $resultats = $DB->query("SELECT COUNT(*) FROM Account where UserID='$UserID'");
            $nbUserIDs = $resultats->fetchColumn();
            $resultats->closeCursor();
     
            if ($nbUserIDs > 0) {
                $error .= "Username already in use, please choose another.<br/>";
                return false;
            }
     
     
            $resultats = $DB->query("SELECT COUNT(*) FROM Account where Email='$Email'");
            $nbEmails = $resultats->fetchColumn();
            $resultats->closeCursor();
     
            if ($nbEmails > 0) {
                $error .= "Email already in use, please select another.<br/>";
                return false;
            }
     
            return true;
        }
     
        if (!AllOK()) {
            echo '<p><b>DATA PROCESSING ERROR</b><BR>Check if you filled in the fields correctly.</p>';
            $result = $error;
        }
        else
        {
            $password2=strtoupper(md5(trim($Password)));
            $initial=substr($UserID,0,1);
            $userlenght=strlen(trim($UserID));
     
            $f=fopen("./_sample.tad", "r");
            $acc = fread($f,7124);
            $demoid=substr($acc,0,$userlenght);
            $demopass=substr($acc,52,32);
            $acc = str_replace($demoid,$UserID,$acc);
            $acc = str_replace($demopass,$password2,$acc);
     
            $f2=fopen($accdir."\\".$initial."\\".$UserID.".tad", "a");
            fwrite($f2,$acc);
            fclose($f);
     
     
     
            $resultats = $DB->query("INSERT INTO Account VALUES ('$Email', '$UserID', '$Password' , '$UserKey', '0', NULL, NULL, NULL, '$SecretQuestion', '$Answer', '$FirstName', '$MI', '$LastName', '$Month/$Day/$Year 00:00:00', '$Sex', 'NULL', NULL, NULL, '$Country', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '$_SERVER[REMOTE_ADDR]', newid(), GETDATE(), 1, NULL, 0, 0, 0, NULL, 0, 1, NULL, 0, 0, NULL, NULL, 0)");
            $resultats->closeCursor();
     
            $resultats = $DB->query("DECLARE	@return_value int,
    		@NCashResult int,
    		@NCashMsg nvarchar(100)
                    EXEC	@return_value = [dbo].[AccountInsertUserInBilling]
    		@Email = N'".$Email."',
    		@NCashResult = @NCashResult OUTPUT,
    		@NCashMsg = @NCashMsg OUTPUT");
            $resultats->closeCursor();
     
            $out = 'OK';
            echo json_encode($out);
            exit();
        }
     
        $out = $result;
    }
    else
        $out  = 'PROCESSING ERROR';
     
     
    echo json_encode($out);
     
    exit();

    Bref pour résumé il y a 2 bases de données qui travaillent ensembles, le jeu utilise un server windows sur un hébergement serveur dédié ...
    des codes affichent les rangs des joueurs dans le site ... et donc utilise les même login que le site ...

    Il y a un grosse partie admin qui gère les joueurs, les tickets de demande etc ...

    Voilà ... si un codeur, webmaster est intéressé ... je pourrais le mettre en contact avec la propriétaire ... (Parle que anglais)
    Et tenté de mettre à jour le site ... Du moins faire cette réparation ...

    Je connais très bien le site... les fichiers, comment il fonctionne... mais impossible de modifier sans aide ... je bricole un peu le html et la php ... mais la base de base... incapable de créer

    Voilà ... donc au fait que veux dire -f dans le commentaire de l'hébergeur du site: Le mieux est vraiment avec un webmaster de mettre dans le code le -f

    Merci de votre aide

  8. #8
    Futur Membre du Club Avatar de 3000fr
    Homme Profil pro
    Admin
    Inscrit en
    juin 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Admin

    Informations forums :
    Inscription : juin 2002
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Question 1 : Est-ce que le fait de changer la Version PHP peut-elle changer / améliorer quelque chose... ?
    Et si je le tente, pourrais-je revenir à la version de base sans créer des erreurs irréversibles ou des bugs ?

    La version actuelle est: 5.6

    J'ai la possibilité de mettre: 5.1 | 5.2 | 5.3 | 5.4 | 5.5 | 5.6 actuelle | 7.0 | 7.1 | 7.2 | 7.3 (Native) | 7.4

    Merci

    Ps: Si un webmaster, codeur ou développer est intéressé... qu'il me contact par MP

Discussions similaires

  1. [Mail] Accusé de réception pour e-mail en PHP
    Par Dirty Harry dans le forum Langage
    Réponses: 12
    Dernier message: 30/08/2011, 17h33
  2. formulaire php en panne
    Par jeami dans le forum Langage
    Réponses: 9
    Dernier message: 14/05/2007, 08h39
  3. Réponses: 8
    Dernier message: 25/07/2006, 22h49
  4. Réponses: 1
    Dernier message: 25/07/2006, 22h11
  5. Réponses: 4
    Dernier message: 30/04/2006, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo