Det finns nästan lika många sätt att göra detta som att säja snö på eskimå språket.
Hur har du tänkt dig?
25 svar · 441 visningar · startad av zipp3r
Det finns nästan lika många sätt att göra detta som att säja snö på eskimå språket.
Hur har du tänkt dig?
Så ja, nu var det klart
Naturligtvis går det att göra detta på många sätt och det blir lite coolare om man använder en databas, men jag gjorde en utan, eftersom jag inte vet om du kan köra MySql.
Skriptet består av fyra filer:
v.php3Visar länkarna.
<HTML>
<! () [url="http://www.nic-sys.se"]www.nic-sys.se[/url] >
<HEAD>
</HEAD>
<BODY>
Besökarnas hemsidor:<br>
<?
$fp = fopen("links.txt", 'r');
$antal=fgets($fp,1024);
for($i=0;$i<$antal;$i++){
$link=fgets($fp,255);
$text=fgets($fp,255);
echo "<a href='http://$link'>$text</a><br>";
}
?>
<BR>
<A HREF="s.html">Lägg till din egen länk!</A>
</BODY>
</HTML>
s.html Sida för att skicka in nya länkar.
<HTML>
<! () [url="http://www.nic-sys.se"]www.nic-sys.se[/url] >
<HEAD>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="i.php3">
Skriv in länk, typ "www.nic-sys.se":<INPUT NAME="link"><br>
Skriv beskrivning, typ "Min nyhetshemsida":<INPUT NAME="text"><br>
<INPUT TYPE="submit" VALUE="Skicka"><br>
</FORM>
</BODY>
</HTML>
i.php3 Sidan som lägger till länken i filen links.txt
<?
//
// () [url="http://www.nic-sys.se"]www.nic-sys.se[/url]
//
// Sållar bort HTML och annat junk.
$link=htmlspecialchars($link);
$link=nl2br($link);
$link=stripslashes($link);
$link=str_replace("\n","",$link);
$text=htmlspecialchars($text);
$text=nl2br($text);
$text=stripslashes($text);
$text=str_replace("\n","",$text);
//
// Sparar senaste länken överst
$fp = fopen("links.txt", '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("links.txt", '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);
//
// "Hoppar tillbaka"
header("Location: v.php3");
?>
Filen links.txt måste innehålla data från början, typ
5
[url="http://www.nic-sys.se"]www.nic-sys.se[/url]
nicclas hemsida
[url="http://www.nic-sys.se"]www.nic-sys.se[/url]
nic-sys.se
[url="http://www.nic-sys.se"]www.nic-sys.se/news/[/url]
AllaNyheter.com
[url="http://www.nic-sys.se"]www.nic-sys.se/news/[/url]
GRATIS!
[url="http://www.nic-sys.se"]www.nic-sys.se[/url]
Grattis!
där 5 anger hur många länkar som finns i filen! Filen links.txt skall vara skrivbar från PHP (typ chmod 777 links.txt).
/nicclas http://www.nic-sys.se <-- Har ett liknande, fast coolare, script på min sida!
[Redigerat av nicclas den 08 aug 2000]
zipp3r, verkar som om jag slipper skriva ett skript
Nä, Matti det behöver du inte. Men du får gärna debugga mitt
/nicclas http://www.nic-sys.se
[Redigerat av nicclas den 08 aug 2000]
Förresten.. nicclas, kan jag sprida det här skriptet vidare från min hemsida? Givetvis med länk till dig..
NEJ gör inte det än! Jag ska fila lite på den, sen kan du lägga upp den på din sida.
(Detta gäller naturligtvis endast Matti !!!!)
/nicclas
[Redigerat av nicclas den 08 aug 2000]
*bortredigerat pga. ålderdom*
Att ni bara orkar skriva hela lösningar på beställning
Det finns väl i princip två sätt att lösa det på.
i) Sätt en "cookie" hos besökaren då en länk skickas in som har en giltighetstid på. säg, fem minuter. Varje gång en besökare skickar in en länk så kollar du om besökaren har denna "cookie".
ii) Gör en logg över alla IP-nummer och tidpunkter då besökare skickar in länkar. Varje gång en länk skickas in kollar du om detta IP har skickat in för mindre än fem minuter sedan. [Alternativt kan du logga IP-nummret endast på den senast inskickade länken och kolla så att det inte är samma person som skickar två gånger "i rad".]
Inget av sätten är dock 100% säkert ty i) fungerar inte om cookies är avstängda och ii) går (ofta) att komma runt genom att koppla ner och koppla upp sig igen, och i och med det få ett nytt IP-nummer.
/nicclas - http://www.nyhetsrubriker.com/
Gjorde enligt ii) och sparade endast IP-nummret på senaste inskickade länken.
Byt i.php3 till denna nya version
<?
//
// () [url="http://www.nic-sys.se"]www.nic-sys.se[/url]
//
$fp = fopen("ipnummer.txt", 'r');
$ip=fgets($fp,255);
fclose($fp);
if(strcmp($ip,$REMOTE_ADDR)){
// Tar bort HTML och annat junk.
$link=htmlspecialchars($link);
$link=stripslashes($link);
$link=str_replace("\n","",$link);
$text=htmlspecialchars($text);
$text=stripslashes($text);
$text=str_replace("\n","",$text);
//
// Sparar senaste länken överst
$fp = fopen("links.txt", '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("links.txt", '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("ipnummer.txt", 'w');
$ip=fputs($fp,$REMOTE_ADDR);
fclose($fp);
}
//
// "Hoppar tillbaka"
header("Location: v.php3");
?>
Skapa först en tom fil "ipnummer.txt" som är skrivbar från PHP.
/nicclas - http://www.nyhetsrubriker.com
Jobbigt om man inte har så många besökare bara. Säg att en person vill skicka in en länk. Det går bra för honom. Fyra dagar senare vill han skicka in en ny länk. Men eftersom ingen har skickat in någon länk undertiden så får han inte göra detta.
Då är det bättre att kolla tidpunkten då denne skickade in länken
Jo, minns jag inte fel så beskrev jag hur man kan göra bara för några timmar sen här ovan. Problemet är att någon skall programmera det också... Jag valde att visa hur man kan programmera det "enklaste" alternativet. Resten klarar du nog själv...
/nicclas - http://www.nic-sys.se
[Redigerat av nicclas den 24 sep 2000]
Kan man göra så att den kolla om länken redan finns i arkivet. Ie Namn & URL. Och sen undrar jag om det e möjligt att göra så att den lägger ut dom raden den behöver ist för det som e defenierat i links.txt filen. ?? Nån som känner för att spinna vidare ?
varför måste du skriva koden med så j*vla små bokstäver????
Crisse6, möjligen för att övriga forummedlemmar inte vill scrolla i 5 minuter bara för att någon inte känner till hur man ökar fontstorleken i browsern; Klicka på Visa --> Textstorlek --> Störst - wala.