Gå til innhold

kakkle

Medlemmer
  • Innlegg

    731
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av kakkle

  1. Okei... Du må gi rettighet til å opprette en fil i den katalogen som scriptet ligger i .

     

    Ser at ikke bruker Windows server, som det tidligere er antydet her i posten.

    Hvilken tilgang har du til den serveren ? Kun Frontpage ?

     

    Prøv dette istedet:

    <?php
    mkdir("dyrenavn", 0777);
    for($i=0;$i<5;$i++) {
    $navn="nytt navn";
    $f=fopen("dyrenavn/dyrenavn.txt","a");
    fwrite($f,$navn);
    fclose($f);
    }
    ?>
    

    Grunnen til at det kommer så mange feil, er for at det kjøres en loop, så alle feil kommer 5 ganger, hvis du skjønner.

  2. Feilen er helt klart if / ifelse saken. I prinsippet, vil du aldri komme lengre enn "kake" saken. Hvis det er satt en cookie, så skriver den at du allerede har sendt en idag, og hopper over alle ifelse/else. HVis ikke det er satt cookie, så setter den cookie, og hopper over alle de andre elseif / else.

     

    Men denne kan kanskje funke litt bedre ?:

     

     

    if ( !eregi("[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,4}", $epost) ) {
        echo "<h3>Søknaden kunne ikke sendes. <br>     venligst prøv igjen.</h3><br>      Du har skrevet inn en ugyldig alder e-postadresse:<b> " . $epost .   "</b>";
        die();
    }
    
    
    if ( !is_numeric($alder) ) {
        echo "<h3>Søknaden kunne ikke sendes. <br>
        venligst prøv igjen.</h3><br>
        Du har skrevet inn enn ugyldig alder:<b> " . $alder . "</b>";
        die();
    }
    if ( !isset($_COOKIE['soknad_crew']) ) {
        setcookie("soknad_crew", $ip, time()+3600*24);
    }
    else {
        echo "Du har allerde sendt en søknad disse 24 timene!";
        die();
    }
    if ( $kode !== $kode_input ) {
        echo "Du har skrevet inn feil antispam kode,<br> gå tilbake og prøv igjen.";
        die();
    }
    //if (eregi("[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,4}", $epost) && is_numeric($alder) && isset($_COOKIE['soknad_crew']) && kode == $kode_input) {
       mail($til, $subjekt, $melding); //Melding til crew
       mail($epost, $svar_soker_subjekt, $svar_soker_melding); //Melding til      søker
       echo "<h3>Takk for din søknad.<br>
       Søknaden vil bli behandlet raskest mulig.</h3>";
    //} else {
    //    echo "<h3>Søknaden kunne ikke sendes. <br>    venligst prøv igjen.</h3><br>    Kontakt Webmaster for hjelp.";
    //}
    

    Du kan finne på noe annet enn die hvis du vil. F.eks sette en variabel true eller false, og hvis ikke den variabelen er satt, så sender du ikke mail.

     

     

     

    Slett ikke testet i det hele tatt... Tas med en klype salt, men håper du skjønner hvor problemet ditt ligger.

     

    /k

  3. Skjønner ikke helt hvorfor du ikke kan bruke den koden uten php5 ?

     

    Hverken fopen, fwrite, fclose krever php5 for å fungere...

     

    følgende kode:

    <?php
    for($i=0;$i<5;$i++) {
    $navn="nytt navn";
    $f=fopen("dyrenavn.txt","a");
    fwrite($f,$navn);
    fclose($f);
    }
    ?>
    

    Gir følgende fil:

    nytt navnnytt navnnytt navnnytt navnnytt navn

    Sikkert ikke helt det formatet du ønkser, men kan lett fikses ved å legge inn et skilletegn mellom hver gang det legges inn ett navn (F.eks linjeskift, "\")

     

    /k

  4. HEi

     

    Jeg anbefaler deg å ta en titt på de forskjellige live cdene som finnes. Så og si alle distroer har egen live cd:

    Mandriva One

    Ubuntu På denne siden finnes også linker til Kubuntu(kde), edubuntu og xubuntu(Xfce), som alle kan kjøres som live cd, og installeres fra live-cd

    OpenSuse (OBS: Live-DVD)

    Evt også Fedora, men er ikke sikker på hvordan det er med live versjon der.

    Jeg har kun erfaring med Suse(litt), Mandriva og Ubuntu.

     

    Til ditt bruk, ville jeg nok anbefalt Mandriva eller openSuse, som har et meget bra kontrollpanel.

     

    OpenOffice følger vel med de fleste av disse live cd'ene, så da kan du teste et typisk office dokument, om det fungerer som ventet.

     

    Om du ikke har vært borti uttrykket live-cd før, så er det linux som kjører direkte fra cd. Altså ingen installasjon på harddisken...

     

    EDIT: Når det gjedler IP SEC VPN, så vet jeg at ihvertfall Cisco og Nortel har klienter til linux

     

    /k

  5. (Er veldig usikker på om jeg vil være med på denne diskusjonen, da alle brenner for sin distro :)) But here goes:

     

    Jeg kjører selv Ubuntu. Har kjørt det en stund nå (siden november eller noe i fjor), for å gi det en sjanse og bli skikkelig kjent med det. Jeg skjønner egentlig ikke hvorfor den er anbefalt av de fleste som den beste nybegynner distroen.

     

    Synes apt-get pakkesystemet er veldig oppskrytt, men det er smak og behag, og alt etter hva man blir vant med.

    Selv synes jeg at urpmi (Mandrake / Mandriva) er det beste pakkesystemet.

     

    Før jeg installerte Ubunutu, kjørte jeg Mandrake / Mandriva i et par år, og syntes det var helt genialt enkelt. Prøvde noen andre "nybegynner distroer" før jeg slo meg ned med Mandrake (som det het da).

     

    Så begynte all skryten av ubuntu å komme, og jeg måtte jo nesten teste det ut. Synes det er helt greit, men ikke noe mer. Funker fint for meg, men skal jeg anbefale en nybegynner distro, så blir det nok Mandriva...

     

    Men som sagt, så tror jeg nok dette har mye med smak og behag å gjøre, og sikkert noe med hvilken distro man har første gang man setter seg skikkelig inn i det.

     

    Er fornøyd med ubuntu, men synes den mangler litt for å kunne bli kalt den beste nybegynner distroen.

     

    /k

  6. Bruk denne fir å hente ut for angitt måned:

    SELECT SUM(hits) as totalhits FROM links WHERE MONTH(dato) = $month

    Forutsatt at datofeltet heter dato, hits feltet hits og tabellen links... og $month er mellom 1 og 12, kan f.eks hentes fra url.. (f.eks $_GET["month"])

     

    Du får da antall hits på den måneden vha f.eks. $row["totalhits"]

     

    EDIT: Skal du ha inneværende måned:

    SELECT SUM(hits) as totalhits FROM links WHERE MONTH(dato) = MONTH(NOW())

  7. Sjekk at gruppen nouser finnes... Jeg ville kanskje tro at det skal være nogroup...

    Sjekk i filen /etc/group

     

    EDIT: Og bytt i config til rett gruppe

     

    EDIT: Hmmm... ar du endret litt her nå ? Eller har jeg postet i feil post ? Mener det stod user nobody og group nobody før..

     

    Forresten så ser dette litt ulogisk ut:

    <Limit LOGIN>
    AllowUser eksamen
    DenyALL
    </Limit>
    

    Bytt rekkefølgen på Allow og Deny. Nå tillater du jo først en bruker, og etterpå nekter du alle, altså også den som du tillot over... Uten at jeg er sikker på det.. Men for meg høres det litt logisk ut...

  8. Du kan vel kanskje bruke denne:

    <?php
    $readfile = file($filnavn); //Legger hver linje som et element i et array
    $lines = count($readfile); //Antall "linjer" i filen. Egentlig bare antall elemeneter i arrayet.
    $line = 0; //Gjeldende linje
    while($line < $lines) {
      list($dato, $ip, $referer, $nettleser, $uri) = explode(",", $readfile[$line]);
      echo "dato: $dato<br>IP: $ip<br>referer: $referer<br>nettleser: $nettleser<br>uri: $uri<br>\n";
      $line++; //Viktig for å lese neste element i arrayet.
    }
    ?>
    

    Bare et eksempel... Ikke testet om det fungerer...

    Kan også løses vha foreach løkke...

  9. Evt, så kan du bruke

    $sql .= "CREATE...
    

    Legg merke til punktunet før likhetstegnet.

     

    Husk også på at du må ha ; etter hver sql kommando. F.eks slik:

    CREATE TABLE `tktcms_links` (
    `id` int(10) NOT NULL auto_increment,
    `url` varchar(255) NOT NULL default '',
    `name` varchar(255) NOT NULL default '',
    `description` varchar(255) NOT NULL default '',
    `added_by` int(10) NOT NULL default '0',
    `time` int(20) NOT NULL default '0',
    `category` int(10) NOT NULL default '0',
    PRIMARY KEY  (`id`)
    );

    Eller i php scriptet ditt:

    $sql .= "CREATE TABLE `tktcms_links` (
    `id` int(10) NOT NULL auto_increment,
    `url` varchar(255) NOT NULL default '',
    `name` varchar(255) NOT NULL default '',
    `description` varchar(255) NOT NULL default '',
    `added_by` int(10) NOT NULL default '0',
    `time` int(20) NOT NULL default '0',
    `category` int(10) NOT NULL default '0',
    PRIMARY KEY  (`id`)
    );";
    

    Husk også at første gang må du ikke bruke .=

  10. <?php
        if(isset($_GET["content"])) 
        {
              $content = $_GET["content"];
              if (@fopen("content/$content.php", "r")) {
                 include ("content/$content.php");
              } else {
                 include("content/404.php");
              }
         }
         else {
              include("content/hoved.php");
         }?>
    

     

    Sånn ca...

     

    EDIT: Virker som problemet du hadde, var at du hadde glemt å avslutte php delen med ?> tagen... ?

  11. Hei

     

    Feilen ligger nok her:

    $page = $_GET['page'];
    

     

    Bytt ut dette med:

    $page = $_GET['content'];
    

    Så skal det fungere bedre, tenker jeg...

     

    Alle linkene dine ser slik ut:

    Altså, du bruker content, og ikke page... Derfor må du også endre dette når du henter variabelen

     

    EDIT: Men det virker jo litt rart, hvis akkurat dette scriptet fungerte før oppgraderingen. Det skulle vel ikke gjort det ?

  12. Du får altså ingen feimeldinger ?

     

    bytt ut

    header ("copy($source_file, $dest_file);");
    

    med

    copy($source_file, $dest_file);
    

    og se om det hjelper. Skjønte egentlig ikke hvorfor du har lagt det inn i en header. :dontgetit:

    Hvis ikke, så sleng inn et par echo'er her og der, for å se hvor langt den kommer i if setningene... (Men da vil jo seff ikke header() opplegget funke)

     

    /K

×
×
  • Opprett ny...