2015-03-21 2 views
0

Я пытаюсь включить файл, который генерирует 2 случайных числа, которые необходимо добавить или что мы называем captcha. У меня есть два входа: один, для которого требуется идентификатор сотрудника, дата рождения и ответ на капчу (что я называю простым входом в систему). В то время как другой требует вашего имени, фамилии, даты рождения и капчей (я называю это стандартным логином). Поэтому у меня есть два переключателя для выбора пользователем простого входа или стандартного входа. Таким образом, я сталкиваюсь с этой проблемой, когда вы выбираете логин, тогда вам нужно ответить на капчу (captcha отправляет сеансы для своего ответа), так что происходит правильно, так это то, что captcha в простом логине всегда переопределяется captcha в стандартный вход. То, что я думал, что я буду делать, - это установить условие, в котором, если выбран переключатель (простой вход в систему), то это время, которое будет включено. Но я не знаю, как это сделать.Конфликт при включении файла

Вот капчу: captcha.php

<?php 
session_start(); 

$n1=rand(1,6); //Generate First number between 1 and 6 
$n2=rand(5,9); //Generate Second number between 5 and 9 
$answer=$n1+$n2; 

$math = "What is ".$n1." + ".$n2." ? "; 
$_SESSION['vercode'] = $answer; 

print $math; 

?> 

Тогда вот код для моего интерфейса:

index.php

<SCRIPT TYPE="text/javascript"> 

function toggleTables(which) 
{ 

if(which == "0") { 

    document.getElementById('standard').style.display = "table"; 
    document.getElementById('customize').style.display = "none"; 
    } 
    if(which == "1") { 

    document.getElementById('customize').style.display = "table"; 
    document.getElementById('standard').style.display = "none"; 
    } 
} 

</SCRIPT> 

</head> 
<body style="background: url(../images/background.jpg) no-repeat center center fixed; 
      -webkit-background-size: cover; 
      -moz-background-size: cover; 
      -o-background-size: cover; 
      background-size: cover;" > 
<a href="http://i-refer.elitebpocareers.com" align="center"><?php include('../include/logoheader.php'); ?></a> 




<div class="row"> 
<div class="twelve columns"> 
    <hr /> 
</div> 
</div> 

<div class="row"> 
<div class="two columns"> 

</div> 

<div class="eight columns"> 
    <div class="content"> 

     <?php include('../include/retain-empid.php'); ?> 

     <br> 

     <input name="radio" type="radio" id="customize_1" onClick="toggleTables('0')" value="radio" /><font color="white">Standard Login</font> 
     <input name="radio" type="radio" id="customize_0" onClick="toggleTables('1')" value="radio" checked="checked"/><font color="white">Easy Login</font> 

     <form name="loginform" action="login_exec.php" method="post" > 

     <center><?php include('../function/login_errmsg.php'); ?></center> 


     <table width="100%" class="imagetable" cellpadding="0" cellspacing="0" id="customize"> 
       <tr> 
       <th colspan="4"> 
        Easy Log-in For Registered Convergys Employees 
       </th> 
      </tr> 

       <tr> 
        <td align="right"> 
         <label>Employee Number</label> 
        </td> 

        <td> 
        <input type="text" placeholder="Employee Number" name="txt_EmpID" autoComplete="off" value=<?php echo $value; ?> > 
        </td> 

       <td align="right"> 
         <label>Birthday</label> 
        </td> 


       <td> 
        <input type="date" class="" placeholder="Birthday" id="txt_BDate" name="txt_BDate" autoComplete="off" maxlength = "10" 
        style ="width:170px;"/> 
       </td> 

       </tr> 

      <tr> 
       <td align="right"> 
        <label class="labels" align="center"> 
         <strong> 
         </strong> 
        </label> 
        </td> 
       <td> 
       <?php 
       include ('../include/mathcaptcha.php'); 
       ?> 
       </td> 
       <td> 
        <input name="captcha" type="text" placeholder="Answer to math question"> 
       </td> 

       <td> 
       </td> 
       <td> 
        <input type="submit" id="submit" name="btn_refer" class="btn" value="Submit" 
        style=" width: 170px; height: 30px; font-size: 11pt; "> 
        </td> 
       </tr> 

     </table> 
     </form> 

     <form action="otherlogin_exec.php" method="post"> 
     <table width="100%" class="imagetable" cellpadding="0" cellspacing="0" id="standard" style="display: none"> 

       <tr> 
        <th colspan="4"> 
         Standard Log-in For All Registered Users 
        </th> 
       </tr> 

      <tr> 
       <td align = "right"> 
        <label>First name:</label> 
       </td> 

       <td> 
        <input type="text" placeholder="First Name" name="txtFirstName" autoComplete="off" > 
       </td> 

       <td> 
        <label>Last name:</label> 
       </td> 

       <td> 
        <input type="text" placeholder="Last Name" name="txtLastName" autoComplete="off" > 
       </td> 
       </tr> 

      <tr> 
       <td> 
        <label>Birthday:</label> 
       </td> 

        <td> 
        <input type="date" class="" placeholder="Birthday" id="txt_BDate" 
        name="txtPassword" autoComplete="off" maxlength = "10" style = "width:170px;"/> 
       </td> 

       <td> 
        <label class="labels" align="center"> 
         <strong> 

         </strong> 
        </label> 

       </td> 
       <td> 
       <?php 
       include ('../include/mathcaptcha.php'); 
       ?> 
       </td>     
       <td> 
        <input name="captcha" type="text" placeholder="Answer to math question"> 
       </td> 
      </tr> 

      <tr> 
       <td> 
       </td> 

       <td> 
       </td> 

       <td> 
       </td> 

       <td> 
        <input type="submit" id="submit" name="btn_refer" class="btn" value="Submit" 
        style=" width: 100%; height: 30px; font-size: 11pt; "> 
       </td> 
      </tr> 
     </table> 
     </form> 
    </div> 
    </div> 
+1

Вы генерируете два разных набора случайных чисел. Почему бы не включить файл captcha один раз, затем повторить значения, которые он генерирует там, где это необходимо? Вы можете включить в верхнюю часть файла и добавить комментарий, чтобы сделать его более понятным. Также не эхо (print; output) в том файле, в который вы включаете, просто установите значения. – chris85

+0

Я попытался включить его один раз, но это разрушит дизайн, поэтому я думаю о способе установить условие, в котором оно будет включено после того, как будет выбран галочкой определенный переключатель для этого входа. – user3235016

+0

вы можете использовать ajax для отправки запроса на captcha.php в скрипте index.php и в ответ от captcha.php вы можете получить код captcha. нет необходимости включать напрямую. – Choxx

ответ

0

Сделать первая строка вашего файла

<?php include_once ('../include/mathcaptcha.php'); ?>

затем измените строки из

 <td> 
      <?php 
      include ('../include/mathcaptcha.php'); 
      ?> 
      </td>  

в

 <td><?php echo $math;?></td> 

и взять распечатку файла капчи. PHP не влияет на дизайн страниц, только выводимые данные могут быть изменены по мере необходимости.

Смежные вопросы