Avatar billede blackscorpion Nybegynder
26. juni 2004 - 00:28 Der er 58 kommentarer og
1 løsning

Vudering af Script.

Hej Eksperter.

Har brug for en vudering.

************************************************
<?

list ($sub, $domain, $end) = split ('[.]', $_GET['uri']);

echo "Sub: $sub<br>\n<br>\n";

if($end== "" OR $sub == "www") {
echo "Location: Main Index";
}
else {
echo "Location: www.$domain.$end/$sub";
}

?>
************************************************

Nogle der har nogle ideer osv??

ps. skal lige have fundet ud af hvordan jeg frembringer url'en, på den adresse der søges.. mener den hedder REQUESTED_URI... men kan ikke huske præcist hvordan den skal se ud.

Forslag og mangler accepteres. ;)

- BlackScorpion.
Avatar billede dennismp Nybegynder
26. juni 2004 - 00:32 #1
list ($sub, $domain, $end) = split ('[.]', $_GET['uri']);
burde måske være
list ($sub, $domain, $end) = explode('.', $_GET['uri']);


og jeg tror det er $_SERVER['REQUEST_URI'] du mangler
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 00:34 #2
dennismp -> nej for det giver kun siden der efterspørges, dvs. at den viser index.php eller hvad siden du nu ryger ind på...
Avatar billede dennismp Nybegynder
26. juni 2004 - 00:38 #3
det er ved at være sent :)

$_SERVER["HTTP_HOST"]
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 00:39 #4
Yeps har fundet den.. ;)
Avatar billede dennismp Nybegynder
26. juni 2004 - 00:43 #5
mht til idéer. Altså hvis den gør hvad den skal, så er det vel fint nok. Men hvis du vil.. såe:

- Du kunne jo tilføje et tjek så du undersøgte om directoriet findes før du viderestiller (det ser ud som om at det er et subdirectory - eller har du bare glemt http:// foran www.$domain.$end/$sub ? )
- Du kunne lave det i en frame, således at domæne bliver stående i url-baren i browseren (kunne evt være optional).
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 00:44 #6
men du kan tjekke det på www.alabit.dk

du kan prøve med.

bs.alabit.dk
scanvikar.alabit.dk
og bare www.alabit.dk
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 00:45 #7
ja den med framen, kunne jeg faktisk godt bruge... det er vel bare et normalt frameset eller?

og hvordan tjekker jeg om det findes??

directory_exists ? *G*
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 00:47 #8
hmmmm php manualen siger is_dir(); ... men hvordan bruges den??

if(is_dir($sub)) {
echo "ja det er en mappe";
}
else {
// vi smider brugeren til forsiden, for mappen findes ikke.
}

??
Avatar billede dennismp Nybegynder
26. juni 2004 - 00:49 #9
måske burde:
scanvikar.alabit.dk
og
www.scanvikar.alabit.dk

forwarde til det samme sted? :)

file_exists bruges også til at tjekke om directories findes.

og frame'n er helt normal :-)
Avatar billede dennismp Nybegynder
26. juni 2004 - 00:49 #10
is_dir er nok bedre end file_exists når jeg tænker mig om.. Så brug den.
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 00:50 #11
<?php

//list ($sub, $domain, $end) = split ('[.]', $_SERVER["HTTP_HOST"]);
list ($sub, $domain, $end) = explode('.', $_SERVER["HTTP_HOST"]);

if($end== "" OR $sub == "www") {
header("Location: index2.php");
exit;
}
else {

if($sub == "bs" OR $sub == "BS") {
  $sub = "BlackScorpion";
}

if(is_dir($sub)) {
  header("Location: http://www.$domain.$end/$sub/");
  exit;
}
else {
  header("Location: index2.php");
  exit;
}
}

?>
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 00:51 #12
dette her virker.

spørgsmålet er så om jeg skal få php til at lave framesættet...
eller hvordan.. prøver.

vil bare gerne have en simpel og optimal kode, da jeg ikke gider spilde for meget tid på at sende brugeren rundt de forskellige steder. *G* ;)
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 00:51 #13
hmm... så skal jeg jo til at tjekke en hel masse...

hvordan ville du liiiige pt. ændre koden, så den acceptere www. foran?
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 00:53 #14
når jeg sådan liiiige tænker mig om, ville jeg bruge array's til at tjekke om der var 3 eller 4 elementer... men kan det betale sig?
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 00:55 #15
if($sub == "bs" OR $sub == "BS") { er nu blevet til  if(strtolower($sub) == "bs") {
Avatar billede dennismp Nybegynder
26. juni 2004 - 00:58 #16
du kunne jo gøre det i stil med:

$host = $_SERVER["HTTP_HOST"]; // måske et andet navn, hvis du har mere fantasi

if( substr($host,0,4) == 'www.' )
  $host = substr($host,4);

list ($sub, $domain, $end) = explode('.', $host);
Avatar billede dennismp Nybegynder
26. juni 2004 - 01:00 #17
fra noget gammelt kode jeg havde liggende. Du skal self lige tilpasse det, men det kan være det kan hjælpe dig igang..

        if( $frame == 'Y' )
        { 
            echo "<html><head><title>$title</title>\n\n";
            echo "<!---------------------------------------------------------------------\n";
            echo "---------------------------------------------------------------------->\n\n";
            echo "</head>\n\n\n\n";
            echo "<frameset cols=100%,* frameborder=no border=0 framespacing=0>\n";
            echo "<frame src=$url>\n";
            echo "<noframes>\n";
            echo "<body bgcolor=black link=silver alink=black vlink=gray>\n";
            echo "<font face=helvetica color=white><center>\n";
            echo "This page uses frames, but it seems that your browser does not support this feature.\n";
            echo "To move on, click here:<br><a href=\"$url\">$domain</a>\n";
            echo "</center></font>\n";
            echo "</body>\n";
            echo "</noframes>\n";
            echo "</frameset></html>\n";
        }
        else
        { 
            header( "Location: $url" );
        }
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 01:01 #18
<?php

$host = $_SERVER["HTTP_HOST"];

if( substr($host,0,4) == 'www.') {
  $host = substr($host,4);
}

list ($sub, $domain, $end) = explode('.', $host);

if($end== "" OR $sub == "www") {
header("Location: index2.php");
exit;
}
else {

if(strtolower($sub) == "bs") {
  $sub = "BlackScorpion";
}

if(is_dir($sub)) {
  header("Location: http://www.$domain.$end/$sub/");
  exit;
}
else {
  header("Location: index2.php");
  exit;
}
}

?>

Virker bragende.

hvordan kan det være at jeg ikke behøver { og } i din if løkke??
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 01:03 #19
tjaaaa... fortrækker at lave det selv, så bruger jeg ikke så meget tid på at rette til. *GGG*

og så ville jeg nu bruge

echo<<<EOD
her kommer mit frameset. *G*
EOD;
Avatar billede dennismp Nybegynder
26. juni 2004 - 01:06 #20
hvis du kun har een linje, så er {}'er ikke nødvendigt i if().. Hvis der er flere, så skal man.

if(true)
  return true;
else
  return false;

fx .. Men nogle laver {} konsekvent. Smag og behag :)

Jeg vil nok også bruge heredoc syntax hvis jeg skulle lave det idag (eller bedre, en template ) - men koden er 4 år gammel og er noget af det første php kode jeg har lavet :-).. Tænk at det site virker endnu :)
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 01:08 #21
template... tjaaa... måske, men fortrækker det i en fil, osv. ;)
Avatar billede dennismp Nybegynder
26. juni 2004 - 01:13 #22
Tja - det vil nok være overkill i dette tilfælde da html'en jo ikke "ses" (ikke indeholder noget design der skal rettes til hvis man skifter stil).

Men ellers har jeg ikke noget. Det eneste forskel der er på mit og dit script er at jeg har en database med oplysninger, som så også holder styr på antal hits (og seneste hit, for at se om de bliver brugt).
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 01:22 #23
okey smider lige koden, syntes den er begyndt at vokse ret hurtigt. *GGG*
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 01:22 #24
<?php

$host = $_SERVER["HTTP_HOST"];

if( substr($host,0,4) == 'www.') {
  $host = substr($host,4);
}

list ($sub, $domain, $end) = explode('.', $host);

if($end== "" OR $sub == "www") {
header("Location: index2.php");
exit;
}
else {

if(strtolower($sub) == "bs") {
  $sub = "BlackScorpion";
}

if(is_dir($sub)) {

if($HTTP_ACCEPT_LANGUAGE == "da") {
$frame_error_msg = "Dette site, bruger frames, og din browser understøtter dem ikke.";
$frame_error_msg .= "For at fortsætte, bedes du klikke på dette link: [ <a href=\"http://www.$domain.$end/$sub\">http://www.$domain.$end/$sub</a><br>\n";
}
else {
$frame_error_msg = "This page uses frames, but it seems that your browser does not support this feature<br>\n";
$frame_error_msg .= "To continue, please click here: [ <a href=\"http://www.$domain.$end/$sub\">http://www.$domain.$end/$sub</a><br>\n";
}

echo<<<EOD
<html>
<head>
  <title>
  www.$domain.$end - $sub
  </title>
</head>

<frameset rows="*" border="0">
  <frame name="main_index" src="http://www.$domain.$end/$sub" noresize>
</frameset>

<body bgcolor="#FFFFFF" text="#000000">
  <font face="Arial" style="font-size: 16px">
  <center>
    $frame_error_msg
  </center>
  </font>
</body>
</html>   
EOD;

}
else {
  header("Location: index2.php");
  exit;
}
}

?>
Avatar billede dennismp Nybegynder
26. juni 2004 - 01:29 #25
$HTTP_ACCEPT_LANGUAGE .. jeg mener at hvis du vælger to sprog, så får du dem begge i stringen. Du skal nok lige teste det lidt mere :)

Min HTTP_ACCEPT_LANGUAGE  er da;q=1.0,en;q=0.9

så du skal nok splitte på komma og derefter evt fjerne ";q=.." hvis de er der (de behøver nemlig ikke at være der så du møder nok også "da,en")
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 01:30 #26
splitte på komma?? den tester bare sproget på IExplorer.. hvis den er dansk, skriver den det på dansk, ellers skriver den det på engelsk. that's all. ;)
Avatar billede dennismp Nybegynder
26. juni 2004 - 01:32 #27
Hvad hvis du vælger både dansk og engelsk i din exploderer.. så vil du ikke se den danske selvom den har højest prioritet :)
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 01:34 #28
okey det har jeg ikke liiige spekuleret på, men fuck det, hvad er chancen for at folk sidder på så gammel en browser. *G*
Avatar billede dennismp Nybegynder
26. juni 2004 - 01:36 #29
Min opdateret IE har da fået at vide at jeg forstår det ene og det andet.. Men ok - jeg tror det er de færreste der sætter det op overhovedet (desværre). Men ellers har jeg vist ikke mere input til dit lille script :)
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 01:46 #30
ja, men det jeg mente var at hvor stor chancen var for at en bruger en så gammel browser at den ikke understøtter frames. *G*
Avatar billede dennismp Nybegynder
26. juni 2004 - 01:49 #31
ah ja. self :-).
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 01:55 #32
hehe, men kom lige med et svar. ;) og så har jeg lige et sidste spørgsmål. ;)
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 01:56 #33
ved du hvordan at man kan opdatere et frameset på en gang? f.eks. på en chat,

chat_main
------------
chat_panel.

så hvis man bliver smidt ud, at den så rykker over på en anden side?? sådan at man ikke kan se hverken chat_main eller chat_panel?
Avatar billede dennismp Nybegynder
26. juni 2004 - 02:03 #34
Den kan jeg ikke klare - jeg har folk til html :)
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 02:05 #35
okey, gider du bede dem, om at kigge fordi mit spørgsmål i php sektionen i morgen??
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 02:05 #36
og så syntes jeg lige at din venlighed og hjælpsomhed har fortjent 70point mere. ;)

Tak for hjælpen Dennis. ;)
Avatar billede dennismp Nybegynder
26. juni 2004 - 02:21 #37
Smid en kommentar - hvis jeg ikke får svaret imorgen (jeg har det med at glemme hvilken spørgsmål der er aktiv).
Avatar billede dennismp Nybegynder
26. juni 2004 - 02:22 #38
mmm det er vel ikke bare target=_blank ?
Avatar billede dennismp Nybegynder
26. juni 2004 - 02:23 #39
eller _top
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 12:48 #40
jo men skal bruge det i forbindelse med header("Location: ..."); da det er php, der skal sende brugeren videre.
Avatar billede dennismp Nybegynder
26. juni 2004 - 13:46 #41
http://www.iboost.com/build/programming/html/974.htm#stop-framing

Ser ud til at du måske Kan bruge header("Window-Target: _top") - men det er ikke en del af http-standarden (så vidt jeg kan se). Så det kan være at den bedste måde er meta-refresh.
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 13:50 #42
okey er også lidt inde på det, men har smidt et spørgsmål i java-script sektionen, om man kan TVINGE en popup til at lukke, for så kan jeg bare lave det i en popup. ;)
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 13:53 #43
hmmm kan være at jeg kan bruge

<SCRIPT TYPE="text/javascript">



<!--



function breakOut() {



    if (self != top)



        window.open("my URL","_top","");



}



// -->



</SCRIPT>



</HEAD>



<BODY onLoad="breakOut()">

uden så at skulle bruge en popup.

det tror jeg liiiige at jeg vil lege lidt med. ;)
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 14:00 #44
forresten dennis, har du msn eller icq eller noget?
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 14:06 #45
uhhh det ser ud til at virke, så kan jeg jo sådan set bare gøre det sådan, at hvis en bruger bliver smidt ud, så tagger den det i en db, og så sender den brugeren videre.

Meta tags.

Hvis jeg skal have den til IKKE at gemme det i cache'en...

Er det så ikke noget med pragma-no eller noget i den stil?
Avatar billede dennismp Nybegynder
26. juni 2004 - 14:16 #46
Prøv:
<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

// HTTP/1.0
header("Pragma: no-cache");
?>
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 14:17 #47
ahhh det er rigtigt.

Syntes nok at jeg mente at kunne huske at have set det et sted, kunne bare ikke huske hvor. *GGGG*

Hold kæft, du burde snart have 1000 point for det her. ;))
Avatar billede dennismp Nybegynder
26. juni 2004 - 14:27 #48
Det går nok :)
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 14:29 #49
men har du icq eller msn?
Avatar billede dennismp Nybegynder
26. juni 2004 - 14:49 #50
Jo - men jeg foretrækker emails (er ikke den store im-chatter) eller irc.
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 14:49 #51
kan jeg nemt klare, bare sådan at man har en direkte forbindelse til en som kan PHP, da jeg skal til at lave en chat, og den SKAL virke, og ikke bare til hjemmeside brug med 2 brugere af gangen. *G*
Avatar billede dennismp Nybegynder
26. juni 2004 - 15:00 #52
dennis@moellegaard.dk - eller [dmp] på freenode i kanalen #php.dk
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 15:07 #53
got it. hvor tit tjekker du den?
Avatar billede dennismp Nybegynder
26. juni 2004 - 15:09 #54
tit.. hver 5. minut eller noget i den dur :-)
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 15:10 #55
nice. er der mulighed for at jeg kan få dig til at hjælpe mig med at vudere koden??
så jeg ved at den er nogenlunde optimal?
Avatar billede dennismp Nybegynder
26. juni 2004 - 15:20 #56
Jow, i det omfang jeg har tid til det.
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 15:21 #57
Selvfølgelig. ;) Det vil blive det samme her. Rom blev jo ikke bygge på en dag. men damn.. den blev sQ drukket på 2 timer. *GH*
Avatar billede dennismp Nybegynder
26. juni 2004 - 15:23 #58
haha :)
Avatar billede blackscorpion Nybegynder
26. juni 2004 - 15:29 #59
men dennis, jeg smider dig nok en mail her i løbet af kort tid, har lige brug for en mening. ;)

logger af eksperten nu.
snakkes. ;)
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