22. marts 2010 - 08:23
Der er
14 kommentarer og 1 løsning
funktionen split()
noget der ved hvordan man håndtere funktionen split() i php 5 Deprecated: Function split() is deprecated $list = split( '\.', $ip );
Annonceindlæg fra SoftwareOne
22. marts 2010 - 09:19
#1
22. marts 2010 - 09:21
#2
Og så kan jeg se, at du slet ikke har bruge for at det er et regulært udtryk du splitter på, så det er bedre blot at bruge:
http://php.net/explode
22. marts 2010 - 09:22
#3
nej har jeg prøvet er ikke for numerisk så widt jeg kunne læse på php.net men har snyt lidt ved at sætte @ foran $list så det pt
22. marts 2010 - 09:26
#4
net explode virkede ja men så var der tons andet kode der lavede knuder
22. marts 2010 - 09:34
#5
Der er ingen problemer med explode, og ingen grund til at sætte @ foran noget - hvad er det, der går galt? Funktionen "split" forsvinder helt på et tidspunkt ...
22. marts 2010 - 09:40
#6
if ( $ip < $this->min || $ip > $this->max || $this->topidx[ $aclass ] < 0 ) og $bottom = abs( $this->topidx[ $aclass ] ) - 1; begge for Notice: Undefined index:xx.xx.xx.xx
22. marts 2010 - 10:29
#7
Det er vel $aclass der fejler ? Men mere kode ville være godt. Hvilke fejlmeddelser som vises, kan du selv bestemme enten i din php.ini eller ved at bruge ini_set()
22. marts 2010 - 10:50
#8
den skal jeg lige have uddybet ini_set(); hvis jeg place den i koden, hvad mere skal der stå ?
22. marts 2010 - 10:54
#9
function lookup( $ip ) { if ( $this->has_init != 1 ) { return IP2C_CALL_INIT_FIRST; } if ( $this->fp ) { @$list = split( '\.', $ip ); //$list = explode( '\.', $ip ); $aclass = $list[ 0 ]; $orgip = $ip; $ip = sprintf( '%u', ip2long( $ip ) ); if ( $ip < $this->min || $ip > $this->max || $this->topidx[ $aclass ] < 0 ) { return IP2C_IP_NOT_FOUND; } if ( $aclass == $this->maxip ) { $top = $this->records; $bottom = abs( $this->topidx[ $aclass ] ) - 1; } else { $bottom = abs( $this->topidx[ $aclass ] ) - 1; $i = 1; while ( $this->topidx[ $aclass + $i ] < 0 ) { $i++; } $top = $this->topidx[ $aclass + $i ]; } if ( $aclass == $this->minip ) { $bottom = 0; } $found = false; $oldtop = -1; $oldbot = -1; $nextrecord = floor( ( $top + $bottom ) / 2 ); if ( $ip == $this->min ) { fseek( $fp, 16 ); return ip2country::readshort( $this->fp ); } elseif ( $ip == $this->max ) { fseek( $this->fp ,( ( $this->records * $this->recsize ) - $this->recsize + 16 ) ); return ip2country::readshort( $this->fp ); } $cnt = 0; while ( !$found ) { $cnt++; fseek( $this->fp, ( ( $nextrecord * $this->recsize ) + 8 ) ); $start = sprintf( '%u', ip2country::readlong( $this->fp ) ); if ( $ip < $start ) { $top = $nextrecord; } else { $end = sprintf( '%u', ip2country::readlong( $this->fp ) ); if ( $ip > $end ) { $bottom = $nextrecord; } else { return ip2country::readshort( $this->fp ); } } $nextrecord = floor( ( $top + $bottom ) / 2 ); if ( $top == $oldtop && $bottom == $oldbot ) { return IP2C_IP_NOT_FOUND; } $oldtop = $top; $oldbot = $bottom; } } } function idx2country( $index ) { $res = "--"; if ( $index >= 0 || $index < $this->countries ) { $res = $this->countryname[ $index ]; } return $res; } function destroy() { if ( $this->fp ) { fclose( $this->fp ); $this->has_init = 0; } } }
22. marts 2010 - 10:59
#10
Du skal ikke $list = explode( '\.', $ip ); men bare $list = explode( '.', $ip );
22. marts 2010 - 11:02
#11
Fra php.ini ; - Show all errors, except for notices ; ;error_reporting = E_ALL & ~E_NOTICE | E_STRICT ini_set() bruger du i starten af dit script <?php ini_set('error_reporting', E_ALL & ~E_NOTICE | E_STRICT); // resten af script ?>
22. marts 2010 - 11:03
#12
Skulle lige til at skrive det samme, erik :O)
22. marts 2010 - 11:03
#13
ah ja det virker også mange tak. nu vi er igan har lige en mere men du kan godt få point nu, så opretter jeg en ny eller hvad ?
22. marts 2010 - 11:14
#14
if( isset($_POST['submit2']) && !$error_form2) { echo '<p>'.safe_display($word_312).'</p>'; }elseif( (isset($_POST['submit1']) && !$error_form1) || $error_form2 ){ ?> <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post"> <input type="hidden" name="id" value="<?php echo $db_id; ?>"> <input type="hidden" name="username" value="<?php echo $db_name; ?>"> <table cellspacing="5" style="border: 1px #E2E8ED solid;" bgcolor="#FBFCFD" width="550"> <tr><td colspan='2'><center><?php echo $db_name." ".safe_display($word_444); ?></center></td></tr> <tr> <td class="tavaline_text_bold"><?php print safe_display($word_314) ?></td> <td><input name="lost_parool" type="password"></td> </tr> <tr> <td class="tavaline_text_bold"><?php print safe_display($word_315) ?></td> <td><input name="lost_parool2" type="password"></td> </tr> <tr> <td colspan='2'><input class='login_ok' type='submit' name='submit2' value='Save'></td> </tr> <?php if($error_form2) { // echo "<tr><td colspan='4'><center>".$error_message2."</center></td></tr>"; } echo '</table></form>'; }else{ <------ her siger den parse error, det fatter jeg ikke det passer med {} hele vejen.
21. september 2010 - 06:16
#15
lukket
Kurser inden for grundlæggende programmering