Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  9 1045
jeg trenger dette


videresendt.php <- som har koden og en
txt fil der jeg legger inn linkene


som f.eks "videresendt.php?1" så går den videre til adressen som det står 1 foran i txt fila...

godt nokk forklart?
videresendt.php?1 er ikke bra nok. $foo = bar. videresendt.php?foo=bar. header("Location: ".$foo);
utenfor ditt vindu
larsforstyrret's Avatar
Hvorfor kan du ikke bare lære deg selv litt php, istedenfor til stadigheter spørre folk her om de kan det?
ex-crew uten solbriller
SharQ's Avatar
Dessuten, hvorfor bruker du rein tekstfil? I såfall er det jo mye lettere å bare lage vanlige linker. Bruk en database, heller, så kan du legge til flere linker på en betydelig mer effektiv måte - og det vil ta langt mindre tid å hente linkene ut av basen dersom du får mange.

Og jeg må nok si at jeg slutter meg til CrazyWeb's kommentar

Sjekk også php.net - mye bra hjelp der.

HJ
[FONT=courier new]
<?php
$fil = @fopen("fil.txt","r") or die("Kunne ikke åpne filen.\n");
while(!feof($fil)) {
$linje = fgets($fil);
list($nr,$url) = split(" ",$linje,2);
if($_SERVER["QUERY_STRING"] == $nr) {
header("Location: $url");
exit;
}
}
die("Linken ble ikke funnet.\n");
?>
[/font]
edit: formattering
Sist endret av yhata; 10. august 2003 kl. 20:34.
ex-crew uten solbriller
SharQ's Avatar
yhata: Snedig, men problemet (som det er umulig å gjøre noe med) er at den må tråle gjennom hele fila før den finner ut at et eventuelt tall ikke er der.

Dersom man i stedet tar hele greia sekvensielt, ta den slik i stedet:

fil.txt begynner etter denne linjen
0 dummy
1 http://www.photocritic.org
2 http://www.google.org
fil.txt fortsetter på samme måte


Kode

<?
// linjen nedenfor leser hele fila til et array
$fil = file("fil.txt") or die("Kunne ikke åpne filen");

if ($_SERVER["QUERY_STRING"] < (count($fil) + 1 )) 
   {
   
   /* i linjene nedenfor velger scriptet den aktuelle 
   linjen fra fila som ligger i arrayet $fil. Den gjør så 
   om den valgte linja til et array, og velger det andre 
   feltet i arrayet som Location-valg */

   $valgturlnummer = $_SERVER["QUERY_STRING"];
   $URL = explode (" ",$fil[$valgturlnummer]);
   echo("Location: $URL[1]");
   }
else 
   {
   die ("Linken ble ikke funnet.");
   }

?>
Merk at koden kan ha småfeil i, da jeg ikke gadd å kjøre den på serveren. Kjører mitt eget linksystem her: http://www.photocritic.org/li/ - over 300 linker som kan selekteres av databasen på brøkdel av et sekund. Betydelig raskere enn tekstfiler.
Sist endret av SharQ; 11. august 2003 kl. 19:02.
Opprinnelig postet av SharQ
yhata: Snedig, men problemet (som det er umulig å gjøre noe med) er at den må tråle gjennom hele fila før den finner ut at et eventuelt tall ikke er der.

Dersom man i stedet tar hele greia sekvensielt, ta den slik i stedet:
(...)
Vis hele sitatet...
file() leser uansett hele fila, så det blir nok ikke så forskjellig.

Det er vel antakeligvis en liten side det er snakk om, så å kjøre split() et par ganger for mye skader vel lite. Hvis Fant derimot driver på med noe i større skala, bør han nok sette seg inn i det selv, og i alle fall ikke bruke tekstfiler til sånne data.
ex-crew uten solbriller
SharQ's Avatar
Jeg fikk ikke scriptet ditt til å kjøre, jeg, så jeg klarte ikke å måle hvorvidt det er store tidsforskjeller det er snakk om. (den klager over at fgets() trenger et argument til (lengden på lesing, tenker jeg), og du bruker $URL og $url om hverandre, så det var den ikke spesielt glad i)

Når det er sagt, så tar det 0.154424 sekunder å kjøre scriptet mitt 500 ganger etter hverandre (vha en FOR løkke). Driter vi i løkka (og øker dermed feilmarginene), så tar det 0.00080 sekunder å kjøre scriptet én gang.

Så hva det er jeg maser med aner jeg ikke

Haje
Opprinnelig postet av TipeX
videresendt.php?1 er ikke bra nok. $foo = bar. videresendt.php?foo=bar. header("Location: ".$foo);
Vis hele sitatet...
Spørs hva du mener med bra nok, isset funker til den.

Kode

<? if (isset($_GET['1'])) { echo "O M G"; } ?>
putt i test.php og så ta en test.php?1

▼ ... noen måneder senere ... ▼
ex-crew uten solbriller
SharQ's Avatar
Opprinnelig postet av Scoody
Spørs hva du mener med bra nok, isset funker til den.

Kode

<? if (isset($_GET['1'])) { echo "O M G"; } ?>
putt i test.php og så ta en test.php?1

Vis hele sitatet...
Interessant. Er det noen måte å få tak i alle variabler som ligger rett etter ?, uten å ha blitt lagt inn i en variabel?

Som f.eks at scriptet legger "4" på "index.php?4" inn i en variabel som kan brukes?

Dette funker ikke, men det hadde vært kjekt:

Kode

<? if (isset($_GET['1'])) { $variable = striptags($_GET['1']); } ?>

HJ