php
  • tel
  • 2016-07-18 47 views 0 likes 
    0

    我想執行tel2.php對於我運行for循環得到的每個ip地址。我的tel2.php文件有一個session_start()。因此,每次執行for循環腳本時,都會收到錯誤,表示會話已經開始。請指導我如何解決這個問題。謝謝。從for循環運行多次php腳本

    <?php 
    session_start(); 
    include("check.php"); 
    $dbHost = 'localhost'; 
    $dbUsername = 'root'; 
    $dbPassword = ''; 
    $dbName = 'searchrouters'; 
    //connect with the database 
    $conn = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); 
    // Check connection 
    $checkbox1=$_POST['IP']; 
    { 
        for($i=0; $i<sizeof($checkbox1);$i++){ 
         $query="INSERT INTO checked (name) VALUES ('".$checkbox1[$i]."')"; 
         $conn->query($query) or die(mysql_error()); 
         $_SESSION['ipadd'] = $checkbox1[$i]; 
         include('tel2.php'); 
        } 
    
    } 
    ?> 
    

    Tel2.php

    <?php 
    session_start(); 
    require_once "PHPTelnet.php"; 
    $telnet = new PHPTelnet(); 
    $telnet->show_connect_error=0; 
    // if the first argument to Connect is blank, 
    // PHPTelnet will connect to the local host via 127.0.0.1 
    $ipadd = $_SESSION['ipadd']; 
    echo $ipadd; 
    $result = $telnet->Connect("$ipadd",'nib2p1','nib2p1'); 
    switch ($result) { 
    case 0: 
    $telnet->DoCommand('term length 0', $result); 
    echo $result; 
    $telnet->DoCommand('show clock', $result); 
    // NOTE: $result may contain newlines 
    echo $result; 
    // say Disconnect(0); to break the connection without explicitly logging out 
    $telnet->Disconnect(); 
    break; 
    case 1: 
    echo '[PHP Telnet] Connect failed: Unable to open network connection'; 
    break; 
    case 2: 
    echo '[PHP Telnet] Connect failed: Unknown host'; 
    break; 
    case 3: 
    echo '[PHP Telnet] Connect failed: Login failed'; 
    break; 
    case 4: 
    echo '[PHP Telnet] Connect failed: Your PHP version does not support PHP Telnet'; 
    break; 
    } 
    ?> 
    
    +0

    什麼是錯誤? – yafater

    +0

    顯示tel2.php的代碼,並顯示你正在得到什麼錯誤。 –

    +0

    我需要會話才能從上一頁獲取IP地址。使用$ _GET莫名其妙地不適用於我 – hgnisitida

    回答

    0

    確實像@yafater在評論從TEL2

    刪除會話開始說。一次就夠了

    更具體的我下面會說: 您提供鏈接的兩個文件,一個是包含在其他。所以基本上你必須把它看作只有一個文件。此外,如果不關閉中間內容,則無法開始兩次會話,因此只需要一個session_start()即可。

    爲了幫助你理解的代碼看起來像這樣PHP已經包括了第一個文件裏面的tel2.php文件後:

    <?php 
    
    // start session 
    session_start(); 
    
    $dbHost = 'localhost'; 
    $dbUsername = 'root'; 
    $dbPassword = ''; 
    $dbName = 'searchrouters'; 
    //connect with the database 
    $conn = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); 
    // Check connection 
    $checkbox1=$_POST['IP']; 
    { 
        for($i=0; $i<sizeof($checkbox1);$i++){ 
         $query="INSERT INTO checked (name) VALUES ('".$checkbox1[$i]."')"; 
         $conn->query($query) or die(mysql_error()); 
         $_SESSION['ipadd'] = $checkbox1[$i]; 
    
         // include the file tel2.php 
         // session can't be started again, it's already on 
    
         require_once "PHPTelnet.php"; 
         $telnet = new PHPTelnet(); 
         $telnet->show_connect_error=0; 
         $ipadd = $_SESSION['ipadd']; 
         echo $ipadd; 
         $result = $telnet->Connect("$ipadd",'nib2p1','nib2p1'); 
         switch ($result) { 
          case 0: 
          case 1: 
          case 2: 
          case 3: 
          case 4: 
         } 
        } 
    
    } 
    

    (你實際上需要重新啓動一個會話的唯一情況是,如果你在Tel2.php上重定向了用戶,在這種情況下,它將被視爲一個單獨的文件。)

    相關問題