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.
Annonceindlæg fra Salesforce
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
dennismp -> nej for det giver kun siden der efterspørges, dvs. at den viser index.php eller hvad siden du nu ryger ind på...
det er ved at være sent :) $_SERVER["HTTP_HOST"]
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).
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*
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. } ??
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 :-)
26. juni 2004 - 00:49
#10
is_dir er nok bedre end file_exists når jeg tænker mig om.. Så brug den.
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;
}
}
?>
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* ;)
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?
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?
26. juni 2004 - 00:55
#15
if($sub == "bs" OR $sub == "BS") { er nu blevet til if(strtolower($sub) == "bs") {
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);
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" ); }
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??
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;
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 :)
26. juni 2004 - 01:08
#21
template... tjaaa... måske, men fortrækker det i en fil, osv. ;)
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).
26. juni 2004 - 01:22
#23
okey smider lige koden, syntes den er begyndt at vokse ret hurtigt. *GGG*
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;
}
}
?>
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")
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. ;)
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 :)
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*
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 :)
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*
26. juni 2004 - 01:49
#31
ah ja. self :-).
26. juni 2004 - 01:55
#32
hehe, men kom lige med et svar. ;) og så har jeg lige et sidste spørgsmål. ;)
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?
26. juni 2004 - 02:03
#34
Den kan jeg ikke klare - jeg har folk til html :)
26. juni 2004 - 02:05
#35
okey, gider du bede dem, om at kigge fordi mit spørgsmål i php sektionen i morgen??
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. ;)
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).
26. juni 2004 - 02:22
#38
mmm det er vel ikke bare target=_blank ?
26. juni 2004 - 02:23
#39
eller _top
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.
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. ;)
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. ;)
26. juni 2004 - 14:00
#44
forresten dennis, har du msn eller icq eller noget?
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?
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"); ?>
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. ;))
26. juni 2004 - 14:27
#48
Det går nok :)
26. juni 2004 - 14:29
#49
men har du icq eller msn?
26. juni 2004 - 14:49
#50
Jo - men jeg foretrækker emails (er ikke den store im-chatter) eller irc.
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*
26. juni 2004 - 15:00
#52
dennis@moellegaard.dk - eller [dmp] på freenode i kanalen #php.dk
26. juni 2004 - 15:07
#53
got it. hvor tit tjekker du den?
26. juni 2004 - 15:09
#54
tit.. hver 5. minut eller noget i den dur :-)
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?
26. juni 2004 - 15:20
#56
Jow, i det omfang jeg har tid til det.
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*
26. juni 2004 - 15:23
#58
haha :)
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. ;)
Vi tilbyder markedets bedste kurser inden for webudvikling