2013-05-13 3 views
-4

데이터베이스의 멤버에게 프런트 엔드에 새로운 정보가 입력되면 PHP 스크립트가 전자 메일과 SMS를 보내도록 작성되었습니다. 그러나 전자 메일 코드와 SMS 코드는 개별적으로 작동하지만 코드를 조합하면 코드가 실행되지 않습니다.내 프로그램에서 PHP의 함수를 건너 뛰는 중

코드가 실제로 건너 뜁니다. 호출 된 함수에서 의도적 인 오류를 만들려고 시도했지만 인식하지 못했습니다. 왜?

<?php 
    error_reporting(E_ALL^E_NOTICE); 

    define('INCLUDE_CHECK', true); 

    require 'functions.php'; 
    include ("generatesms.php"); 
    include ("class.phpmailer.php"); 
    include ("../sendsmsV3.5/sendsmsV3.5/CurlProcess.php"); 
    include ("../sendsmsV3.5/sendsmsV3.5/Way2Sms.php"); 
    include ("class.smtp.php"); 

    // The above files can be included only if INCLUDE_CHECK is defined 
    $host  = "localhost"; // Host name 
    $username = "root";  // Mysql username 
    $password = "";   // Mysql password 
    $db_name = "test";  // Database name 
    $tbl_name = "mails";  // Table name 

    // Connect to server and select database. 
    mysql_connect($host, $username, $password) or die("cannot connect"); 
    mysql_select_db($db_name)or die("cannot select DB"); 

    // Get values from form 
    $subject = $_POST['subject']; 
    $email = $_POST['email']; 
    $phone = $_POST['phone']; 
    //$dept = $_POST['dept']; 
    $content = $_POST['content']; 
    $month = $_POST['birthday-mm']; 
    $day  = $_POST['birthday-dd']; 
    $year  = $_POST['birthday-yyyy']; 
    $date_eve = "$year-$month-$day"; 
    $dept  = $_POST['branch']; 

    if (empty($dept)) { 
     echo("You didn't select any DEPEARTMENTS."); 
    } else { 
     $N = count($dept); 

     for($i=0; $i < $N; $i++) { 
      echo $dept[$i]; echo "<br>"; 
      $dep = $dept[$i]; 

      // Insert data into mysql 
      $sql = "INSERT INTO $tbl_name(subject, body, dept, phone, email, date_eve) VALUES ('$subject', '$content', '$dep', '$phone', '$email', '$date_eve')"; 

      $result = mysql_query($sql); 

      // if successfully insert data into database, displays message "Successful". 
      if ($result) { 
       echo "Successful"; 
       echo "<BR>"; 
       newssender($dept, $content, $subject); 
       generatesms($dept,$date_eve,$subject); 

       echo "<a href='index.php'>Back to main page</a>"; 
      } else { 
       echo "ERROR"; 
      } 
     } 
    } 

    // close connection 
    mysql_close(); 
+0

Google에 표시 할 코드가 있습니까? –

+0

코드를 보지 않고는 답변을 드릴 수 없습니다. 귀하의 질문에 그것을 편집 할 수 있습니까? – andrewsi

+0

ok .... 게임을 추측 할 때 매우 나쁩니다. – itachi

답변

0

먼저 모든 SQL에 큰 문제가 있습니다. mysql_ * 함수는 더 이상 사용되지 않으므로 취약성에 노출 된 상태에서 입력 내용을 살균하지 않습니다. (http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php)

newssender() 기능 코드를 사용할 수 있다면 자세한/구체적인 답변을 드릴 수 있지만 그 동안 다른 사용자를위한 디버깅 프로세스를 수행하는 일반적인 솔루션을 제공 할 것입니다.

이 같은 코드가있는 경우 :

myFunction1(); 
myFunction2(); 

myFunction1() 실행되지만 myFunction2() 당신은 분명히 다음 (당신이 한 것처럼 들린다) // myFunction1()을 주석 시도하고 그 시점에서 만약 myFunction2() 실행 할 수 없습니다입니다 문제는 myFunction1()에 있습니다. 검색 할 사항은 다음과 같습니다.

  1. 치명적인 오류가 있습니다. 오류 및주의 사항이 켜져 코드의 구문 또는 기타 오류를 확인하십시오.
  2. 코드에 존재할 수있는 die 또는 exit을 찾으십시오. 그것들은 스크립트를 끝내고 코드는 더 이상 실행되지 않습니다. 당신이 표시되지 않는 경우

    myFunction1(); 
    echo 'I made it here!'; 
    

    :

# 2를 테스트하는 빠른 방법은이 작업을 수행하는 것입니다 "나는 여기했다!" 귀하의 화면에 다음 분명히 코드가 멀리, 코드가 끝나기 전에 끝났다 의미하지 않았다 myFunction1()

나는 희망이!