webForumDet fria alternativet

vad är felet?

10 svar · 236 visningar · startad av caze

cazeMedlem sedan sep. 20016 059 inlägg
#1

Hejsan!

Jag klistrade in ett php skript som kan lägga till länkar... det verkar inte fungera, eftersom ingenting händer när jag jag skrivit till en vad är felet?
http://www.thi-sthlm.com/carl/asp5/index.php

tack på förhand

------------------
/Caze

FlashXMedlem sedan nov. 19991 033 inlägg
#2

Knepigt när man inte vet hur links.php ser ut...

cazeMedlem sedan sep. 20016 059 inlägg
#3

Så här ser links.php ut:

<?
// Besökarnas länkar 1.2
// Copyright © 2001 Mathias Niklasson
// http://www.niklasson.net/

##################################################
# Script

require ("./variablar.php");

$fp = fopen("$ipfil", 'r');
$ip = fgets($fp,255);
fclose($fp);

if(strcmp($ip,$REMOTE_ADDR)) {
$link=htmlspecialchars($link);
$link=stripslashes($link);
$link=str_replace("\n","",$link);
$text=htmlspecialchars($text);
$text=stripslashes($text);
$text=str_replace("\n","",$text);

$fp = fopen("$linksfil", 'r');
$antal=fgets($fp,255);
for($i=0;$i<$antal;$i++){
$alink[$i]=fgets($fp,255);
$atext[$i]=fgets($fp,255);
}
fclose($fp);

$fp = fopen("$linksfil", 'w');
fputs($fp,"$antal");
fputs($fp,"$link\n");
fputs($fp,"$text\n");
for($i=0;$i<$antal-1;$i++){
fputs($fp,"$alink[$i]");
fputs($fp,"$atext[$i]");
}
fclose($fp);

$fp = fopen("$ipfil", 'w');
$ip = fputs($fp,$REMOTE_ADDR);
fclose($fp);
}

header("Location: $origfil");
?>

------------------
/Caze

FlashXMedlem sedan nov. 19991 033 inlägg
#4

Jo, jag listade ut att det var niklassons.
Testade lite snabbt på min egen server och det fungerar utmärkt.
Eftersom jag kör register_globals = Off så fick jag visserligen ändra lite i mottagningen av variablerna men det är inte problemet hos dig. I så fall hade du fått tomma radbrytningar varje gång någon lägger till en länk.

Det enda jag gjorde, utöver att ladda upp filerna i samma mapp, var att sätta skrivrättigheter på ip.txt och links.txt.
Vad jag kan se, så är det egentligen bara dessa saker du bör kontrollera.

cazeMedlem sedan sep. 20016 059 inlägg
#5

Förstås inte...:(
som du kanske förstår e jag inte bra på detta...vad menar du, vad exakt ska jag göra för att det ska fungerar som för dig...kan du förklara lite mer detaljerat och för en nybörjare som jag "enkelt":)

tack...

------------------
/Caze

FlashXMedlem sedan nov. 19991 033 inlägg
#6

Liten reservation.
Om servern du använder kör en forward på IP:et så lär alla besökare få localhost i $REMOTE_ADDR, vilket innebär att de redan satt en länk i filen eftersom ip.txt redan innehåller 127.0.0.1

I detta fallet måste du ändra skriptet:

<?
// Besökarnas länkar 1.2
// Copyright © 2001 Mathias Niklasson
// [url="http://www.niklasson.net/"]http://www.niklasson.net/[/url] 

##################################################
# Script

$ip_nummer = getenv(HTTP_X_FORWARDED_FOR);

require ("./variablar.php");

$fp = fopen("$ipfil", 'r');
$ip = fgets($fp,255);
fclose($fp);

if(strcmp($ip,$ip_nummer)) {
$link=htmlspecialchars($link);
$link=stripslashes($link);
$link=str_replace("\n","",$link);
$text=htmlspecialchars($text);
$text=stripslashes($text);
$text=str_replace("\n","",$text);

$fp = fopen("$linksfil", 'r');
$antal=fgets($fp,255);
for($i=0;$i<$antal;$i++){
  $alink[$i]=fgets($fp,255);
  $atext[$i]=fgets($fp,255);
}
fclose($fp);

$fp = fopen("$linksfil", 'w');
fputs($fp,"$antal");
fputs($fp,"$link\n");
fputs($fp,"$text\n");
for($i=0;$i<$antal-1;$i++){
  fputs($fp,"$alink[$i]");
  fputs($fp,"$atext[$i]");
}
fclose($fp);

$fp = fopen("$ipfil", 'w');
$ip = fputs($fp,$ip_nummer);
fclose($fp);
}

header("Location: $origfil");
?>

Detta gäller bl.a. f2s.com men det finns säkert flera.

FlashXMedlem sedan nov. 19991 033 inlägg
#7

Nu skrev du ett inlägg under tiden jag skrev mitt.
Skapa en php-fil som ser ut så här:

<?
print ("$REMOTE_ADDR\n")
?>

Ladda upp den på servern och öppna den i webbläsaren.
Om det står 127.0.0.1 på sidan, så ska du istället använda skriptet som jag postade i förra inlägget. Du byter alltså ut all kod i links.php mot den.

cazeMedlem sedan sep. 20016 059 inlägg
#8

nu när jag la in
<?
print ("$REMOTE_ADDR\n")
?>
www.thi-sthlm.com/carl/asp5/kalas.php så visar den inte 127.0.0.1 på sidan utan 217.208.194.243 .

Varför fungerar det ändå inte.... när man lägger till en länk så updateras bara den sidan och inget händer...:(

------------------
/Caze

FlashXMedlem sedan nov. 19991 033 inlägg
#9

Ok, då behöver du inte byta koden i skriptet.
Om du laddat upp filerna i samma mapp (och det verkar det ju som) så är det bara att se till så det finns skrivrättigheter på filerna ip.txt samt links.txt
På en unix-server innebär det att man måste chmodda filerna och för det mesta måste det vara 777 eftersom webbservern oftast går som en annan användare.
Är det en windowsmaskin så används inte chmod och är det en sådan du använder, så vet jag inte var problemet ligger. Använder själv inte kombinationen php och windows och har därför ingen möjlighet att testa detta.

cazeMedlem sedan sep. 20016 059 inlägg
#10

vad menar du med att det finns skrivrättigheter...?

------------------
/Caze

FlashXMedlem sedan nov. 19991 033 inlägg
#11

På en *nix-server så är du en användare när du loggar in via din ftp-klient. Du har då skrivrättigheter på filerna du laddar upp eftersom du är ägare till dessa. Webbservern är också en användare på servern men är ju inte samma användare som du. Den äger alltså inte dina filer och kan därför inte skriva till filer som du laddar upp. Därför måste du ge tillstånd för andra användare att skriva till filerna ip.txt och links.txt.
Detta kan du göra med din ftp-klient. Det skilljer kanske lite i hur man gör detta men vanligtvis räcker det med att högerklicka på filen och välja något som heter CHMOD i menyn som dyker upp.
Du får då en dialogruta som visar olika kombinationer man kan välja mellan.
Oftast brukar det finnas kryssrutor och dessa är indelade i tre grupper. Ägare, Grupp och Andra. Var och en av dessa är indelade i tre alternativ. Läs, Skriv och exekvera. För att ange chmod 777 så ska alla rutor bockas i.

252 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
119 ms — hämta statistik (db)
131 ms — hämta tråd, inlägg och bilagor (db)