Avatar billede expnet Seniormester
12. april 2013 - 19:12 Der er 7 kommentarer og
1 løsning

ip2long og session til opdeling i sideskift

Hej

Jeg har et spørgsmål der går på, hvordan man bedst muligt laver en liste med ip-adresser, som bliver lagt i en session, og derefter bliver listet ud i opdeling med sideskift.
Avatar billede olebole Juniormester
12. april 2013 - 19:47 #1
<ole>

Hvilken del af opgaven er du i tvivl om?

/mvh
</bole>
Avatar billede olebole Juniormester
12. april 2013 - 19:51 #2
En løsning kunne være: Læg array af IP-adresser i en session variabel:

<?php
session_start();
$_SESSION['foo'] = array('123', '234', '456');
?>

Skriv ud på en anden side:

<?php
session_start();
echo '<ul><li>'.implode('</li><li>', $_SESSION['foo']).'</li></ul>';
?>
Avatar billede expnet Seniormester
12. april 2013 - 23:07 #3
det er der hvor jeg skal dele det op i sider med næste og forrige

det er den del?
Avatar billede olebole Juniormester
13. april 2013 - 00:25 #4
Noget i denne stil:

<?php
session_start();
define('MAX_NUM_IPS', 10);

function getIpList() {
    if (isset($_GET['start'])) {
        $start = (int)$_GET['start'];
    }
    $ips = array_slice($_SESSION['foo'], $start, MAX_NUM_IPS);
   
    $list = '<ul><li>'.implode('</li><li>', $ips).'</li></ul>';
   
    if ($start === 0) {
        $nav = '<span>Forrige</span>';
    }
    else if ($start <= MAX_NUM_IPS) {
        $nav = '<a href="?start=0">Forrige</a>';
    }
    else $nav = '<a href="?start=' . ($start-MAX_NUM_IPS) . '">Forrige</a>';
   
    $nav .= ' | ';
   
    if ($start+MAX_NUM_IPS >= count($_SESSION['foo'])) {
        $nav .= '<span>Næste</span>';
    }
    else $nav .= '<a href="?start=' . ($start+MAX_NUM_IPS) . '">Næste</a>';
    return $list . $nav;
}
?>

- og nede i HTML'en:

<?php echo getIpList() ?>
Avatar billede olebole Juniormester
13. april 2013 - 00:30 #5
Ups  =)

function getIpList() {
    if (isset($_GET['start'])) {
        $start = (int)$_GET['start'];
    }
    else $start = 0;
    $ips = array_slice($_SESSION['foo'], $start, MAX_NUM_IPS);
Avatar billede expnet Seniormester
14. april 2013 - 08:00 #6
ole -> kan du se hvad det er jeg gør forkert?
Det jeg gerne vil er at den skal skrive 1 for ip-1, o.s.v

<?php
session_start();
define('MAX_NUM_IPS', 10);

function ip_ranges($from, $to) {
  $start = ip2long($from);
  $end = ip2long($to);
  $range = range($start, $end);
  return array_map('long2ip', $range);
}

$_SESSION['foo'] = ip_ranges('10.0.0.1', '10.0.0.255');

function getIpList() {
    $list = "";
    if (isset($_GET['start'])) {
        $start = (int)$_GET['start'];
    }else
    $start = 0;
    $ips = array_slice($_SESSION['foo'], $start, MAX_NUM_IPS);

      foreach($ips as $key => $value){
        $list .= "\t".'<tr>'."\n";
        $list .= "\t\t".'<td>';
        $list .= $key;
        $list .= '</td>'."\n";
        $list .= "\t\t".'<td>';
        $list .= $value;
        $list .= '</td>'."\n";
        $list .= "\t".'</tr>'."\n";
    }
    if ($start === 0) {
        $nav_f = "\t\t".'<td><span>Forrige</span></td>'."\n";
    }
    else if ($start <= MAX_NUM_IPS) {
        $nav_f = "\t\t".'<td><a href="?start=0">Forrige</a></td>'."\n";
    }
    else $nav_f = "\t\t".'<td><a href="?start=' . ($start-MAX_NUM_IPS) . '">Forrige</a></td>'."\n";
 
    $nav_break .= ' | ';
 
    if ($start+MAX_NUM_IPS >= count($_SESSION['foo'])) {
        $nav_n .= "\t\t".'<td><span>Næste</span></td>'."\n";
    }
    else $nav_n .= "\t\t".'<td><a href="?start=' . ($start+MAX_NUM_IPS) . '">Næste</a></td>'."\n";
   
    return $list .'<tr>'."\n". $nav_f . $nav_n .'</tr>'."\n";
}
?>
<table border="1" cellpadding="4" cellspacing="0">
    <tr>
        <td>IP</td>
    <tr>
<? print getIpList(); ?>
</table>
Avatar billede expnet Seniormester
14. april 2013 - 08:39 #7
ole-> har løst det med nummer? og tak for hjælp, du må godt ligge et svar
Avatar billede olebole Juniormester
14. april 2013 - 14:01 #8
Ellers tak, jeg samler ikke point. Du lægger bare selv et svar og accepterer det, så tråden lukkes  *o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Søstrene Grene skifter Microsoft ud med SAP og rykker for første gang i clouden i stor ERP-transformation: Der er brug for en helt ny tilgang