Къде е грешката в този тъп код :@ ?

  • Автор Автор bowby
  • Начална дата Начална дата

bowby

Registered
Вече се изнервих, винаги ми изписва Възникна грешка, пробвах да махна else проверката, но тогава скрипта изобщо не се изпълнява :(
Код:
<?php
    function mobio_checkcode($servID, $code, $debug=0) {

   $res_lines = file("http://www.mobio.bg/code/checkcode.php?servID=$servID&code=$code");

   $ret = 0;
   if($res_lines) {

      if(strstr("PAYBG=OK", $res_lines[0])) {
         $ret = 1;
      }else{
         if($debug)
            echo $line."\n";
      }
   }else{
      if($debug)
         echo "<div class='allert'>Не мога да се свържа със сървъра на mobio.bg</div>.\n";
      $ret = 0;
   }

   return $ret;
}

$domain = $_POST['domain'];
$servID = 10794;
$code = $_REQUEST["code"];
$ok = $_REQUEST["ok"];

require('config.php');

$domain = $_POST['domain'];
$code = $_POST['code'];
 
  // Празни полета
  if(empty($domain)){
    Echo"<div class='allert'><b>Грешка:</b> Моля попълнете всички полета.</div><br /> <INPUT TYPE='button' VALUE='Назад' onClick='history.go(-1);'> ";
    exit;
  }
 
 
// Малка защита
  $domain = htmlspecialchars($domain);
  $code = htmlspecialchars($code);
 
//Проверка за съществуващ домейн
$sql_domain_check = mysql_query("SELECT domain FROM request WHERE domain = '".$domain."'");
$domain_check = mysql_fetch_row($sql_domain_check);
  if($domain_check != 0){
          echo "<div class='allert'>Домейна съществува в нашата база данни.</div>";
      exit();
        }
  // Изпращаме към MySQL
  if($ok) {
   if(mobio_checkcode($servID, $code, 0) == 1) {
   $sql=mysql_query("INSERT INTO `request` (`domain`, `code`) VALUES ('$domain', '$code')") or die(mysql_error());
      echo "<div class='success'>SMS кодът е валиден!</div>";
   }else{
      echo "<div class='allert'>Грешен или изтекъл SMS код за достъп.</div>";
   }
}else{
 
  if ($sql)
  {
  echo"<div class='success'><b>Вашата заявка е приета успешно</b></div><br /><INPUT TYPE='button' VALUE='Назад' onClick='history.go(-1);'>";
  }
  else
  {
  echo "<div class='allert'><b>Възникна грешка !</b></div><br /><INPUT TYPE='button' VALUE='Назад' onClick='history.go(-1);'>";
  }
?>
<?PHP } ?>
 
Не дава грешка, просто винаги изписва "Възникна грешка!" и не продължава работата на скрипта.
Пробвах да махна
Код:
else
  {
  echo "<div class='allert'><b>Възникна грешка !</b></div><br /><INPUT TYPE='button' VALUE='Назад' onClick='history.go(-1);'>";
  }
но така спира цялото изпълнение на кода :(
 
<?php
function mobio_checkcode($servID, $code, $debug=0) {

$res_lines = file("http://www.mobio.bg/code/checkcode.php?servID=$servID&code=$code");

$ret = 0;
if($res_lines) {

if(strstr("PAYBG=OK", $res_lines[0])) {
$ret = 1;
}else{
if($debug)
echo $line."\n";
}
}else{
if($debug)
echo "<div class='allert'>Не мога да се свържа със сървъра на mobio.bg</div>.\n";
$ret = 0;
}

return $ret;
}

$domain = $_POST['domain'];
$servID = 10794;
$code = $_REQUEST["code"];
$ok = $_REQUEST["ok"];

require('config.php');

$domain = $_POST['domain'];
$code = $_POST['code'];

// Празни полета
if(empty($domain)){
Echo"<div class='allert'><b>Грешка:</b> Моля попълнете всички полета.</div><br /> <INPUT TYPE='button' VALUE='Назад' onClick='history.go(-1);'> ";
exit;
}


// Малка защита
$domain = htmlspecialchars($domain);
$code = htmlspecialchars($code);

//Проверка за съществуващ домейн
$sql_domain_check = mysql_query("SELECT domain FROM request WHERE domain = '".$domain."'");
$domain_check = mysql_fetch_row($sql_domain_check);
if($domain_check != 0){
echo "<div class='allert'>Домейна съществува в нашата база данни.</div>";
exit();
}
// Изпращаме към MySQL
if($ok) {
if(mobio_checkcode($servID, $code, 0) == 1) {
$sql=mysql_query("INSERT INTO `request` (`domain`, `code`) VALUES ('$domain', '$code')") or die(mysql_error());
echo "<div class='success'>SMS кодът е валиден!</div>";
}else{
echo "<div class='allert'>Грешен или изтекъл SMS код за достъп.</div>";
}
}else{
echo"<div class='success'><b>Вашата заявка е приета успешно</b></div><br /><INPUT TYPE='button' VALUE='Назад' onClick='history.go(-1);'>";
} ?>


:shock:
 
Parse error: syntax error, unexpected '}' in *********.php on line 107
На този ред е това
<?PHP } ?>
и е точно след този скрипт Karcho :)
 
Причината е тук:
Код:
...
$ok = $_REQUEST["ok"];
...
if($ok) {
   // Ako e true (за bool), !=0 (za int/float), != '' (za string)
} else {
  // Ako e, ama ne e, zatova ti dava "Възникна грешка!"
}
Накратко казано - $_REQUEST['ok'] явно не е OK, ама защо - това вече ти ще кажеш (или ще дадеш повече инфо).
 
Всичко си е наред, ServID е вярен :lol:
Не знам от кое ще е проблема
@Karcho
Код:
<?PHP } ?>
е точно след скрипта който ти ми преправи. След това има само HTML :)
 
@Karcho, сега горе-долу се оправи, проверката на кода работи, изписва текста
Вашата заявка е приета успешно
но не изпълнява кода
Код:
$sql=mysql_query("INSERT INTO `request` (`domain`, `code`) VALUES ('$domain', '$code')") or die(mysql_error());
тоест не вкарва резултата в ДБ
 
<?php
function mobio_checkcode($servID, $code, $debug=0) {

$res_lines = file("http://www.mobio.bg/code/checkcode.php?servID=$servID&code=$code");

$ret = 0;
if($res_lines) {

if(strstr("PAYBG=OK", $res_lines[0])) {
$ret = 1;
}else{
if($debug)
echo $line."\n";
}
}else{
if($debug)
echo "<div class='allert'>Не мога да се свържа със сървъра на mobio.bg</div>.\n";
$ret = 0;
}

return $ret;
}

$domain = $_POST['domain'];
$servID = 10794;
$code = $_REQUEST["code"];
$ok = $_REQUEST["ok"];

require('config.php');

$domain = $_POST['domain'];
$code = $_POST['code'];

// Празни полета
if(empty($domain)){
Echo"<div class='allert'><b>Грешка:</b> Моля попълнете всички полета.</div><br /> <INPUT TYPE='button' VALUE='Назад' onClick='history.go(-1);'> ";
exit;
}


// Малка защита
$domain = htmlspecialchars($domain);
$code = htmlspecialchars($code);

//Проверка за съществуващ домейн
$sql_domain_check = mysql_query("SELECT domain FROM request WHERE domain = '".$domain."'");
$domain_check = mysql_fetch_row($sql_domain_check);
if($domain_check != 0){
echo "<div class='allert'>Домейна съществува в нашата база данни.</div>";
exit();
}
// Изпращаме към MySQL
if($ok) {
if(mobio_checkcode($servID, $code, 0) == 1) {
echo "<div class='success'>SMS кодът е валиден!</div>";
}else{
echo "<div class='allert'>Грешен или изтекъл SMS код за достъп.</div>";
}
}else{
$sql=mysql_query("INSERT INTO `request` (`domain`, `code`) VALUES ('$domain', '$code')") or die(mysql_error());
echo"<div class='success'><b>Вашата заявка е приета успешно</b></div><br /><INPUT TYPE='button' VALUE='Назад' onClick='history.go(-1);'>";
} ?>

:P
 
Засега всичко върви по план но само най-важното - НЕ!
Не работи проверката на кода, и при грешно въведен код си изпълнява заявката, и при верно написан код (верен код(тестов))
 

Back
Горе