christian1986 Skrevet 18. desember 2008 Del Skrevet 18. desember 2008 La meg først få si at mine phpkunskaper er ganske begrenset, så trenger hjelpe. Aner at det er veldig lett å se hva som er feil for en med et trent øye ... Prøve å få den til å poste noe bare om en er innlogget, men var ikke så lett som jeg trodde. <?php get_header(); ?> <div id="content" class="narrowcolumn"> <?if (is_user_logged_in()) { <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="post" id="post-<?php the_ID(); ?>"> <h2><?php the_title(); ?></h2> <div class="entry"> <?php the_content('<p class="serif">Read the rest of this page »</p>'); ?> <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?> echo "JADA!";} else{ echo "log inn!";} ?> </div> <?php get_footer(); ?> Lenke til kommentar
Ekko Skrevet 18. desember 2008 Del Skrevet 18. desember 2008 DEet kommer vel litt an på hva som skjuler seg bak disse metodene. is_user_logged_in() have_posts() Er ellers ikke helt familiær med all syntaksen som er brukt her, men får satse på at den ellers er rett. Får du feilmelding eller oppfører den seg bare ikke slik du vil? Lenke til kommentar
christian1986 Skrevet 18. desember 2008 Forfatter Del Skrevet 18. desember 2008 (endret) is_user_logged_in() fungerer utmerket. have_posts() antar jeg fungerer, da jeg har fisket den fra en annen fil.. Ellers gir den bare en blank side. Har nappet midten fra denne filen som fungerer greit... For meg så virker det som om det er noe med syntaksen. <?php get_header(); ?> <div id="content" class="narrowcolumn"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="post" id="post-<?php the_ID(); ?>"> <h2><?php the_title(); ?></h2> <div class="entry"> <?php the_content('<p class="serif">Read the rest of this page »</p>'); ?> <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?> <small>Sist oppdater: <?php the_modified_time('d') ?>. <?php the_modified_time('F'); ?> - <?php the_modified_time('Y'); ?></small> </div> </div> <?php endwhile; endif; ?> <?php edit_post_link('Editer denne siden', '<p>', '</p>'); ?> </div> <?php get_sidebar(); ?> <?php get_footer(); ?> Endret 18. desember 2008 av christian1986 Lenke til kommentar
Ekko Skrevet 18. desember 2008 Del Skrevet 18. desember 2008 (endret) Få du bare en helt blank side? Hvordan ser sourcen på siden du får ut? Slik ejg ser det, hvis du er logget inn og is_user_logged_in() funker så skal det enten skrives ut "Jada!" eller "log inn!". Skrives dette ut? EDIT: Jeg synes forresten denne ser litt mistenkelig ut: <?if (is_user_logged_in()) { Burde du ikke hatt en <?php og en avslutningstag også her? Og kanskje fjerne <?php som kommer på neste linje? Slik jeg ser det her prøver du å åpne en ny <?php inni en eksisterende. Noe må være galt der. Endret 18. desember 2008 av Ekko Lenke til kommentar
christian1986 Skrevet 18. desember 2008 Forfatter Del Skrevet 18. desember 2008 Om jeg fjerner if (have_posts()) : while (have_posts()) : the_post(); <div class="post" id="post-<?php the_ID(); "> <h2><?php the_title(); ?></h2> <div class="entry"> <?php the_content('<p class="serif">Read the rest of this page »</p>'); ?> <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?> går alt bra, og da vises log in, eller jada som det skal. Så er noe feil i formateringen der, og det finner jeg ikke ut av. Lenke til kommentar
Ekko Skrevet 18. desember 2008 Del Skrevet 18. desember 2008 (endret) Det jeg stusser å ermakerer jeg i bold. <?php get_header(); ?> <div id="content" class="narrowcolumn"> <?if (is_user_logged_in()) { <?php if (have_posts()) : while (have_posts()) : the_post(); ?>[ <div class="post" id="post-<?php the_ID();?>"> <h2><?php the_title(); ?></h2> <div class="entry"> <?php the_content('<p class="serif">Read the rest of this page »</p>'); ?> <?[php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?> echo "JADA!";} else{ echo "log inn!";} ?> </div> <?php get_footer(); ?> Her åpner du og lukker nye <?-tags inni den du åpner ved <?if. Jeg hadde ikke trodd man kunne lukke koden med ?> før man hadde fullført if-setningen. Du skriver også vanlig tekst inni her, selv om du egentlig har <?if-tagen åpen. Vet ikke om du skjønner hva jeg mener? edit:gikk ikke an å marker i bold inni CODE. Håper poenget mitt likevel kommer frem. Endret 18. desember 2008 av Ekko Lenke til kommentar
christian1986 Skrevet 18. desember 2008 Forfatter Del Skrevet 18. desember 2008 Må si jeg falt litt av der, men har du mulighet til å fjerne de <? som ikke skal være der, så kan jeg prøve:)? Lenke til kommentar
Ekko Skrevet 18. desember 2008 Del Skrevet 18. desember 2008 (endret) For å forklare litt grundigere. Når du skriver <? eller <?php sier du at "her begynner det php-kode. Når du skriver ?> sier du at, "nå er php-koden ferdig, det jeg skriver herfra og videre skal skrives rett ut til den ferdige websiden. Så eksempel: <?php print "hurra"; ?> hurra1 <?php print "hurra2"; ?> Dette vil skrive ut til filen/den ferdige websiden "hurrahurra1hurra2" Det du har gjort er 2 ting: Du skriver tekst inni kodetagen (altså innefor der det kun skal skrives php-kode slik: <?php print "hurra"; hurra1 ?> Dette går ikke bra vil jeg tro men jeg er ikke sikker. Du oppretter også en ny php-tag før du har avsluttet den forrige: <?php print "hurra"; hurra1 <?php print "hurra2"; ?> ?> Det er viktig å huske på at for hver <? må du ha en ?> som avslutter koden din. Videre er det et viktig verktøy å se hva som fatisk skrives ut til din ferdie fil/webside. I Internet explorer finner du dette ved å høyreklikke og velge vis kilde/view source. Kan du dette? Når det gjelder å endre på programmet ditt så kan du først se om du skjønner hva jeg har skrevet her, hvis ikke skal jeg se på det. Endret 18. desember 2008 av Ekko Lenke til kommentar
christian1986 Skrevet 18. desember 2008 Forfatter Del Skrevet 18. desember 2008 Hei! Er med på det, forstår det grunnleggende. Har mest erfaring fra c/c++, så tankegangen er grei. Men, om det er mulig med dobbel <? er noe jeg er usikker på. Ellers så viser kildekoden også blankt i explorer. Det virker på meg som om syntaksen min er problemet:/.... Lenke til kommentar
Ekko Skrevet 18. desember 2008 Del Skrevet 18. desember 2008 (endret) Ja. Penget med php-filen din er jo at den til slutt spytter ut en fil som er den kildekoden du ser i IE. Denne tolkes deretter av IE typisk som en html-side. Prøv noe slikt <?php get_header(); ?> <div id="content" class="narrowcolumn"> <?php if (is_user_logged_in()) { if (have_posts()) : while (have_posts()) : the_post(); echo "JADA!"; }else{ echo "log inn!"; } ?> </div> <?php get_footer(); ?> Her har jeg slaktet bort litt av fyllet i midten, men legg til litt og litt og se hva som funker. Endret 18. desember 2008 av Ekko Lenke til kommentar
christian1986 Skrevet 18. desember 2008 Forfatter Del Skrevet 18. desember 2008 (endret) Cluet her er at "if (have_posts()) : while (have_posts()) : the_post(); " resulterer i blank html og kilde. Jeg trodde det hadde noe med formateringen å gjøre, men er tydeligvis ikke det som er problemet da? Fjerner jeg den, så funker alt... Kort sagt, så skal jeg få kildekoden jeg gjengir under til å bare vise innholdet om en er logget inn. Logg inn sjekk fungere, og den andre vanlig publisering fungerer for seg selv, men jeg klarer ikke kombinere de... Forresten, tusen takk for at du hjelper meg <?php get_header(); ?> <div id="content" class="narrowcolumn"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="post" id="post-<?php the_ID(); ?>"> <h2><?php the_title(); ?></h2> <div class="entry"> <?php the_content('<p class="serif">Read the rest of this page »</p>'); ?> <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?> <small>Sist oppdater: <?php the_modified_time('d') ?>. <?php the_modified_time('F'); ?> - <?php the_modified_time('Y'); ?></small> </div> </div> <?php endwhile; endif; ?> <?php edit_post_link('Editer denne siden', '<p>', '</p>'); ?> </div> <?php get_sidebar(); ?> <?php get_footer(); ?> Endret 18. desember 2008 av christian1986 Lenke til kommentar
Jonas Skrevet 18. desember 2008 Del Skrevet 18. desember 2008 Blank side, som plutselig vises igjen dersom man fjerner litt kode er et eksempel hvor error handling foregår på en særdeles elendig måte. Vet ikke hvordan serveren din er konfigurert akkurat nå eller om det i det hele tatt er det som er problemet, men prøv å sett følgende linje øverst. error_reporting ( E_ALL ); Lenke til kommentar
christian1986 Skrevet 18. desember 2008 Forfatter Del Skrevet 18. desember 2008 Hmm, prøvde det nå, og skjer det samme. Bruker forresten one.com som serverleverandør, så hvordan den er konfigurert har jeg ikke kontroll på. Noen flere ideer? Lenke til kommentar
Ekko Skrevet 18. desember 2008 Del Skrevet 18. desember 2008 Hvilken kode er det du kjører nå? Lenke til kommentar
christian1986 Skrevet 19. desember 2008 Forfatter Del Skrevet 19. desember 2008 Jeg prøvde din, med og uten det tipset jeg fikk rett over. Lenke til kommentar
Ekko Skrevet 19. desember 2008 Del Skrevet 19. desember 2008 Og om du legger inn en print "kake"; på linjen før if (have_posts()) : while (have_posts()) : the_post(); Hva skjer da? Lenke til kommentar
Epower Skrevet 19. desember 2008 Del Skrevet 19. desember 2008 if (have_posts()) : while (have_posts()) : the_post(); Hva skal egentlig dette gjøre? Lenke til kommentar
halden Skrevet 19. desember 2008 Del Skrevet 19. desember 2008 Du kan prøve å endre "<?if (is_user_logged_in()) {" til "<? if (is_user_logged_in()) {", fjerne "<?php" før "if (have_posts())...", og fjerne "?>" etter "'next_or_number' => 'number'));" Lenke til kommentar
mathias123 Skrevet 24. desember 2008 Del Skrevet 24. desember 2008 Det er Wordpress, jeg slet også med dette en stund. if (have_posts()) : while (have_posts()) : the_post(); Om du kjører dette i index.php sjekker have_posts() og bloggen har noen poster, om den har det returnerer den true og går til while-løkken. the_post() setter opp funksjonskall for den spesifikke bloggposten du viser, slik at the_title(), og the_content() echoer rett post. Er du sikker på at du har poster i databasen og ikke har slettet standardposten som kommer med installasjonen? Lenke til kommentar
Epower Skrevet 25. desember 2008 Del Skrevet 25. desember 2008 (endret) if (have_posts()) : while (have_posts()) : the_post(); Det er da ikke sånn man bruker if. Sånn er det: if(have_posts()) { while(have_posts()); } else { the_post(); } Endret 25. desember 2008 av Eirikkkkkk Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå