Avatar billede drockles Nybegynder
09. januar 2006 - 15:16 Der er 9 kommentarer og
1 løsning

er der nogen der kan se hvad jeg gør galt her?

når jeg kører siden i explorer viser den intet...
måske fordi min side der sætter ind i databsen ikke duer, men nu prøver vi med den her først
<?php

require("./gbog-ting/mysql-funktioner.php");
require("./gbog-ting/design-funktioner.php");
require("./gbog-ting/indstillinger.php");

#
# Vi skal have fat i vores variabler, uanset hvilken version af PHP der bruges
#

if(is_array($HTTP_GET_VARS)) {
  $start_nr = $HTTP_GET_VARS['start_nr'];
} elseif (is_array($_GET)) {
  $start_nr = $_GET['start_nr'];
}

#
# Når folk kigger på gBogen første gang har de ikke noget $start_nr, så vi giver dem et nul,
# så de starter med det nyeste indlæg.
# Hvis en skuummel gæst selv prøver at sætte $start_nr kan den ende med at blive under nul,
# når man bruger navigationen. Hvis den er under nul laver vi den også om til nul, så
# mysql ikke begynder at brokke sig over ugyldigt input
#

if(!$start_nr || $start_nr < 0) {
  $start_nr = 0;
}

echo top("Min G&aelig;stebog");
echo "<p>Et aktivt eksempel til en <a href=\"./\">artikel</a> p&aring; webcafe.dk</p>";

#
# Vi henter to ting ud af MySQL - først og fremmest alle de indlæg vi skal kigge på
# men også en hurtig optælling af, hvor mange indlæg der er ialt. Det sidste skal vi
# bruge når vi bygger "frem"- og "tilbage"-links.
#
# Der er ingen grund til at åbne databasen endnu - vi skal først lige have bygget
# de to forespørgsler.
#

$sql = "select id, profilnavn, navn, alder, email, shirtno, position, idol, klub, status, unger, personlig, chang, minde, ord,  besked, date_format(tid, '%e/%c %Y, %H:%i') as tiden from andreas order by tid desc limit $start_nr, $antal_ad_gangen";
$taeller_sql = "select count(*) as antal from andreas";

#
# Nu åbner vi databasen, hiver informationerne ud og lukker med det samme igen.
# Det er god skik at en forbindelse til database ikke er åben længere end højst nødvendigt.
#
# Abstraktionerne fra mysql-funktioner.php sørger for alt det grove arbejde og fejlhåndtering - dejligt.
#

aabn_forbindelse_og_vaelgdb();
$resultat = sql_spoerg_og_faa_svar($sql);
$optaelling = sql_spoerg_og_faa_svar($taeller_sql);
luk_forbindelse();



echo top (<?php echo $profilnavn; ?>);
echo "<p><?php echo $ord; ?></p>";


#
# Her begynder det egentlig interesante - vi looper os igennem de enkelte indlæg
# og skriver dem ud til skærmen.
#
# Hvis forespørgslen ikke har returneret nogle resultater, springer vi alt dette over.
#

if(count($resultat) < 1) {

  echo "Der er ingen info i databasen";

} else {

  for($i=0;$i<count($resultat);$i++) {

    #
    # Med extract får vi smidt værdierne i variabler
    #
   
    extract($resultat[$i]);

    #
    # Vi brugte addslashes() da vi lagde tingene i databasen så for at få det til
    # at se læseligt ud, fjerne vi dem igen med stripslashes()
    #

    $profilnavn = stripslashes($profilnavn);
      $navn = stripslashes($navn);
      $alder = stripslashes($alder);
      $email = stripslashes($email);
      $shirtno = stripslashes($shirtno);
      $position = stripslashes($position);
      $idol = stripslashes($idol);
    $klub = stripslashes($klub);
    $status = stripslashes($status);
    $unger = stripslashes($unger);
    $personlig = stripslashes($personlig);
    $chang = stripslashes($chang);
    $minde = stripslashes($minde);
    $ord = stripslashes($ord']; 
    $besked = stripslashes($besked);
  }
    #
    # Hvis der ikke må bruges HTML fjerner vi lige alle tags med htmlentities()
    #

    if($html_p != "t") {
        $profilnavn = htmlentities($profilnavn);
          $navn = htmlentities($navn);
          $alder = htmlentities($alder);
          $email = htmlentities($email);
          $shirtno = htmlentities($shirtno);
          $position = htmlentities($position);
          $idol = htmlentities($idol);
        $klub = htmlentities($klub);
        $status = htmlentities($status);
        $unger = htmlentities($unger);
        $personlig = htmlentities($personlig);
        $chang = htmlentities($chang);
        $minde = htmlentities($minde);
        $ord = htmlentities($ord']; 
        $besked = htmlentities($besked);
    }

    #
    # For at vi får linjeskift i HTML også, bruger vi nl2br til at skifte alle \n
    # ud med <br>

    $besked = nl2br($besked);

    #
    # Vi laver et simpelt check: Hvis emailen indeholder et snabel-a, så laver
    # vi det til en mailto:
    #
    # Dette er dog ingen garanti for, at emailen er gyldig.
    #

    if(ereg("@", $email)) {
        $navn = "<a href=\"mailto:$email\">$navn</a>";
    }

    #
    # Så er alt klart til browseren og vi spytter en tabel ud med denne besked.
    # Hvis du vil ændre markant i udseendet af din gæstebog, så er det
    # i blokken herunder det foregår. Du skal bare beholde de givne navne i
    # <input>-tagsene.
    #
    # Vi hopper lige ud af PHP-mode lidt, så vi er fri for at escape alle gåseøjnene.
    #

?>

    <table width="<?php echo $tabel_bredde; ?>" cellpadding="1" cellspacing="0" border="0">
        <tr><td class="gbog-baggrund" width="100%" align="center">

            <table border="0" cellpadding="8" cellspacing="0" width="100%">
                <tr><td class="gbog-top" width="100%">Sidst redigeret: <?php echo $tiden; ?></td></tr>
            </table>

        </td></tr><tr><td class="gbog-baggrund" align="center" width="100%">

            <table border="0" cellpadding="8" cellspacing="0" width="100%">
                <tr><td class="gbog-bund" width="100%">
                <?php echo $besked; ?>
                <p align="right"><a class="rediger din profil" href="<?php echo "rediger.php?id=$id&start_nr=$start_nr"; ?>">rediger din profil</a></p></td></tr>
            </table>

        </td></tr>
    </table><p />

<?php

  #
  # Vi hopper tilbage i PHP-mode.
  #
  # Her slutter loopet og PHP springer tilbage og går hele turen igennem med den næste
  # besked. Når der ikke er flere indlæg i denne omgang går PHP videre.
  #

  }


  #
  # Her slutter if-else-konstruktionen der fanger, om der er nogle indlæg overhovedet.
  #

}

#
# Og spytter den sidste stump HTML ud.
#

echo bund();
Avatar billede emileej Nybegynder
09. januar 2006 - 15:40 #1
Prøv at beskære lidt - identificer de dele som virker og isoler dem, der ikke gør - indsæt disse dele her.
Avatar billede drockles Nybegynder
09. januar 2006 - 15:42 #2
oki jeg prøver
Avatar billede rednex Nybegynder
09. januar 2006 - 16:44 #3
error_reporting(E_ALL);
ini_set('display_errors', '1');

Prøv at smide disse linier øverst i scriptet. Så skulle den gerne give dig et par hints til hvor det går galt.
Avatar billede drockles Nybegynder
09. januar 2006 - 16:47 #4
stadig intet.. heller ikke med det der script
Avatar billede rednex Nybegynder
09. januar 2006 - 16:57 #5
Hvis du har pastet HELE koden, så vil jeg tro at du mangler en ?> i bunden. Og så undrer jeg mig lidt over de her:

echo top (<?php echo $profilnavn; ?>);
echo "<p><?php echo $ord; ?></p>";

Jeg vil skyde på at du gerne vil have den til at udskrive hhv. profilnavn og ord. Det gør du sådan her:

echo top ( $profilnavn );
echo "<p>$ord</p>";
Avatar billede drockles Nybegynder
09. januar 2006 - 18:29 #6
ok det er nok der den er gal... jeg prøver
Avatar billede drockles Nybegynder
09. januar 2006 - 18:39 #7
stadig intet
Avatar billede rednex Nybegynder
09. januar 2006 - 18:59 #8
Linie 101 ($ord = htmlentities($ord'];) skal lige rettes til:
    $ord = stripslashes($ord);

Ligeledes skal linie 122 ($ord = htmlentities($ord'];) rettes til:

        $ord = htmlentities($ord);

Og til sidst skal } i linie 103 fjernes.
Avatar billede drockles Nybegynder
09. januar 2006 - 21:29 #9
så for pokker! så var den der
mange tak rednex
smider du lige et svar
Avatar billede rednex Nybegynder
09. januar 2006 - 21:44 #10
Det kan du tro :o)
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