Avatar billede offline Nybegynder
09. august 2001 - 02:24 Der er 31 kommentarer og
3 løsninger

\"Down for Maintenance\" funktion

Jeg ønsker mig et script der udfra radioknapper på en admin side kan smække en ny index side på et site, således at man ikke er nødt til at gøre det manuelt med FTP.
Jeg er ikke den stiveste PHP mand, men mon ikke man kan have en side liggende som omdøbes til index.php efter at den rigtige index side er omdøbt til noget andet, og så vende processen igen når man er klar?

(Også velegnet hvis kunden ikke betaler...suk!)
Avatar billede tdaugaard Nybegynder
09. august 2001 - 02:27 #1
Du kan bruge ftp_*() funktionerne i PHP til at connecte til en FTP server og up-/downloade filer osv.
Avatar billede offline Nybegynder
09. august 2001 - 02:30 #2
Nogle webhoteller (f.eks. Azero.dk) har ikke compileret FTP funktionen med i \"deres\" PHP, eller man har i hvert tilfælde ikke lov til at bruge den (har spurgt!)
Desuden var det jo ikke en færdig løsning :-)
Avatar billede tdaugaard Nybegynder
09. august 2001 - 02:33 #3
Well ... i så fald kan du jo af gode grunde ikke bruge dem :-(
Azero stinker forøvrigt mht. PHP .. har en lille \"dialog\" kørende med dem vedrørende det faktum at de har slået register_globals og magic_quotes_gpc fra ... *grrr*

Var faktisk i gang med et eksempel på et script med ftp_*()
Avatar billede alvion Nybegynder
09. august 2001 - 02:44 #4
tdaugaard -> At de har slået de to facetter fra er IMHO en god ting.

\"register_globals = on\" får konverteret en (ofte unødig) masse get-, post-, server- og environment arrays om til globale variable. Med mindre du bruger rigtig mange af dem, er det ren spildtid med den konvertering. Så er det bedre at du selv manuelt konverterer dem du bruger.

\"magic_quotes_gpc\"... Tja, jeg kan godt lide selv at have styr på mine data, og det har jeg ikke, hvis PHP piller ved dem forinden, ved f.eks. at escape \" \' og hvad den ellers kan finde på.
Avatar billede tdaugaard Nybegynder
09. august 2001 - 02:46 #5
alvion:> har beklaget mig kraftigt over det til dem .. at du får en masse \"crap\" kan du være ligeglad med .. lad være med at bruge dem så .. det er deres server det \"går ud over\"
Avatar billede myplacedk Nybegynder
09. august 2001 - 08:27 #6
Du får da ikke meget ud af kun at ændre forsiden, hvad med alle undersiderne?

Du skulle vel ikke have en fælles header, som bliver included på alle siderne? I så fald er der en bedre, og måske nemmere, løsning. Hvis ikke har jeg også andre tricks i ærmet. ;-)
Avatar billede lasseriis Nybegynder
09. august 2001 - 09:01 #7
Som myplacedk siger, er det nok bedst at lægge alle sine sider ned.

Lav en .htm eller .php fil med dit \"nede pga. vedligeholdelse i\" og kald den eventuelt \"nede.htm\".

lav så dette script:
if(file_exists(lukned.inc))
header(\"Location: nede.htm\");

dette script skal så være i alle filerne, du kan manuelt putte det ind eller gemme det i en fil og bruge include() i toppen af alle sider. husk at headere skal sendes inden noget output!!!

dernæst laver du et adminscript, som er password beskyttet(og ikke indeholder det førnævnte script...). Denne side kan du så bruge til at oprette en fil der hedder \"lukned.inc\", den behøver ikke have noget indhold....

dertil kan du bruge fopen(\"lukned.inc\", w+); //tror jeg nok....
desuden skal du fra samme side kunne slette denne fil...brug delete(\"lukned.inc\");
mere kode til admin funktionen vil jeg ikke lave...ikke lige nu i hvert fald, men vil gerne hjælpe mere...
Avatar billede lasseriis Nybegynder
09. august 2001 - 09:05 #8
Glemte at nævne det(men du forstår det jo nok):
På denne måde tjekker alle dine scripts om \"lukned.inc\" eksisterer, gør den det, bliver brugeren sendt videre til \"nede.htm\", gør den ikke får de sendt scriptet....
Admin siden bruger du til at oprette og slette filen lukned.inc
Avatar billede myplacedk Nybegynder
09. august 2001 - 09:13 #9
lasseriis >> det er ikke noget i PHP der hedder delete(). Man bruger unlink() til at slette filer. :)
Avatar billede lasseriis Nybegynder
09. august 2001 - 14:32 #10
ups min fejl, det er en symbolsk funktion !!
http://php.net/manual/en/function.delete.php
Avatar billede offline Nybegynder
09. august 2001 - 16:40 #11
Er der ingen der gider lave det script jeg bad om, i stedet for at komme med forslag til ændringer og lave debatklub ud af det hele??
Avatar billede blackscorpion Nybegynder
09. august 2001 - 16:58 #12
Offline -> jeg kan godt se at du er lidt mut over at de bare laver en debat ud af det hele.

ang. lidt information på den side.

Bruger du MySQL???

- TheSpeaker.
Avatar billede alvion Nybegynder
09. august 2001 - 17:28 #13
Hmm så skidt da...


admin.php
----------------------
<?php

  // Liste over de sider, som kan kopieres ind
  // på \"index.php\" pladsen
  //
  // Tilføj selv dem du har brug for
  //
  $sideliste = array(
    \"side1.php\" => \"Under construction besked\",
    \"side2.php\" => \"Midlertidig ude af drift\",
    \"side3.php\" => \"Midlertidig ude af drift\"
  );


  // Her sker kopieringen
  $action = strtoupper($HTTP_GET_VARS[\"action\"]);
  if ($action == \"COPY\") {
    $page = $HTTP_GET_VARS[\"page\"];
    copy($page, \"index.php\");
  }
?>

Vælg hvilken fil, der skal kopieres til index.php:
<br><br>
<form method=get action=\"admin.php\">
<input type=hidden name=action value=\"copy\">
<select name=page size=1>

<?php
  reset($sideliste);
  while (list($key, $val) = each($sideliste))
    echo \"<option value=\'$key\'>$val</option>\\n\";
?>
</select>
<br><br>
<input type=submit value=\"Kopier\">
</form>
Avatar billede offline Nybegynder
09. august 2001 - 18:15 #14
Ja, jeg bruger MySQL.

Det jeg søger (som beskrevet) er kun at kunne smække en anden forside på midlertidigt - intet andet.  Derfor min idé med 2 radioknapper (Aktiv / Passiv)
Avatar billede alvion Nybegynder
09. august 2001 - 18:42 #15
I min løsning kan du lade en af siderne i listen være den, der normalt er på, og en anden side være den, der midlertidigt skal indsættes
Avatar billede offline Nybegynder
09. august 2001 - 20:38 #16
Unable to create \'index.php\': Permission denied in /usr/local/www/mitdomæne/www/admin.php on line 21

Det virke ikke rigtigt!
Avatar billede blackscorpion Nybegynder
09. august 2001 - 21:16 #17
du skal gøre det at du sætter en variable fx.

$status = \"online\";

og så tjekker du på din forside om $status er online eller offline.

det gør du med :
if($status == \"online\") {
show_normal_index();
}
else {
show_temp_index();
}

længere er den ikke, og hvis du så skriver noget andet end online, så bliver Down for Maintenance siden vist. :o)

- TheSpeaker.
Avatar billede blackscorpion Nybegynder
09. august 2001 - 21:18 #18
ellers så lav den om til :

if($status != \"online\") {
header(\"down_for_maintenance.php\");
exit;
}

Den kan du lave på alle siderne, og så hvis $status ER online, jamen så viser den bare indholdet der står nedenunder. :o)

Og du skal huske at du skal inkludere din setup fil hvori du har $status = \"online\";

- TheSpeaker.
Avatar billede blackscorpion Nybegynder
09. august 2001 - 21:21 #19
Grunden til at jeg skriver alle siderne, det er fordi at hvis en bruger finder på at hoppe ind forbi din forside til en anden side, så bliver down_for_maintenance.php jo ikke vist. det undgår du ved at tjekke $status variablen på alle dine sider. :)

- TheSpeaker.
Avatar billede offline Nybegynder
10. august 2001 - 00:12 #20
Til the_speaker:
Det er helt korrekt det du skriver, men det er stadigvæk ikke det jeg har bedt om!
Hvorfor kan folk ikke bare lave et script uden at opfinde den dybe-varme tallerken samtidig?

Den ene dag bitcher folk herinde over at der ikke er points/penge nok i spørgsmålet, og den anden dag udbygger de med glæde et meget simpelt script med WARP-drive!!!
Det giver ikke mening og er forvirrende for os ikke-programmører.
Avatar billede myplacedk Nybegynder
10. august 2001 - 07:31 #21
Hvis folk skal lave noget for dig, så kan du spørge under \"freelance\". Her der får man hjælp, ikke færdige løsninger.

Og dette er faktisk et debat-forum, det kunne være derfor der kommer en debat ud af det. Her snakker vi om tingene, og bliver klogere.

Men her et lidt inspiration (faktisk næsten en færdig løsning) til hvordan man kan gøre præcist som du siger du vil gøre:

//aktiv:
copy(\'aktiv.php\', \'index.php\');

//passiv:
copy(\'passiv.php\', \'index.php\');

Og så sker det i øvrigt ret tit, at hvis folk får præcis hvad de beder om, så får de noget ubrugeligt.
Avatar billede alvion Nybegynder
10. august 2001 - 11:01 #22
offline -> Hvis du nu satte dig ned et øjeblik og så på de scripts der er lavet (for eksempel mit) og afprøvede dem, så ville du opdage, at du faktisk har fået PRÆCIS hvad du gerne ville have.

Så let numsen og prøv tingene af. :-)
Avatar billede lasseriis Nybegynder
10. august 2001 - 12:57 #23
Ja, som det er blevet sagt er dette ikke stedet for færdige løsninger, jeg gider i hvert fald ikke sidde og lave scripts til alle mulige mennesker, vi har givet dig nogle forslag og hjælp ret langt hen ad vejen, så prøve det dog, se om du ikke kan få det til at virke.

Hvis det skal være så simpelt som du selv fremhæver det, kan du vel også selv finde ud af noget af det......
Men vi vil gerne hjælpe!
Avatar billede alvion Nybegynder
10. august 2001 - 15:21 #24
Jeg har faktisk undtagelsesvis testet mit script inden jeg smed det ind her.
Avatar billede blackscorpion Nybegynder
11. august 2001 - 02:05 #25
Hallo Folkens, han stillede et spørgsmål, så hvad med at vi holdt os til tingene istedet for at rakke ned på manden.

Det er da ikke fair.

Han kommer her ind for at få hjælp, og et færdigt script er også en hjælp, idet at man løser mandens problem, så hvorvidt den hører under freelance kan så diskuteres, men jeg mener nu at freelance er stedet hvis man vil have lavet en komplet site eller sådan noget, men det er jo ikke tilfældet her, så hvad med at man holdte sig til ekspert åden og hjalp manden med hans problem istedet for at blive sure over at han stiller nogle krav og spørgsmål til hans første spørgsmål og kommentere hvad i har skrevet, det er ikke jer der skal hjælpes med derimod Offline, så lad os holde os til det.

End Of Story.

- TheSpeaker.
Avatar billede blackscorpion Nybegynder
11. august 2001 - 02:06 #26
ånden skulle der stå.

- TheSpeaker.
Avatar billede myplacedk Nybegynder
11. august 2001 - 08:03 #27
the speaker >> Problemet er dels, som du selv siger, at når det er færdige løsningen man vil have, hører det mere hjemme under freelance.
Derudover vil han vil ændre forsiden, med det formål at lukke for HELE sitet. Det ligner helt klart enten en tanketorsk, eller uvidenhed. Så er det da ganske naturligt at vi hjælper med det også.
For hulen jeg ville få problemer, hvis jeg bare gav mine kunder hvad de bad om. Man skal absolut ikke gøre som de siger, man skal gøre som de mener. Det er bare én af de mange udfordringer jeg sidder med i min hverdag.
\"Hvorfor kan folk ikke bare lave et script uden at\"... Fordi dette er hjælp til at lære PHP, ikke freelance arbejde. That\'s it.
\"Den ene dag bitcher folk herinde over at der ikke er points/penge nok i spørgsmålet, og den anden dag udbygger de med glæde et meget simpelt script med WARP-drive!!!\" (WARP-drive?) Nogle dage \"bitcher\" folk skam også over at der er for mange point, og nogle gange vil folk slet ikke HAVE nogen point. Det er fordi folk er forskellige. Stil en flok mennesker overfor nøjagtigt den samme situation, og de vil alle reagere på hver sin måde. Det sjove ved det er, at hvis man benytter systemet som det er lavet til[1], så er alle faktisk glade. Men det er ikke nemt at se om nogen gør det forkert fordi de er nye, eller fordi de er ligeglade. Og når man 117 gange har skrevet en masse hjælp (ang. fx. eksperten) til en der skam godt ved det, men er ligeglad, så mister man egentlig lysten.

[1] Her mener jeg at man giver spørgsmålene det antal point de er værd (ifølge ekspertens skala), og man stiller spørgsmålene under det relevante emne. Jeg har endnu ikke set nogen \"bitche\", hvis dette er overholdt. Jo, hvis folk er utilfredse med de svar de får på et dårligt spørgsmål. (Fx. dårligt formuleret så det er uklart hvad situationen er.)
Avatar billede alvion Nybegynder
13. august 2001 - 11:32 #28
the_speaker -> Her er også et tydeligt eksempel på en person, der tilsyneladende er så doven at han ikke engang gider at copy/paste et script herfra siden, gemme i en fil, rette 2-3 linier og prøve det af.

Den slags mennesker KAN man ikke hjælpe, og når man har brugt en masse kræfter på dem inden situationen går op for en, ja så ryger der uværgeligt brok ud en gang imellem.
Avatar billede blackscorpion Nybegynder
13. august 2001 - 12:06 #29
Hej MyPlace.dk og Alvion.

Ja jeg vil gerne give jer ret, men manden har et problem og vi er her for at hjælpe, hvad enten det er en færdig løsning eller ej.

For som jeg skrev tidligere, så mener jeg at en færdig løsning er stedet hvis man vil have lavet fx. en chat... en færdig side... en indkøbsvogn osv.

FX. hvis jeg var ved at lave en indkøbsvogn, og der er var jeg simplethen ikke kunne finde ud af, ville jeg da sætte stor pris på at folk lavede et færdigt script som klarer mit problem, idet jeg så kan kigge i koden og lære til næstegang og selv komme videre med det egentligt script.

- TheSpeaker.
Avatar billede alvion Nybegynder
13. august 2001 - 12:18 #30
TheSpeaker -> Hvis du kigger godt efter, så vil du se, at jeg faktisk har serveret en færdig, *testet* og fungerende løsning. Eneste forskel fra den oprindelige formulering er, at jeg bruger en <select> box istedet for radio-buttons.

Når offline så lukker det ud som han gør, må jeg konkludere at han ikke har gidet at afprøve det jeg har lavet til ham.
Avatar billede blackscorpion Nybegynder
13. august 2001 - 12:20 #31
det gir jeg dig ret igen, men nok om det, tilbage til mandens problem, hvis han ikke gider lette røven og afprøve det, så må han jo blive fri, så kan han bare lære det. :)

- TheSpeaker.
Avatar billede offline Nybegynder
15. august 2001 - 02:24 #32
Jeg gider slet ikke svarer på alle kommentarene.

Det jeg ønskede var en simpel mulighed for at lægge indgangen (forsiden/startsiden/indexsiden)til et site ned midlertidigt uden at skulle åbne en FTP klient og omdøbe filer manuelt.
Jeg var godt klar over at folk kunne \"gå udenom\", men dette var OK. (Har I tænkt på om det website jeg skulle bruge scriptet på måske kun havde een side ??)

Det er lidt samme ting når folk bruger et javascript til at PRØVE at forhindre andre i at se kildekoden på et site.  Hvis man ved lidt om browserfunktionalitet så kan man sagtens bypasse dette script (virker vist heller ikke i NS?)
og sådan er der så meget.

Det var ikke af uvidenhed eller dovenskab at jeg gav opgaven (Lille opgave - relativt mange points!)  Måske havde jeg bare travlt med noget andet?

Det udviklede sig hurtigt til et debatforum hvor folk lukkede lort ud, så derfor sprang jeg fra.
Måske vil det være en idé at have en funktion på Eksperten der hed \"Chat om dette spørgsmål\" hvor et klik på en knap åbnede et chatforum kun for det respektive spørgsmål.
Jeg vil fremover indskærpe i mine spørgsmål at jeg vil have lige det jeg bede om!

Ang. kategorien freelance, så var det min opfattelse at man brugte denne hvis man ville aflønne med rigtige menneske penge?
Avatar billede alvion Nybegynder
15. august 2001 - 03:51 #33
offline -> Kunne du bruge mit script? Hvis ikke, hvorfor ikke?

Det er meget fint at du vil have tingene på din måde, men så må du også selv arbejde noget for det. F.eks. ved at give tilbagemeldinger på vores scripts.
Avatar billede alvion Nybegynder
15. august 2001 - 03:54 #34
I øvrigt hvis du ikke føler at du er blevet hjulpet, er du ikke forpligtet til at give os alle dine point. Hvis du vil have nogle af dem tilbage, så sig til. Personligt gør jeg ikke det her for point\'ene
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