Formulaire de validation

Rechercher

Formulaire de validation

Par skyneto  -  6 reponses  -  Le 10/08/2010 14:30  -  Editer  - 

Bonjour, je suis un très ancien membres du site apprendr-php, mais j'ai toujours hésiter de m'inscrir et participé dans les forums...

Bon voila mon premier poste et je suis désolé qu'il soit une demande d'aide à la place d'une participation d'aider les autres .

Voila j'explique mon problèm: J'essaye de fair un formulaire de commande d'un nom de domaine, bon en détaille le formulaire a pour but de fair entré un nom de domaine et le vérifié si il est disponible, le visiteur continu sa commande à l'étape suivante, mais si le nom de domaine est non disponible il reprend le meme page pour essayé à nouveau, voila tous.

Je vous fourni mon code de la page ou j'ai eux ce problèm:

 

Commande Etape 2

    Configuration des produits      Entrer votre nom de domaine*    .com           Cliquez pour continuer      Should be Empty:         ============

Et merci d'avance, et une dérnière information, je suis pas un pro dans le php. Bonne journée à vous tous ;)

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 10/08/2010 15:32  -  Haut de page  - 

Salut skyneto,

j'ai eu beau relire, je n'ai pas trouvé ta question ni la nature exacte de ton problème.

Par ailleurs, je te signale que dans le haut du formulaire, il y a un petit logo « **** » et en cliquant dessus, ça ouvre un popup pour l'insertion de code, tu sélectionnes le langage, ça insèrera ton code en conservant la mise en forme et en ajoutant une coloration syntaxique.

Je te suggère de poster à nouveau ton code bien mis en forme (utilise le bouton [Prévisualiser] avant le bouton [Soumettre] en ajoutant ta question.

Malgré tout, je te signale qu'un tableau html ne peut pas être inclus dans une balise . Conseil, crée des maquettes de ce que tu veux obtenir et veille à ce que le code des maquettes soit valide avant d'intégrer ça dans ton PHP, tu gagneras pas mal de temps.

 
Par skyneto  -  Le 10/08/2010 17:29  -  Haut de page  - 

Rebonjour, et merci pour votre réponse, enfaite avant j'ai essayé la fenetre popup du code mais elle marche pas quand tu tape code dans la légende elle me donne une erreur, mais j'ai réussi à l'utiliser sous chrome :).

Ma question est quand tu tape un nom de domaine après la vérification la fonctione

la fonction

function showDomainResult($domain,$server,$findText){       if (checkDomain($domain,$server,$findText)){          echo "<tr><td>Félicitations ! ".$domain." est disponible !</td></tr>";      $statut = 4;       }     else{          echo "<tr><td>Désolé ! ".$domain." a déjà été enregistré !</td></tr>";         $statut = 5;     }    }

 

 

retourne toujours 5 qui signifie que le nom de domaine est non disponible meme si il est disponible. voila j'ai essayé tous plus que 3 jours et toujours rien :s.

Merci pour votre conseil à propos de la maquette ^^.

Mes sincères salutations et bonne journée.

 

<?phpsession_start();global $statut;//===========================Fonction du nom de domaine================================    function checkDomain($domain,$server,$findText){        // Open a socket connection to the whois server        $con = fsockopen($server, 43);        if (!$con) return false;         // Send the requested doman name        fputs($con, $domain."\r\n");         // Read and store the server response        $response = ' :';        while(!feof($con)) {            $response .= fgets($con,128);         }         // Close the connection        fclose($con);         // Check the response stream whether the domain is available        if (strpos($response, $findText)){            return true;        }        else {            return false;           }    }     function showDomainResult($domain,$server,$findText){       if (checkDomain($domain,$server,$findText)){          echo "<tr><td>Félicitations ! ".$domain." est disponible !</td></tr>";      $statut = 4;       }     else{          echo "<tr><td>Désolé ! ".$domain." a déjà été enregistré !</td></tr>";         $statut = 5;     }    }       /*function showDomainResult1($domain,$server,$findText){       if (checkDomain($domain,$server,$findText)){        return $statut = 4;       }     else{         return $statut = 5;     }    }*///=======================================================================================if(!empty($statut)){  switch($statut){     case 4:{      //header('Location: ../page_3/index3.php');    }break;     case 5:{      //header('Location: 1/page_2/index2_nd.php');    }break;  }}?>    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Commande Etape 2</title><meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" /><meta name="HandheldFriendly" content="true" />  <body><form class="jotform-form" action="index2_nd.php" method="post" name="form_2022530170" id="2022530170" accept-charset="utf-8">  <input type="hidden" name="formID" value="2022530170" />  <div class="form-all">    <ul class="form-section">      <li id="id_1" class="form-input-wide">        <div class="form-header-group">          <h2 id="header_1" class="form-header"> Configuration des produits </h2>        </div>      </li>      <li class="form-line" id="id_3">        <label class="form-label-left" id="label_3" for="input_3"> Entrer votre nom de domaine<span class="form-required">*</span> </label>        <div id="id_3" class="form-input">          <input type="text" class="form-textbox validate[required]" id="input_3" name="domainname" size="50" />          <input type="checkbox" name="com" checked/>.com          <br/>          <h4><?php        // The form was submitted    if (isset($_POST['submitBtn'])){        $domainbase = (isset($_POST['domainname'])) ? $_POST['domainname'] : '';        $d_com      = (isset($_POST['com'])) ? 'com' : '';             // Check domains only if the base name is big enough        if (strlen($domainbase)>2){            echo '<table>';            if ($d_com != '')                 showDomainResult($domainbase.".com",'whois.crsnic.net','No match for');            echo '</table>';        }    }?>           </h4>        </div>      </li>      <li class="form-line" id="id_2">        <div id="id_2" class="form-input-wide">          <div style="margin-left:170px" class="form-buttons-wrapper">            <button id="input_2" type="submit" name="submitBtn" class="form-submit-button"> Cliquez pour continuer </button>          </div>        </div>      </li>      <li style="display:none"> Should be Empty:        <input type="text" name="website" value="" />      </li>    </ul>  </div>  <input type="hidden" id="simple_spc" name="simple_spc" value="2022530170" /></form><pre><?php//print_r($_SESSION);print_r($_POST);echo $statut;?>============<?phpprint_r(showDomainResult($domain,$server,$findText,&$statut));?></body></html>

 

 

 
Par Cyrano  -  Le 10/08/2010 17:38  -  Haut de page  - 

Salut,

il faudrait modifier un tout petit peu la fonction checkDomain de façons à préciser la nature exacte du retour. Si elle retourne false, ça peut vouloir dire que le domaine n'est pas disponible, mais ça pourrait aussi vouloir dire que la connexion au socket a échoué, comment le savoir : aussi, je te propose de la modifier comme ceci :

<?php
/**
 * Vérification de la disponibilité d'un nom de domaine.
 *
 * Le retour sera un entier :
 * - 1 : la connexion au socket a échoué;
 * - 2 : le nom de domaine n'est pas disponible;
 * - 3 : le nom de domaine est disponible.
 *
 * @param   String $domain      Nom de domaine recherché
 * @param   String $server      Chemin du serveur
 * @param   String $findText    ...?
 * @return  Int                 Entier, valeur 1, 2 ou 3
 */
function checkDomain($domain,$server,$findText)
{
    // Open a socket connection to the whois server
    $con = fsockopen($server, 43);
    if (!$con)
    {
        $retour = 1;
    }
    // Send the requested doman name
    fputs($con, $domain."\r\n");
    // Read and store the server response
    $response = ' :';
    while(!feof($con))
    {
        $response .= fgets($con,128);
    }
    // Close the connection
    fclose($con);
    // Check the response stream whether the domain is available
    if (strpos($response, $findText))
    {
        $retour = 3;
    }
    else
    {
        $retour = 2;
    }
    return $retour;
}

Comme tu peux voir, au lieu de retourner un booléen, elle retourne 1, 2 ou 3. J'ai ajouté les commentaires en début de fonction, lis-les attentivement.

Modifie en conséquence le traitement de retour de cette fonction dans l'autre et teste à nouveau.

 
Par skyneto  -  Le 10/08/2010 19:38  -  Haut de page  - 

 

Salut,

J'ai fait un changement dans le code pour utiliser les retours de la fonction voila le changement :

if(!empty(checkDomain($domain,$server,$findText))){  if(checkDomain($domain,$server,$findText) == 2){      //header('Location: ../page_3/index3.php');      echo "le nom de domaine n'est pas disponible";      }   else(checkDomain($domain,$server,$findText) == 3){      //header('Location: 1/page_2/index2_nd.php');      echo "le nom de domaine est disponible.";      }}

 

mais il me donne erreur et me redirige vers index.php comment cela se fait je sais pas il y a même pas index.php dans le code.

Mes sincères salutations et bonne journée.

 
Par Cyrano  -  Le 10/08/2010 20:54  -  Haut de page  - 

Salut Skyneto,

ok pour ta modification. Tu aurais pu rajouter une condition : si la valeur est «1», « Le service est temporairement indisponible, essayez ultérieurement » par exemple.

Ceci dit, la redirection n'est même pas normale puisque tes « header('Location') » sont commentés et donc ne sont pas exécutés. Je crois qu'il va falloir que tu essayes d'isoler le point à problème. J'ignore quel éditeur tu utilises, s'il y a un système de débogage pas-à-pas, ce serait une riche idée de l'utiliser. Sinon, il faut passer par la méthode « à l'ancienne » à coup de var_dump().

Petite règle de base pour débusquer la source d'un bug ou, comment isoler un bug. Tu sais que ton code s'exécute correctement jusqu'à un certain point de ton code. Tu sais également qu'à un autre point plus loin, le résultat n'est pas conforme à tes attentes. Il y a donc une valeur qui n'est pas bonne dans une des variables. en faisant des petits bouts de code du genre :

débogage à l'ancienne

<?php//..../** * On vérifie ce que vaut réellement une variable à ce point du code... */echo('<pre>' . "\n");var_dump($ma_variable_a_verifier);echo('</pre>' . "\n");//...// etc..//...

 

ça va afficher à l'écran ce qui se passe réellement. éventuellement tu peux rajouter un « die(); » juste après pour éviter une redirection intempestive. Si la valeur est bonne, tu décales ton bout de code au point suivant.

Tu vas forcément tomber à un moment donné sur une valeur complètement fantaisiste ou incohérente qui explique le bug : tu pourras alors déterminer d'où vient l'erreur et la corriger.

 
Par  -  Le 07/01/2012 06:10  -  Haut de page  - 

This is one of the most incredibleread in a very long time. The amount of information in here is stunning, like you practically wrote the book on the subject. discount ugg boots

 

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |