Avatar billede nickern Nybegynder
13. januar 2007 - 13:10 Der er 52 kommentarer og
1 løsning

Dæk den rigtige URL, vha. PHP

Hejsa

Nogen der kan hjælpe mig med at lave en stump kode?
Det skal være en kode som dækker over den rigtige url.

F.eks. Den rigtige url går til jubii.dk
den anden URL går også til Jubii.dk men ligner noget ala dette måske: http://www.geeg.sf/out.php?id=3456

Nogen der kender koden dertil eller kan kode det for mig hurtigt?

Jeg har URLsne i en DB og henter dem ud med linkbeskrivelsen:)
Avatar billede leif Seniormester
13. januar 2007 - 13:17 #1
Er det sådan noget her du tænker på:
<?

$id = $_GET["id"];

if(isset($id)){

$db_connect = mysql_connect("localhost", "Bruger", "Kode") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());


$selectSQL = ("SELECT adresse FROM links WHERE id = $id");
$select_result = mysql_query($selectSQL, $db_connect) or die(mysql_error());
$row = mysql_fetch_array($select_result);

mysql_close();

header("Location: $row[adresse]");
}

?>



Så hvis skriver:

out.php?id=3 henter den ID 3 adressebasen og redirecter mig til den adresse som der står i databasen, men jeg vil jo efterfølgende kunne se den rigtige adresse
Avatar billede dmdisco Nybegynder
13. januar 2007 - 13:17 #2
i out.php laver du et opslag på id nummeret for URLen
den du får med $_GET['id']

så henter du urlen og smider den ind i en header("location: ".$url);
Avatar billede nickern Nybegynder
13. januar 2007 - 13:28 #3
leif - det er lige meget når de har klikket på den:) Skal bare bruge det til noget nyhedsbrevssystem:)
Avatar billede leif Seniormester
13. januar 2007 - 13:28 #4
Så skulle du kunne bruge ovenstående kode
Avatar billede nickern Nybegynder
13. januar 2007 - 13:32 #5
okay tak:) tester den lige og ser om det duer:)

Men hvor spytter den urlen ud henne?
Avatar billede leif Seniormester
13. januar 2007 - 13:34 #6
header("Location: $row[adresse]");

Er linien hvor den redirecter.


$selectSQL = ("SELECT adresse FROM links WHERE id = $id");
$select_result = mysql_query($selectSQL, $db_connect) or die(mysql_error());
$row = mysql_fetch_array($select_result);

Er linierne hvor den kigger i databasen og finder den rigtigte linie
Avatar billede nickern Nybegynder
13. januar 2007 - 13:38 #7
ja - men når jeg skal hente linket ned på min side - hvorn skal jeg så gøre det er det bare med header... ?
Avatar billede leif Seniormester
13. januar 2007 - 13:41 #8
Ikke forstået !

header("Location: $row[adresse]"); sikrer at når brugeren kommer hertil så videresender den brugeren til den nye adresse.
Avatar billede leif Seniormester
13. januar 2007 - 13:46 #9
Hvis du fx. går ind på www.ljnet.dk/exp/755780/out.php?id=957 vil du komme til denne side igen !
Avatar billede leif Seniormester
13. januar 2007 - 13:46 #10
Det er fordi at 957 i databasen har adresse = http://www.eksperten.dk/spm/755780
Avatar billede nickern Nybegynder
13. januar 2007 - 13:53 #11
Ja, men jeg skal jo bruge det i mit nyhedsbrev

Så det bliver noget lignende dette:

<-- Nyhedsbrev start -->
Hejsa

Få noget at vide om at skjule URLen
http://www.ljnet.dk/exp/755780/out.php?id=957
----------
Gode ideer til at tjene penge
http://www.shoplisten.dk/tjen/

<-- Nyhedsbrev slut -->
Avatar billede leif Seniormester
13. januar 2007 - 15:40 #12
Så er jeg ikke helt med !

Man kan jo lave et link som hedder:
<a href="http://www.eksperten.dk/spm/755780">link</a>


Er det, det du mener ?
Avatar billede nickern Nybegynder
13. januar 2007 - 17:49 #13
ja det er det jeg mener - men det link skal være <a href="http://www.ljnet.dk/exp/755780/out.php?id=957">link</a> som så fører til http://www.ljnet.dk/exp/755780/out.php?id=957
Avatar billede leif Seniormester
13. januar 2007 - 17:53 #14
Har du ikke selv lige lavet løsningen ?
Avatar billede leif Seniormester
13. januar 2007 - 17:57 #15
Men hvad data og hvordan i databasen ?
Avatar billede nickern Nybegynder
13. januar 2007 - 18:04 #16
Jo har jeg både og... Mere hvordan jeg får lavet det link der;)

Jeg har det hele i en Database... urlen skal hentes fra "link" med "id" - hvis du forstår?
Avatar billede leif Seniormester
13. januar 2007 - 18:10 #17
Er det alle fra samme tabel ?
Avatar billede nickern Nybegynder
13. januar 2007 - 18:12 #18
Ja - alle links ligger i samme tabel:)

Jeg har en kolonne med ID, en med BESKRIVELSE og en med LINK (Urls)
Avatar billede leif Seniormester
13. januar 2007 - 18:13 #19
<?

$selectSQL = ("SELECT * FROM links");
$select_result = mysql_query($selectSQL, $db_connect) or die(mysql_error());

    while ($row = mysql_fetch_array($select_result))
    {

    $link = "http://www.domæne.dk/out.php?id=".$row[id];

    }

?>
Avatar billede leif Seniormester
13. januar 2007 - 18:13 #20
Er det så sådan noget du tænker på ?
Avatar billede nickern Nybegynder
13. januar 2007 - 18:16 #21
ja det tror jeg - og så bare med en echo

echo"<a href="$link">tekst</a>";
Avatar billede leif Seniormester
13. januar 2007 - 18:18 #22
Men kunne også bygge den direkte ind i den echo:

echo '<a href="http://www.domæne.dk/out.php?id='.$row[id].'">tekst</a>';


Hvis du altså laver den ikke i en løkke !
Avatar billede leif Seniormester
13. januar 2007 - 18:19 #23
Hvis du altså laver den ikke i en løkke ! = Hvis du altså laver den i en løkke !
Avatar billede nickern Nybegynder
13. januar 2007 - 18:25 #24
Okay... så lige for at samle op på det, så skal:

out.php indeholde:
<?

$id = $_GET["id"];

if(isset($id)){

$db_connect = mysql_connect("localhost", "Bruger", "Kode") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());


$selectSQL = ("SELECT adresse FROM links WHERE id = $id");
$select_result = mysql_query($selectSQL, $db_connect) or die(mysql_error());
$row = mysql_fetch_array($select_result);

mysql_close();

header("Location: $row[adresse]");
}

?>

og der hvor linket skal stå skal så indholde:
<?

$selectSQL = ("SELECT * FROM links");
$select_result = mysql_query($selectSQL, $db_connect) or die(mysql_error());

    while ($row = mysql_fetch_array($select_result))
    {

    $link = "http://www.domæne.dk/out.php?id=".$row[id];

    }

?>

Er det rigtigt forstået?
Avatar billede leif Seniormester
13. januar 2007 - 18:27 #25
out.php = Ja

Den anden = Måske, Ja, nej, alt afhængig af den kode som skal udskrive linket ! Hvis du bruger ovenstående kode og kun udskriver $link efter } så får du kun link på den sidste i databasen.
Avatar billede leif Seniormester
13. januar 2007 - 18:29 #26
Jeg fornemmer at det skal indkodes i et allerede eksisterende script, så derfor er det svært lige at sige sådan !
Avatar billede nickern Nybegynder
13. januar 2007 - 18:42 #27
Ups... den anden fil skulle også være sådan her:)

<?

$id = $_GET["id"];

if(isset($id)){

$db_connect = mysql_connect("localhost", "Bruger", "Kode") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());


$selectSQL = ("SELECT adresse FROM links WHERE id = $id");
$select_result = mysql_query($selectSQL, $db_connect) or die(mysql_error());
$row = mysql_fetch_array($select_result);

mysql_close();

header("Location: $row[adresse]");
}

?>

og der hvor linket skal stå skal så indholde:
<?

$selectSQL = ("SELECT * FROM links");
$select_result = mysql_query($selectSQL, $db_connect) or die(mysql_error());

    while ($row = mysql_fetch_array($select_result))
   
echo '<a href="http://www.domæne.dk/out.php?id='.$row[id].'">tekst</a>';

?>
Avatar billede leif Seniormester
13. januar 2007 - 18:44 #28
while ($row = mysql_fetch_array($select_result))
   
echo '<a href="http://www.domæne.dk/out.php?id='.$row[id].'">tekst</a>';

skal være:

    while ($row = mysql_fetch_array($select_result))
    {
echo '<a href="http://www.domæne.dk/out.php?id='.$row[id].'">tekst</a>';
}
Avatar billede nickern Nybegynder
13. januar 2007 - 19:15 #29
okay:)
Avatar billede nickern Nybegynder
14. januar 2007 - 13:51 #30
Hmmm... Så testede jeg det af:)
Det fungerer bare ikke helt:)

<title>Test</title>
<? require'db.php'; ?>
<?

$selectSQL = ("SELECT * FROM spar");
$select_result = mysql_query($selectSQL, $db_connect) or die(mysql_error());

while ($row = mysql_fetch_array($select_result))
    {
echo '<a href="http://www.shoplisten.dk/dak/out.php?id='.$row[id].'">".$row['link']."</a>';
}
?>

Det er der hvor mine links skal komme frem:)

Men jeg får denne fejlmeddelse: Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /hsphere/local/home/nickern/shoplisten.dk/dak/test.php on line 10

Out.php ser således ud:
<title>Out.php</title>
<? require'db.php'; ?>
<?

$id = $_GET["id"];

if(isset($id)){

$selectSQL = ("SELECT adresse FROM spar WHERE id = $id");
$select_result = mysql_query($selectSQL, $db_connect) or die(mysql_error());
$row = mysql_fetch_array($select_result);

mysql_close();

}

?>
Avatar billede leif Seniormester
14. januar 2007 - 14:19 #32
Avatar billede leif Seniormester
14. januar 2007 - 14:20 #33
Og i Out.php mangler du jo:
header("Location: $row[adresse]");


Og der må IKKE være noget output før header("Location: $row[adresse]"); så <title>Out.php</title> skal væk
Avatar billede nickern Nybegynder
14. januar 2007 - 14:39 #34
Nu er der så ikke nogen fejl på nogen af siderne (efter det er rettet)... Men jeg får heller ikke noget indhold ud:S

Jeg har 200 adresser i min DB, men de kommer ikke ud :s
Avatar billede leif Seniormester
14. januar 2007 - 15:16 #35
Kan du poste den fulde kode af test.php ? eller rename den til test.phps ?
Avatar billede nickern Nybegynder
14. januar 2007 - 15:50 #36
Se begge filer her: http://shoplisten.dk/dak/exp/ - ved ikke om jeg har gjort det forkert? kan godt ligge koden over i txt filen hvis det er:)
Avatar billede leif Seniormester
14. januar 2007 - 16:16 #37
$selectSQL = ("SELECT * FROM spar");
$select_result = mysql_query($selectSQL, $db_connect) or die(mysql_error());

til:

$selectSQL = ("SELECT * FROM spar");
$select_result = mysql_query($selectSQL) or die(mysql_error());
Avatar billede leif Seniormester
14. januar 2007 - 16:17 #38
Og så var det til .phps jeg ville have og IKKE .phps.htm
Avatar billede nickern Nybegynder
14. januar 2007 - 16:51 #39
hvordan gemmer man det i .phps ?
Jeg bruger Stones ?
Avatar billede leif Seniormester
14. januar 2007 - 16:53 #40
Har du ændret i henhold til kommentar: 14/01-2007 16:16:45
Avatar billede leif Seniormester
14. januar 2007 - 16:55 #41
Kender ikke stones, bruger selv Notepad !
Avatar billede leif Seniormester
14. januar 2007 - 17:00 #42
<? require'db.php'; ?>
<?

$id = $_GET["id"];

if(isset($id)){

$selectSQL = ("SELECT adresse FROM spar WHERE id = $id");
$select_result = mysql_query($selectSQL) or die(mysql_error());
$row = mysql_fetch_array($select_result);

mysql_close();

header("Location: $row[adresse]");

?>

Hedder feltet i din tabel adresse og er står der den fulde adresse ned http:// ?
Avatar billede nickern Nybegynder
14. januar 2007 - 17:02 #43
Sidste svar var med hensyn til at gemme i .phps :)

Jaaa... Nu fungerer det næsten - nu spytter den alt ud:)
Jeg har et lille problem - den gider ikk hente adressen:s

header("Location: $row[.$url.]");

URL - er den række/kolonne som adresserne ligger i - hvordan skal det lige kringles?
Avatar billede leif Seniormester
14. januar 2007 - 17:03 #44
header("Location: $row[$url]");
Avatar billede nickern Nybegynder
14. januar 2007 - 17:03 #45
Ja - der står den fulde adresse i databasen med http:// og den hedder url
Avatar billede leif Seniormester
14. januar 2007 - 17:04 #46
Sorry,

header("Location: $row[url]");
Avatar billede nickern Nybegynder
14. januar 2007 - 17:06 #47
Avatar billede nickern Nybegynder
14. januar 2007 - 17:06 #48
ups - svar til 17.03 ;)
Avatar billede nickern Nybegynder
14. januar 2007 - 17:08 #49
men får samme fejl:s
Avatar billede leif Seniormester
14. januar 2007 - 17:11 #50
Ja, fordi du prøver at trække feltet adresse uf og det hedder url !!!

Ændre:
$selectSQL = ("SELECT adresse FROM spar WHERE id = $id");
til
$selectSQL = ("SELECT url FROM spar WHERE id = $id");
Avatar billede nickern Nybegynder
14. januar 2007 - 17:13 #51
Så fungerer det ;D

Tak mester

Gider du smække et svar så du kan få point?
Avatar billede leif Seniormester
14. januar 2007 - 17:24 #52
Svar.
Avatar billede leif Seniormester
14. januar 2007 - 17:36 #53
Takker
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