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

Langage PHP Discussion :

Appel d'un script PHP sur un autre espace serveur


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut Appel d'un script PHP sur un autre espace serveur
    Bonjour à tous,

    je suis confronté à un soucis que je n'arrive malheureusement pas à régler, n'étant pas un grand connaisseur du php

    Je viens de finaliser un site pour une amie (un truc tout simple, sur une seule page) contenant un script php pour l'envoi d'un formulaire.
    Comme elle n'a pas de gros besoins, elle s'est enregistrée chez 1&1 avec une formule nom de domaine + 5Mo de stockage (bien suffisant).
    Malheureusement, il n'y a pas de traitement php sur ces serveurs.

    Ma question est: serait-il possible d'héberger le fichier sur un de mes espaces perso, qui lui dispose du php, et comment le déclarer dans le script?
    J'ai déjà remplacé le <form method="post" action="http://www.XXX"> avec l'adresse ou sera hébergé le futur script, mais ca ne fonctionne pas.

    Question subsidiaire, est-il possible de restreindre l'accès au dossier ou sera situé le .php uniquement au site ou se trouve le formulaire (via .htaccess par exemple).

    Je vous remercie d'avance

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut
    Bon en fait il semblerait qu'hébergé sur un autre espace serveur, le script traite bien l'envoi du message et la validation du formulaire,.
    Par contre, il ne traite pas l'affichage des textes d'erreur et d'envoi du message sur le site original.

    Comment puis-je rediriger les données vers le site original?

    merci d'avance

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je résume : tu as un formulaire HTML sur un hebergement qui renvoit vers un traitement PHP sur un autre hebergement.

    Tu dis qu'il ne traite pas l'affichage des messages d'erreurs, mais sur quel fichier sont-ils et comment sont-ils appellés ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut
    Salut, et tout d'abord merci de bien vouloir me donner un coup de main

    effectivement, le formulaire html appel un script PHP hebergé sur un autre serveur qui traite le php.
    Les messages d'erreurs sont générés par le PHP: c'est un fichier classique de traitement de formulaire.

    Pour faire simple, voici le fichier qui traite le formulaire


    Code : 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
    <?php
     
    // Clean up the input values
    foreach($_POST as $key => $value) {
    	if(ini_get('magic_quotes_gpc'))
    		$_POST[$key] = stripslashes($_POST[$key]);
     
    	$_POST[$key] = htmlspecialchars(strip_tags($_POST[$key]));
    }
     
    // Assign the input values to variables for easy reference
    $name = $_POST["name"];
    $email = $_POST["email"];
    $phone = $_POST["phone"];
    $message = $_POST["message"];
     
    // Test input values for errors
    $errors = array();
    if(strlen($name) < 2) {
    	if(!$name) {
    		$errors[] = "Vous devez indiquer votre nom.";
    	} else {
    		$errors[] = "Votre nom doit avoir plus de 2 caractères.";
    	}
    }
    if(!$email) {
    	$errors[] = "Vous devez indiquer votre email.";
    } else if(!validEmail($email)) {
    	$errors[] = "Veuillez indiquer un email valide.";
    }
    if(strlen($phone) < 10) {
    	if(!$phone) {
    		$errors[] = "Veuillez indiquer un numéro de téléphone.";
    	} else {
    		$errors[] = "Veuillez indiquer un numéro de téléphone valide.";
    	}
    }
    if(strlen($message) < 10) {
    	if(!$message) {
    		$errors[] = "Vous devez écrire un message.";
    	} else {
    		$errors[] = "Votre message doit comporter plus de 10 caractères.";
    	}
    }
     
    if($errors) {
    	// Output errors and die with a failure message
    	$errortext = "";
    	foreach($errors as $error) {
    		$errortext .= "<li>".$error."</li>";
    	}
    	die("<span class='failure'>Les erreurs suivantes sont survenues:<ul>". $errortext ."</ul></span>");
    }
     
    // Send the email
    $to = "XXX@gmail.com"; //change this to your email for example <a href="mailto:email@example.com">email@example.com</a>
    $subject = "Formulaire Abixis.com";
    $message = $message ."\n" .$name .' - ' .$phone .' - ' .$email;
    $headers = "From: $email";
     
    mail($to, $subject, $message, $headers);
     
    // Die with a success message
    die("<span class='success'>Merci de nous avoir contacté.</span>");
     
    // A function that checks to see if
    // an email is valid
    function validEmail($email)
    {
       $isValid = true;
       $atIndex = strrpos($email, "@");
       if (is_bool($atIndex) && !$atIndex)
       {
          $isValid = false;
       }
       else
       {
          $domain = substr($email, $atIndex+1);
          $local = substr($email, 0, $atIndex);
          $localLen = strlen($local);
          $domainLen = strlen($domain);
          if ($localLen < 1 || $localLen > 64)
          {
             // local part length exceeded
             $isValid = false;
          }
          else if ($domainLen < 1 || $domainLen > 255)
          {
             // domain part length exceeded
             $isValid = false;
          }
          else if ($local[0] == '.' || $local[$localLen-1] == '.')
          {
             // local part starts or ends with '.'
             $isValid = false;
          }
          else if (preg_match('/\\.\\./', $local))
          {
             // local part has two consecutive dots
             $isValid = false;
          }
          else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
          {
             // character not valid in domain part
             $isValid = false;
          }
          else if (preg_match('/\\.\\./', $domain))
          {
             // domain part has two consecutive dots
             $isValid = false;
          }
          else if(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',
                     str_replace("\\\\","",$local)))
          {
             // character not valid in local part unless 
             // local part is quoted
             if (!preg_match('/^"(\\\\"|[^"])+"$/',
                 str_replace("\\\\","",$local)))
             {
                $isValid = false;
             }
          }
          if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")))
          {
             // domain not found in DNS
             $isValid = false;
          }
       }
       return $isValid;
    }
     
     
    ?>
    Et dans mon fichier html, je l'appelle comme ça:

    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
    <form  id="contactform" method="post" action="http://XXX.com/form/submit-form.php">
            <fieldset>
              <div class="column one-third alpha">
                <ul>
                  <li>
                    <input name="name" onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?'Nom':this.value;" value="nom"/>
                  </li>
                  <li>
                    <input name="email" onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?'Email':this.value;" value="email" class="required email"/>
                  </li>
                  <li>
                    <input name="phone" onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?'téléphone':this.value;" value="téléphone" class="required">
                  </li>
                </ul>
              </div>
              <div class="column one-third omega">
                <ul>
                  <li>
                    <textarea name="message" id="message" class="required" placeholder="votre message"></textarea>
                  </li>
                  <li>
                    <input class="submit" type="submit" value="Envoyer votre message"/>
                  </li>
                </ul>
                <div id="result"></div>
              </div>
            </fieldset>
          </form>

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    Tu peux la faire simple c'est de créer un iframe dans la page originale qui appéle la page qui traite le formulaire.

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut
    C'est ce que j'ai fait Mais je voulais savoir s'il existe une solution plus élégante, parce que le iframe, c'est pas vraiment recommandé pour le référencement.

Discussions similaires

  1. Ajax + Script PHP sur un autre serveur
    Par ganjaaw dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/01/2009, 08h35
  2. Réponses: 0
    Dernier message: 27/11/2007, 14h37
  3. Appel d'un script PHP depuis PERL
    Par tazmann dans le forum Web
    Réponses: 7
    Dernier message: 09/11/2007, 02h12
  4. [AJAX] Appel d'un .php sur un autre serveur
    Par Tertiath dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/09/2007, 17h29
  5. [VBS] appel d'un script VBS dans un autre script VBS???
    Par Amandine62 dans le forum VBScript
    Réponses: 9
    Dernier message: 31/01/2006, 18h17

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