Gå til innhold

kakkle

Medlemmer
  • Innlegg

    731
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av kakkle

  1. Hmmm...

    Skjønner problemer, tror jeg. Filen er altså slik hele veien:

    $brukernavn = "Per";
    $passord = "MD5HASH";
    $brukernavn = "Ole";
    $passord = "OleMd5Hash";
    osv...
    

    HVa med å gjøre et søk etter rett brukernavn først, når den finner rett brukernavn, bruker du linjenumeret som det brukernavnet står i, til å sjekke passordet, som skal ligge i neste linje.

  2. Hei

     

    Når alle poster blir endret, så betyr det at WHERE clausen ikke funker som den skal, eller ikke er med. Du har ikke fått med WHERE i $query virabelen din... Du avslutter strengen vha ; her:

    $query = "UPDATE this " .
    "SET tekst='" . $_POST [ "message2" ] . "'"; 
    

    Du kan evt på neste linje sette:

    $query .= "WHERE ID = '" . $_POST [ "ID" ] . "'"; 
    

     

     

    EDIT: Legg også til spørringen ($query) i feilmeldingen dersom noe går galt, så ser du hvordan spørringen ser ut. Alltid veldig greit :)

    /kakkle

  3. Du må sette $main til blogg også...

    Kanskje like greit å sjekke om $_GET["h"] er satt eller ikke. Er den satt, sett $main til den verdien, hvis ikke, sett den til blogg.

     

    Prøv dette:

    if(isset($_GET["h"])) {
    $main = $_GET["h"];
    }
    else {
    $main = "blogg";
    }
    if(isset($_GET["s"])) {
    $includefile = "inc/".$_GET["s"].".inc";
    }
    else {
    $includefile = "inc/$main.php";
    }
    

    istedetfor:

    if (isset($_GET["h"])) {
    $main = $_GET["h"];
    if (isset($_GET["s"])) { //  varibel s er fra submenu
    $submenu = $_GET["s"];
    }
    else  {
    $includefile = "inc/$main.inc";
    }
    }
    else {
    $includefile="inc/hjem.inc";
    }
    

     

    Ikke testet i det hele tatt... Du kan forsåvidt fjerne variablen $submenu, tror jeg.

  4. Det er veldig nærme, da... Men ved update må du bruke :

    UPDATE table SET field1='value1', field2='value2' ... fieldn='valuen'" WHERE id=<id>

    Slik at din spørring blir slik:

    $query="UPDATE this SET overskrift='".$_POST["overskrift"]."' WHERE id=".$_POST["id"];
    

    Dette er kun for å endre feltet overskrift.

     

    For å liste ut alle nyhetene, kan det f.eks brukes en tabell, med hver nyhet på en linje. MEd en liten link på slutten av raden med link til delete eller edit. edit og delete må ha id på posten i urlen. Når du trykker på lenken edit, så komer du til en side, hvor du henter ut data fra mysql utfra id'en som er spesifisert i urlen, og skriver dette ut i de rette feltene i skjemaet.

     

    Evt. Så kan du jo også bare ha en liten edit link på slutten av hver nyhet, som kun er synlig for en innlogget admin.

     

    /Kakkle

  5. For å redigere eksisterende data i mysql brukes UPDATE.

    F.eks:

    UPDATE this set bilde='bilde' where id=8

    Her blir feltet bilde endret til 'bilde' i posten som har id 8.

     

    Selve siden hvor du taster inn endringene blir veldig lik, men du må først hente ut verdiene fra mysql, som du da setter som value i de riktige feltene i skjemaet.

     

    Mulig dette var forklart på en kryptisk måte. Men prøv deg litt fram, og spør på nytt dersom du står fast.

     

    ref.:

    UPDATE dokumentasjon på mysql.org

  6. Ligger alle include filene i folderen inc ?

    Da må du isåfall endre $includefile til dette:

    $includefile = "inc/$main.php"
    

    Forutsatt at filene dine har en .php endelse. evt kan de bytte stil inc eller hva du måtte ha.

    Du kan jo forsåvidt bake inn denne snutten i koden din, som du hadde fra før:

           $mappe = 'inc/';
          $dir = opendir($mappe);
          $filer = array();
          while (($filename = readdir($dir)) !== false) {
              if (is_file($mappe.$filename)) {
                  $filer[$filename] = $mappe.$filename;
              }
          }
    

    Da kan du fjerne filendelsen fra $includefile og bruke $files[$includefile]

     

    I linkene i submenyen, må du skrive <a href="?h=$main&s=[side som submeny skal vise]">

     

    EDIT: Se forøvrig i .sub eksempelet som jeg la med i forrige innlegg

     

    EDIT2: Ser også at du setter den variabelen som kommer fra submenu til $submenu. Sett denne til $includefile = "inc/".$_GET["s"] foreksempel, eller bare $_GET["s"] dersom du velger å benytte array metoden din.

  7. Her er bare et kjapt eksempel

     

    <?
    // Her kommer litt variabel innhenting først
    if (isset($GET["h"])) {
    $main = $_GET["h"];
    if(isset($_GET["s"])) { //  varibel s er fra submenu
    $includefile = $_GET["s"];
    }
    else  {
    $includefile = $main;
    }
    }
    else {
    $include_file="hovedside.php";
    }
    ?>
    //Her er hovedmenyen
    <div class='mainmenu'>
    <li><a href='?h=blogg'>Blogg</a></li>
    <li><a href='?h=side2'>Side2</a></li>
    </div>
    <div class='maincontent'>
    // Her er hovedinnholdet
    include ("$includefile.php");
    </div>
    <div class='submenu'>
    <?
    if(file_exists("$main.sub")) {
    include "$main.sub";
    }
    ?>
    

    Her blir submeny vist etter hvilken link du har trykket i hovedmenyen, og er det samme ved trykk på submenu. Dersom det ikke er valgt noe fra hovedmenyen, vises hovedsiden (hovedside.php) og dersom det er valgt noe fra hovedmenyen, men ikke fra submenyen, vises filen med samme navn som hovedmenyen (F.eks. blogg.php)

     

    Og her er et eksempel på submenu fil:

    blogg.sub:

    <div id=\"sidebar_r\">
    <ul>
    <h3>Kategorier:</h3>
    <li><a class=\"meny_r\" href=\"?h=$main&s=blogg_personlig_blogg\">Personlig blogg</a></li>
    <li><a class=\"meny_r\" href=\"?h=$main&s=ferie_2005\">Ferie 2005</a></li>
    <li><a class=\"meny_r\" href=\"?h=$main&s=Skoleblogg\">Skoleblogg</a></li>
    </ul>
    </div>
    

    Men den submenu tingen du har, funker egentlig like greit.

     

    Koden er ikke tilpasset din side. Dette er ment som et forslag om hvordan du kan gjøre det. Koden er heller ikke testet, og det kan være småfeil innimellom. Anbefaler ikke copy paste her. Mangler nok sikkert noen {, }, /(, ) og ; rundt omkring. Bør i teorien funke.

     

    Det som er litt viktig, er at du tar vare på hvilken link som er valgt i hovedmenyen, slik at koden heletiden vet hvilken submeny som skal vises.

     

    Håper du ble litt klokere. Si fra dersom dette ikke fungerer i det hele tatt

     

    EDIT: Fikset litt på submenyen, og tok kun med tre submeny punkter.

    /Kakkle

  8. Det er nok flere løsninger her, men her er en mulig:

     

    I submenu, må du benytte en annen variabel enn den du bruker i hovedmenyen. Velg så hvilken side som skal inkluderes utifra variabel i submeny. Dersom ikke noe er valgt i submeny, viser du default siden, som er den som skal vises når linken i hovedmenyen trykkes på.

     

    Ville kanskje latt hver submeny være en egen fil, slik at submenyen til f.eks blogg heter blogg.sub som inkluderes dersom blogg er valgt i hovedmenyen.

     

    Si fra dersom forklaringen ble litt kryptisk, så kan jeg muligens knote ned litt enkel kode som forklarer bedre. ;)

     

    /Kakkle

  9. litt mer nøyaktig hva som jeg vil skal skje:

    Dropdownlisten skal brukes til å forandre når brukerens fødselsdato, nærmere bestemt måned.(kanskje litt porngløst men). Jeg har da to "<option>" verdier i scripte(: 1. den verdien som er satt kommer som default. 2. Etter defaultverdien kommer for loopen som ramser opp de andre tolv månedene. Da kommer jo en måned opp opp to ganger, en fra dabasen og en fra oppramsingen av de månedene(ligger i en array). Jeg vil at tallet bare skal komme opp en gang. Etter å ha tenkt litt har jeg kommet fram til et forslag:

    while($row[]=$array(hvor alle månedene ligger lagret))

    {

    if ($month(hentet fra databasen)!=$row) {

    echo $row;

    }}

    men det ser ikke ut til å funke, men er jeg på riktig spor?

    Hmmm...

     

    Hvis jeg skjønner deg riktig, vil du at måneden som står i databasen skal vises i option feltet som default. Kan du ikke bare gjøre en test på om måneden som er i while løkken er den samme som er i databasen, og hvis den er det, setter du det option-elementet til default, eller selected.

    Eksempel: Si at alle månedene ligger lagret i arrayet $maneder, og måneden fra databasen ligger i variabelen $db_maned.

    for($i=0;$i<count($maneder);$i++) {
    if ($maneder[$i] != $db_maned) {
    echo "<option value='$maneder[$i]'>$maneder[$i]</option>";
    }
    else {
    echo "<option value='$maneder[$i]' selected='selected'>$maneder[$i]</option>";
    }
    

    EDIT:

    evt:

    for($i=0;$i<count($maneder);$i++) {
    $selected = ($maneder[$i] != $db_maned)?"";" selected='selected'";
    echo "<option value='$maneder[$i]".$selected.">$maneder[$i]</option>";
    }
    

    som gjør akkurat det samme; Setter selected = "" Dersom det er ulik måned og $selected = " selected='selected'" dersom det er lik måned

  10. Jeg tror nok jeg ville skilt på ord istedetfor tegn, slik at ikke en del av ordet blir på side en, og andre del av ordet på side to.

    Et aldri så lite eksempel på teorien

    //databsekobling, spørrinng, osv
    // $text = teksten fra mysql...
    $ord_pr_side = 100;
    if(!isset($_GET["side"])) $side = 0;
    else $side = $_GET["side"]
    $start = $side*$ord_pr_side;
    $slutt = $start + $ord_pr_side;
    $ant_ord = str_word_count($text);
    if($slutt > $ant_ord) $slutt = $ant_ord;
    $ant_sider = ceil($ant_ord / $ord_pr_side);
    $ord = str_word_count($text, 2);
    for($i=$start;$i<$slutt;$i++) {
    print $ord[$i]." ";
    }
    if($ant_sider > 1) {
    $nesteside = $side+1;
    print "<a href='?side=$nesteside'>neste side</a>";
    }
    

     

    Ikke helt 100, men omtrent noe sånt, kanskje ? Ikke testet, da...

     

    Du bør lese litt om str_word_count på php.net

    er usikker på om den tar med æøå. Den teller ihvertfall ikke med tall. Dette må legges til i et tredje argument. Se eksempel på php.net

  11. Hvis du skal ha alle ordene i en fil i et array, bare skilt av mellomrom, f.eks, så tror jeg at jeg ville brukt implode etterfulgt av str_word_count, som telle antall ord i en variabel, og om ønskelig returnerer et array med alle ordene.

    eks:

    $filarray = file("ord.txt");
    $fil = implode("", $filarray);
    $ord = str_word_count($fil, 1); // returnerer alle ord til srray $ord, med 0 - ant ord som key
    $ord = str_word_count($fil, 2); // returnerer alle ord til array $ord med posisjon i variabelen som key
    

    Se evt godt ekempel på php.net. Link over.

  12. Det er ihvertfall en feil i if setningen din. Regner med at du vil teste om $_SESSION['innlogget'] er lik 'ja'. Da må du isåfall bruke to likhetstegn, slik du har gjort på if setningen over.

    if($_SESSION['innlogget'] == 'ja') echo'<h4>Du er nå logget inn!</h4><br><a href="webadmin.php">webadmin</a>';
    

     

    Gå igjennom og sjekk redirection koden din (header("loaction:ajh")). Det virker som om det er en loop som går. f.eks i side1.php redirecter du til side2.php. På side2.php er det feil i en if setning, som gjør at den alltid er sann, og redirecter tilbake til side1.php, og slik går det i en loop, til grensen er nådd...

     

    Kan være det bare er den if setningen din.

  13. Så du skal ikke erstatte hele filen, er det slik å forstå ? Du vil bare endre deler av filen ?

    Her er et konkret eksempel for lagring av $data (filen omperson.txt) i en variabel:

    $filelines = file($data); // Her er $data="omperson.txt" iflg config filen din
    $helefilen = implode ("", $filelines);
    

    Dersom du vil se litt mer på filer, og lesing fra dem, og endring av filer, så kan du kikke på følgende sider på php.net:

    http://www.php.net/filesystem

    http://www.php.net/file

    http://www.php.net/fopen

    http://www.php.net/fputs

    Andre sider som er nyttige:

    http://www.php.net/array

    http://www.php.net/implode

    http://www.php.net/explode

    http://www.php.net/str_replace

    http://www.php.net/ereg_replace

     

    for å ha med noen... Det er masse å lære på php.net, så jeg anbefaler deg å lese litt der. Se også på kommentarene som er under funksjonsbeskrivelse. Kan hende det ligger en funksjon for akkurat det du leter etter der.

     

    EDIT: Tok med link til Filesystem reference også, og slettet den siste file linken...

     

    /KMS

  14. Tror Sir Ice tenkte litt på de tidligere innleggene dine også.

     

    Tilbake til topic.

     

    Finn den nye høyden slik:

    $bilde = ($_FILES['BILDE']);
    // husk at imagesx er bredden på bildet...
    $hoyde = imagesy($bilde); // Unngå æøå i variabellnavn
    $bredde = imagesx($bilde);
    $nybredde = 600;
    $nyhoyde = $hoyde * ($nybredde / $bredde);
    $img = imagecreate($nybredde, $nyhoyde);
    

     

    Sånn ca... Ikke i det hele tatt testet...

  15. Evt gjør denne snutten jobben for deg (Krever ImageMagick installert på server):

    exec("convert -resize $thumbsizex$thumbsize $img_source $img_savepath")
    

    hvor $thumsize er maksstørrelse på thumbnails, $img_source er bildet som skal lages thumbnail av, og $img_savepath er det nye bildet.

     

    PS x mellom $thumsize er et gangetegn som i 75x75

  16. du kan fint bruke "w" forå skrive over et dokument, men det du gjør her, er jo at du først leser innholdet i filen inn i arrayet $comfile, så legger du til det nye, også legger du inn hver linje som var i det gamle dokumentet... Derfor får du det gamle i tillegg..

     

    Dersom du ikke skal bytte ut hele filen med nytt innhold, bør de sette inn noen kommentar-tags som sier hvor forskjellige ting starter.. F.eks <!-- Profil Start --> og <!-- Profil Slutt --> og hvis du har noen kommentarer under der igjen, som skal legges til (virker sånn), så kan du f.eks bruke <!-- komm start --> og <!-- komm slutt -->, også bytter du bare ut teksten mellom start og slutt av profil med den nye profilen, og skriver hele teksten på nytt...

     

    Tips: For å lagre hele innholdet i en variabel, kan du bruke: implode("", file($data)); Så kan du bare erstatte alt mellom profil start og profil slutt :)

     

    En annen ting; Du siter at det er en tekstfil pr bruker... Men ifølge koden, så henter du alltid inn filen omperson.txt. stemmer det eller ? Er det kanskje litt kode som ikke vises her...

     

    UFF Seint ! Må få lagt meg

×
×
  • Opprett ny...