2016-07-18 2 views
0

Я хочу выполнить tel2.php для каждого ip-адреса, который я получаю от запуска цикла for. В моем файле tel2.php есть session_start(). Следовательно, каждый раз, когда запускается скрипт for loop, я получаю сообщение об ошибке, когда сеанс уже запущен. Пожалуйста, расскажите мне, как это исправить. Спасибо.Запустить php-скрипт несколько раз из цикла for

<?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. В этом случае он был бы рассмотрен как отдельный файл.)

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

  • Нет связанных вопросов^_^