Gå til innhold

kakkle

Medlemmer
  • Innlegg

    731
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av kakkle

  1. Det du vil bruke er såkalt "flatfil". Denne bygger du opp som du selv vil.

    Eksempel på en flatfil:

    Navn|Alder|Adresse|Email
    Arne|45|liatoppen|[email protected]
    Jonas|34|Bordveien|[email protected]
    
    

    | er da en såkal delimiter (skilletegn). Her kan du forsåvidt bruke hva som helst (F.eks "|#-|#"). Dette brukes for å skille de forskjellige feltene slik at du vet hva som er hva. Pass på at dersom noen skriver inn skilletegnet i et tekstfelt, vil dette ødelegge hele flatfilen. Det kan derfor være greit å bruke et skilletegn som sjelden vil forekomme i tekster, eller å bytte ut skilletegnet som blir skrevet inn med et annet tegn.

    Eksempel på å skrive til denne filen:

    $datafil = "Personer.txt";
    $navn = "Per";
    $alder = "20";
    $adresse = "Persveien";
    $email = "nei";
    $linje "$navn|$alder|$adresse|$email\n"; // Dette er linjen som skal settes inn i filen. "\n" er for linjeskift
    $writefile = fopen($datafil, "a") // a betyr append, og legger til på slutten av filen. Dersom filen ikke eksisterer, blir den opprettet
    fwrite("$linje", $writefile);
    fclose($writefile);
    

    Dette vil føre til at datafilen nå ser slik ut:

    Navn|Alder|Adresse|Email
    Arne|45|liatoppen|[email protected]
    Jonas|34|Bordveien|[email protected]
    Per|20|Persveien|nei
    
    

    For å hente ut data, kan bruke følgende:

    $datafil = "personer.txt";
    if(file_exists($datafil)) {
      $readfile = file($datafil); // Legger hver linje inn i et array, $readfile
      foreach ($readfile as $data) { //Looper gjennom linje for linje
          list($navn, $alder, $adresse, $epost) = explode("|", $data); //Merk skilletegnet
          echo "Navn: $navn<br>";
          echo "Alder: $alder<br>";
          //osv
       }
    }
    

    Denne skal da forhåpentligvis skrive ut:

    Navn: Navn
    Alder: Alder
    Navn:Arne
    Alder:45
    Navn:Jonas
    Alder:34
    Navn:Per
    Alder:20
    

    for mer informasjon og flere eksempler, se:

    http://no.php.net/filesystem

    Her finner du også linker videre til de andre fil funksjonene som er brukt.

    For å se mer på explode;

    http://no.php.net/explode

     

    EDIT: Hvis du lurer på hvorfor den skriver ut Navn:Navn og Alder:Alder, så er det fordi dette står øverst i filen. Den linjen kan du evt fjerne, eller lese den inn i et array først, slik at du har feltnavnene.

  2. Det er fordi alle verdier fra felt er av datatype string. I javascript er det jo slik at + brukes for å legge noe til en streng. F.eks dersom du har "1"+1 blir dette 11, akkurat som at "bilde"+1 blir bilde1.

    Her er to løsninger på problemet ditt:

    function feltPluss(felt) {
        felt.value = parseInt(felt.value) + 1;
    }
    

    parseInt gjør en string (streng) om til int (heltall)

    Eller løsningen som jeg ville valgt:

    function feltPluss(felt) {
        felt.value++;
    }
    

    Mindre kode ;)

    Også ville jeg nok også brukt:

      function feltMinus(felt) {
        felt.value--;
      }
    

     

     

    EDIT: /code tag

    /k

  3. Sjekket du forresten linken som lemen ga til en tråd i dette forumet. ?

    Det er heller ikke så dumt og lese/søke litt rundt her på forumet smile.gif

    https://www.diskusjon.no/index.php?showtopic=486257

    Det er en tråd som Zamo har opprettet, hvor han tester forskjellige cms og gir dem karakterer etter emne.

     

    Du får kanskje noen ideer derfra ?

     

    Selv har jeg ingen erfaringer med noen cms.

     

    EDIT:

    Trodde faktisk at noen her inne faktsik hadde prøvd slike verktøy, og kunne dele sine erfaringer med andre. Men tydligvis så er det ikke så mange som har erfaring med slikt her.

    Som du ser av linken, så er det noen som har prøvd slike verktøy, og delt sine erfaringer med andre på en veldig god måte. ;) Synes det var genialt av Lemen å linke til denne tråden, som jeg tror vil hjelpe deg mye.

  4. stianiquines: Får ikke wysiwyg editor av det scriptet.

    Det er vel helst det som er problemet.

    Har ingen erfaringer med wysiwyg online editorer, men

    Sjekk disse:

    Solmetra:

    Google

    Finner mye på hotscripts også:

    Hotscripts search for WYSIWYG Editor i php

     

     

    Også lager du en login, og bruker et av disse scriptene til å editere filer.

     

    EDIT: SOLMETRA vriket bra

  5. Gir deg ikke koden direkte, men skriver litt pseudokode på hvordan det skal bli... Du trenger egentlig bare legge inn if / else.

     

    Pseudokode:

    $mappe = $_POST["mappe"];
    Eksister $mappe (Bruk file_exists($mappe))?
    JA: ($mappe eksisterer)
       Er $mappe en mappe (dir) ? (Bruk is_dir($mappe)) 
       JA: ($mappe er en mappe)
           mappen finnes. Alt ok
       NEI: ($mappe er ikke en mappe)
           $mappe er en fil, opprett $mappe med mkdir($mappe)
    NEI: ($mappe eksister ikke)
       $mappe finnes ikke, opprett mappen med mkdir($mappe)
    

     

    Klarer du å gjøre dette om til if / else setninger, så er du på god vei ;)

     

    Det forutstter at du har skrivetilgang til den mappen hvor du skal opprette mappen. Det vil si at den mappen som upload.php ligger i må ha skrivetilgang for alle (0777) , eller for den brukeren som kjører php scriptet

     

    EDIT: Dette kan legges inn etter at du har sjekket at filen er gyldig (med tanke på filendelse, størrelse osv. Slik at du ikke oppretter en mappe unødvendig. Den første linjen ($mappe = $_POST['mappe']) legger du inn istedetfor $mappe = $_GET['mappe']

  6. du bruker $_GET['mappe'] for å få verdien til mappe. Siden du sender formdataen med post metoden, må du bruke $_POST['mappe']. ($_GET bruker for å hente verdier fra url)

    Du må også sørge for mappen eksisterer, og at du har skriverettigheter til den. (chmod 0777).

     

    En annen ting du bør gjøre, for at det hele skal bli litt mer brukervennlig, er å la filendelsen være uavhengig av store / små bokstaver. Slik det er nå, så får du ikke lastet opp bilder med endelsene JPG, GIF, PNG.

  7. Ser at funksjonen quote_smart legger til ' på starten og slutten av strengen.

     

    Prøv en av følgende:

    1. fjern alle ' fra spørringen :

    $query = "INSERT INTO news (lanid, title, viewmode, intro, newstext, img, dateposted) VALUES ($lanid, $title, $viewmode, $intro, $newstext, $img, $dateposted)";
    

    Men det kan kanskje bli lkitt feil med tanke på den siste ($dateposted) som er et tall, og ikke får lagt til ' før og etter.

     

    2. Endre til dette i funksjonen:

    $value = mysql_real_escape_string($value);
    

     

    EDIT: Ikke gjør begge tingene, da vil det bli feil, fordi da blir det ingen ' i det hele tatt. Jeg ville kanskje gått fo alternativ 2

  8. Jeg kommer ikke inn med passordet mitt, eller, det står ialfall:

    Notice: Undefined index: passord in C:\Inetpub\wwwroot\index.php on line 41

    Feil passord

     

    5183597[/snapback]

    Får du den meldingen etter at du har trykket på login knappen ? Den kommer nok dersom du prøver å gå inn på siden uten å ha sendt noe data via get.

    Etter at du har trykket på Logg inn knappen, ser du da noe ala dette :

    ?passord=[det du skrev]
    

    på slutten av urlen i adresselinjen ? ([det du skrev] er det du skrev inn som passord)

     

    Prøv evt å legge selve passord sjekken i en ny fil. Flytt da dette:

    <?php
    $passord = "8artj4";
    if ( $_GET['passord'] == $passord) {
    echo "<h1> Riktig passord </h1>";
    echo "HER er den superhemmelige dritten";
    }
    else {
    echo "Feil passord";
    }
    ?>
    

    i en fil som du kan kalle pwdsjekk.php. Da må du endre action i form tagen til det samme (pwdsjekk.php).

  9. Var slett ikke værst det der kakkle :)

    Men du burde nok ha jobbet litt med sikkerheten på highscore. Det var ikke fryktelig vanskelig å pynte på resultatet når alle variabler sendes via GET og ikke valideres på noen måte ;)

    5176518[/snapback]

    Hehe... Som sagt så er det en god stund siden jeg lagde dette... Er ikke akkurat det beste highscore scriptet, nei, men synes faktisk at selve javascriptet er greit nok. Gadd aldri å fikse på det med highscoren. Glemte nesten av hele scriptet et par uker etter at jeg var ferdig med det :)

     

    Fikk faktisk mail fra en kar som hadde jukset på den måten en gang. Han spurte om jeg kunne slette den, siden han ville oppnå poeng på den riktige måten :)

     

    Skulle jeg laget noe nytt idag, så ville jeg nok ha forbedret highscore delen, og kanskje brukt noe annet enn javascript. Men ville nok ikke brukt serverside språk.

  10. Neste prosjekt blir et yatzi spill. Først lages det i VB.NET (som et frittstående program) og så kommer en PHP utgave (web applikasjon).

    5175070[/snapback]

     

    Hmm... Jeg lagde yatzy i javascript (Javatzy :p ) og asp (For highscore) for noen år siden. Så på det nå, og det er endel bugs.

     

    Men selve yatzyen fungerer helt som det skal. Med "Score-preview" og Undo-funksjon

     

    Også er det et reklame-banner helt øverst, som ikke var der da jeg lagde for noen år siden. Highscore greia er basert på at de som spiller er ærlige, og ikke jukser :) Ikke så veldig vanskelig å finne ut hvordan man kan jukse med highscoren.

     

    Hvis du vil, så kan du jo se på det:

    Javatzy

     

    OBS: Alt er laget i javascript, inkludert instruksjoner, og den første siden. Er derfor avhengig av at javascript tillates fra klienten.

  11. Hmmm...

    Føler at dette er litt min feil... Men bare litt...

    Hadde en liten feil i koden over... Du må jo seff ha $sql i mysql_query(), slik:

    $sql = "SELECT date_created FROM blogg_innlegg WHERE YEAR(date_created) = '$year' and MONTH(date_created) = '$month' DESC"
    $query2 = mysql_query($sql) or die("feil i spørring: $sql<br>".mysql_error());
    

     

    Eller har du gjort det ?

    Var en aldri så liten glipp fra min side.

    Feilmeldingen

    Warning: Wrong parameter count for mysql_query() in /hsphere/local/home/phun-ky/umedia.no/community/artikkel.php on line 134

    feil i spørring: SELECT date_created FROM blogg_innlegg WHERE YEAR(date_created) = '2005' and MONTH(date_created) = '11' DESC

    sier jo akkurat det, da...

  12. Ser hva feilen kan være, men prøv denne, og se hva som kommer av feilmelding fra mysql, så finner du nok ut av det selv:

    $sql = "SELECT date_created FROM blogg_innlegg WHERE YEAR(date_created) = '$year' and MONTH(date_created) = '$month' DESC"
    $query2 = mysql_query() or die("feil i spørring: $sql<br>".mysql_error());
    

    Se om du får litt mer informasjon om hva som kan være feil med spørringen, da.

     

    Du finner nok ut av feilen, da :)

×
×
  • Opprett ny...