Avatar billede julemandenb Nybegynder
23. januar 2011 - 15:38 Der er 22 kommentarer og
1 løsning

Virtuel IP adresse, finder kun det sidste tal.

Hej eksperten.

Mine tidligere problemer er blevet løst med succes. :)

Jeg er igang med et spil om Virtuel Computer Hacking.
Her skal man kunne finde hinanden via en Virtuel IP Adresse.
Jeg benytter RewriteRule til mine url'er og når jeg skal ind på en anden virtuel computer ser min URL således ud.

http://coolboom.dk/internet/362.888.455 <-- Dette er min brugers Virtuelle IP Adresse

På siden kører jeg en select som tjekker at denne IP adresse eksister i systemet. Hvis ikke den findes skriver den
"Ingen computer med denne IP!!"
Hvis IP Adressen eksister i system skriver den så
"Du er lige nu inde!! :)"

Det undrede mig over hvorfor den hele tiden kom med en fejl. derfor lavede jeg "Ingen computer med denne IP!!" om til
"Ingen computer med denne IP!! ( *IP ADRESSE* )"

Det viser sig at den kun tager og tjekker det sidste tal der står i den virtuelle IP adresse. så f.eks i mit problem vil den skrive

"Ingen computer med denne IP!! ( 5 )" da min IP er 362.888.455

Nu stiller jeg så en stort spørgsmålstegn ved dette, for har aldrig oplevet denne fejl før :s
Det kan jo ikke være min get funktion da den finder det rigtige tal ( 5 ) fra min IP ?

Nogle der kan hjælpe med dette? :)

Med Venlig Hilsen
Mikkel Bering
Avatar billede leif Seniormester
23. januar 2011 - 16:07 #1
Det kunne lyde som enten at den rewrite går galt eller at din funktion/måde at læse variablen på er forkert. Men jeg tror de fleste vil sige uden de to koder kan det være svært at sige hvad der får galt.
Avatar billede julemandenb Nybegynder
23. januar 2011 - 16:19 #2
Hej igen. Ja det har du sådan set ret i. Du få dem her :)

Min RewriteRule ser således ud.
___________________________________________
RewriteRule ^internet/([A-Za-z0-9_-]|\.)+$ files/internet/internet.php?vip=$1 [NC]
___________________________________________



Min Kode hvor jeg tjekker at IPen eksister ser sådan her ud.
___________________________________________

<?php
include $_SERVER['DOCUMENT_ROOT']."/inc/top.php";
$vip=$_GET['vip'];

$check_vip2 = mysql_query("SELECT * FROM vip WHERE vip = '$vip'")or die(mysql_error());
$findes_ip=mysql_num_rows($check_vip2);
$vis_ip = mysql_fetch_assoc($check_vip2);

if(isset($_POST[forsaet])){
$nyvip = strip_tags($_POST[nyvip]);
echo "<meta http-equiv='refresh' content='0;url=/internet/$nyvip' />";
}
    if($vis_ip['vip'] == "$vip"){
    ?>
    Du er lige nu inde!! :)
    <?php
    } else {
    echo "Ingen computer med denne IP! ( $vip )";
    }
include $_SERVER['DOCUMENT_ROOT']."/inc/bund.php";
?>
___________________________________________________

//Mikkel Bering
Avatar billede leif Seniormester
23. januar 2011 - 16:34 #3
Uden jeg er stærk i rewrite men det ser jo ud som om at du ikke tillader . i din rewrite
Avatar billede julemandenb Nybegynder
23. januar 2011 - 16:46 #4
^internet/([A-Za-z0-9_-]|\.)+

. står som nummer 3 fra venstre af
Avatar billede julemandenb Nybegynder
23. januar 2011 - 16:47 #5
Højre * undskyld :)
Avatar billede mons Nybegynder
23. januar 2011 - 18:22 #6
if($vis_ip['vip'] == "$vip")
Ændres til:
if($vis_ip['vip'] == $vip)

Gnyfferne væk fra $vip
Avatar billede julemandenb Nybegynder
23. januar 2011 - 18:27 #7
Mons. Det giver samme resultat. Har lige prøver :s
Avatar billede mons Nybegynder
23. januar 2011 - 18:27 #8
if(isset($_POST['forsaet'])){
$nyvip = strip_tags($_POST['nyvip']);

og disse skal have gnyffer $_POST['forsaet'] mm
Avatar billede mons Nybegynder
23. januar 2011 - 18:35 #9
$findes_ip=mysql_num_rows($check_vip2);

$findes_ip bruger du ikke senere, men hvis den er 1, så behøver du slet ikke senere spørge om
  if($vis_ip['vip'] == vip)
for de er lig med hinanden ( det har du jo lige fået bekræftet)
Avatar billede julemandenb Nybegynder
23. januar 2011 - 18:45 #10
Mons. Det hjælper åbenbart ikke med gnyfferne som du kalder dem. :s
- Og er klart over det med num_rows & fetch_assoc
Det var som endt kun lavet for at se om det andet virkede. Jeg benyttede nemlig num_rows først :s
Avatar billede julemandenb Nybegynder
23. januar 2011 - 18:47 #11
Min kode ser ligenu sådan ud....
__________________________________________________________

<?php
include $_SERVER['DOCUMENT_ROOT']."/inc/top.php";
$vip=$_GET[vip];

$check_vip2 = mysql_query("SELECT * FROM vip WHERE vip = '$vip'")or die(mysql_error());
$findes_ip=mysql_num_rows($check_vip2);
$vis_ip = mysql_fetch_assoc($check_vip2);

if(isset($_POST[forsaet])){
$nyvip = $_POST[nyvip];
echo "<meta http-equiv='refresh' content='0;url=/internet/$nyvip' />";
}
    if($findes_ip >= "1"){
    ?>
    Du er lige nu inde!! :)
    <?php
    } else {
    echo "Ingen computer med denne IP! ( $vip )";
    }
include $_SERVER['DOCUMENT_ROOT']."/inc/bund.php";
?>
Avatar billede mons Nybegynder
23. januar 2011 - 18:48 #12
Du henter variablerne dels med $_GET[''] og dels med $_POST.

Jeg ved egentlig ikke, om det betyder noget, men hvis du bruger method=GET, er det vel mest rigtigt, at hente dem med $_GET  og det samme hvis du bruger method=POST
Avatar billede julemandenb Nybegynder
23. januar 2011 - 18:51 #13
Hvad mener du?
Avatar billede mons Nybegynder
23. januar 2011 - 19:25 #14
Du sender variablerne fra en <form> med method= enten GET eller POST
så vil det jo være naturligt at 'hente' dem med samme 'metode'
Avatar billede julemandenb Nybegynder
23. januar 2011 - 19:33 #15
Det er fordi du ikke har fået hele koden med.

Dette er hele koden:
_____________________________________________________

<?php
include $_SERVER['DOCUMENT_ROOT']."/inc/top.php";
$vip=$_GET['vip'];

$check_vip = mysql_query("SELECT * FROM vip WHERE vip = '$vip22'")or die(mysql_error());
$findes_ip=mysql_num_rows($check_vip);
$vis_ip = mysql_fetch_assoc($check_vip);

if(isset($_POST[forsaet])){
$nyvip = strip_tags($_POST[nyvip]);
echo "<meta http-equiv='refresh' content='0;url=/internet/$nyvip' />";
}
?>
<table width="100%">
<tr>
<td>


<table width="31%" align="center">
<form action="" method="post">
<tr>
<td width="54%" align="right">
<input type="text" name="nyvip" value="<?php $vip; ?>" size="40" />
</td>
<td width="6%">
<input type="submit" name="forsaet" value="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gå&nbsp;&nbsp;&nbsp;&nbsp;" />
</td>
<td>
<a href="/internet/1.1.1.1/logind"><img src="/img/key.png" title="Adminlogin ( IP: 1.1.1.1 )" /></a>
</td>
</tr>
</form>
</table>

</td>
</tr>
<tr>
<td>

<table width="100%" align="center">
<tr>
<td>

    <table width="20%" align="center">
    <tr>
    <td>
    <?php
    if(findes_ip >= "1"){
    ?>
    Du er lige nu inde!! :)
    <?php
    } else {
    echo "Ingen computer med denne IP!";
    }
    ?>   
    </td>
    </tr>
    </table>
</td>
</tr>
</table>

</td>
</tr>
</table>
<?php
include $_SERVER['DOCUMENT_ROOT']."/inc/bund.php";
?>
Avatar billede mons Nybegynder
23. januar 2011 - 20:05 #16
if(isset($_POST[forsaet])){
$nyvip = strip_tags($_POST[nyvip]);

Du har stadig ikke gnyffer på 'forsaet og 'nyvip'
Avatar billede julemandenb Nybegynder
23. januar 2011 - 20:14 #17
Det lader ikke til det laver nogen forskeld?
Avatar billede mons Nybegynder
23. januar 2011 - 20:27 #18
Hvor kommer $vip22 nu fra?
Har den værdi?
Avatar billede julemandenb Nybegynder
23. januar 2011 - 20:34 #19
Det var en taste fejl. :)
Avatar billede mons Nybegynder
23. januar 2011 - 21:07 #20
echo "<meta http-equiv='refresh' content='0;url=/internet/$nyvip' />";

Hvad laver $nyvip her?
Avatar billede julemandenb Nybegynder
23. januar 2011 - 21:21 #21
Tråden er lukket.
Min fætter ([A-Za-z0-9_-]|\.)+ til ([0-9\.]+) i min RewriteRule fil. :)
Mons. hvis du vil have lidt point så smid lige et svar :)
Avatar billede mons Nybegynder
23. januar 2011 - 23:18 #22
<form action="" method="post">

du har en form her hvor action='' (ingenting), men så kan du jo ikke få indtastede værdier videre.
Er det meningen, at filen skal kalde sig selv?
Så skulle du måske forsøge med:

<form action="<?=$PHP_SELF;?>" method="GET">

i stedet for 'refresh' ?
Avatar billede mons Nybegynder
23. januar 2011 - 23:29 #23
Jeg er blevet for gammel til at tro på Julemanden, og jeg er for gammel til at tro på, at din ovenstående kode pludselig virker, fordi din RewriteRule er ændret
:-(
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