Avatar billede benjaboy Nybegynder
09. april 2009 - 19:13 Der er 18 kommentarer og
1 løsning

Problem med explorer men ikke firefox?

Hejsa.

Har denne kode:

        <div class="tilbehorProdukt" <? echo 'style="background: url(\''.$url.'/images/tilbehoerbg_ikkeloggetind.gif\') no-repeat;"';echo 'style="background: url(\''.$url.'/images/tilbehoerbg_udsolgt.gif\') no-repeat;"';?>>
                <a href="<? echo $url; ?>/images/konkurrencer/<? echo $fT[id]; ?>.jpg" title="Klik for at lukke" class="descImg"><img class="tilbehorProduktImg" src="<? echo $url; ?>/inc/thumbnail.php?pic=<? echo $fT[id]; ?>.jpg" /></a>
                <div class="tilbehorProduktDesc">
                    <? echo nl2br($fT[beskrivelse]); ?>
                </div>           

                <div class="tilbehorProduktPris">
                    <b style="font-size:20px;"><? echo $fT[point]; ?></b><br />
                    point <br />
                </div>
            </div>


---------------------------------------

Den giver denne fejl i explorer:
explorer kan ikke åbne internet stedet.

Men i firefox køre den fint.

En der kan finde fejlen?

Mvh Benjamin
Avatar billede olebole Juniormester
09. april 2009 - 19:57 #1
<ole>

Udover at være kluntet og ineffektiv, ser det ikke ud til, der er noget galt med koden, som den vises her. Det er dog ikke til at se, hvad der omgiver den - eller hvordan den ser ud, når den rammer browseren - så det er svært at sige, hvad der er galt  =)

/mvh
</bole>
Avatar billede benjaboy Nybegynder
09. april 2009 - 19:59 #2
Her er link : www.getpen.dk/v2/konkurrencer.php

Og her er hele dens kode:

<? include("inc/layout.php"); ?>
<? $longPage = 1; print_header("GetPen.dk - Deltag i konkurrencer",false); ?>
<?
    $priser = mysql_query("SELECT * FROM priser");
    $priser = mysql_fetch_array($priser);
?>
    <h1>Deltag i konkurrencer</h1>
<h2>Herunder kan du se hvilke konkurrencer der er på GetPen lige nu!</h2>
    <?
        $getTilbehør = mysql_query("SELECT * FROM produkter WHERE vis = 'ja' AND færdig != 'ja' ORDER BY prio DESC");
        while($fT = mysql_fetch_array($getTilbehør)){
           
            $sqlUser = "SELECT kdid FROM ".$db_prefix."konkurrencedeltager WHERE brugerid = '".$_SESSION[brugerid]."'";
$resultUser = mysql_query($sqlUser) or die(mysql_eeror());
if(mysql_num_rows($resultUser) > 0){
    while($row = mysql_fetch_array($resultUser)){
        $UserArray[] = $row['kdid'];
    }
}
if($_SESSION[brugerid]>=1){
       

   
        if(in_array($fT[id], $UserArray)){
    ?>
        <div class="tilbehorProduktermed" <? if(!$_SESSION[brugernavn]){echo 'style="background: url(\''.$url.'/images/tilbehoerbg_ikkeloggetind.gif\') no-repeat;"';}?>>
            <a href="<? echo $url; ?>/images/ipodaccessory/<? echo $fT[id]; ?>.jpg" title="Klik for at lukke" class="descImg"><img class="tilbehorProduktImg" src="<? echo $url; ?>/inc/thumbnail.php?pic=<? echo $fT[id]; ?>.jpg" /></a>
                <div class="tilbehorProduktDesc">
                    <? echo nl2br($fT[beskrivelse]); ?>
                </div>           

                <div class="tilbehorProduktPris">
                    <b style="font-size:20px;"><? echo $fT[point]; ?></b><br />
                    point <br />
                </div>
        </div>

    <?
            }else{
    ?>
    <form action="<? echo $url; ?>/ordre/bekraefttilbehoer/" method="post">
        <div class="tilbehorProdukt" <? if(!$_SESSION[brugernavn]){echo 'style="background: url(\''.$url.'/images/tilbehoerbg_ikkeloggetind.gif\') no-repeat;"';}elseif($fT[udsolgt] == 1){echo 'style="background: url(\''.$url.'/images/tilbehoerbg_udsolgt.gif\') no-repeat;"';}?>>
            <input type="hidden" name="accessory" value="<? echo $fT[id]; ?>" />
                <a href="<? echo $url; ?>/images/ipodaccessory/<? echo $fT[id]; ?>.jpg" title="Klik for at lukke" class="descImg"><img class="tilbehorProduktImg" src="<? echo $url; ?>/inc/thumbnail.php?pic=<? echo $fT[id]; ?>.jpg" /></a>
                <div class="tilbehorProduktDesc">
                    <? echo nl2br($fT[beskrivelse]); ?>
                </div>           

                <div class="tilbehorProduktPris">
                    <b style="font-size:20px;"><? echo $fT[point]; ?></b><br />
                    point <br />
                </div>
                <? if($fT[udsolgt] == 0 && $_SESSION[brugernavn]){?><input type="image" src="<? echo $url; ?>/images/invisibleknap.gif" class="tilbehorInvisibleKnap" /><? } ?>
        </div>
    </form>
    <?
        }
            }ELSE{
                ?>
        <div class="tilbehorProdukt" <? echo 'style="background: url(\''.$url.'/images/tilbehoerbg_ikkeloggetind.gif\') no-repeat;"';echo 'style="background: url(\''.$url.'/images/tilbehoerbg_udsolgt.gif\') no-repeat;"';?>>
                <a href="<? echo $url; ?>/images/konkurrencer/<? echo $fT[id]; ?>.jpg" title="Klik for at lukke" class="descImg"><img class="tilbehorProduktImg" src="<? echo $url; ?>/inc/thumbnail.php?pic=<? echo $fT[id]; ?>.jpg" /></a>
                <div class="tilbehorProduktDesc">
                    <? echo nl2br($fT[beskrivelse]); ?>
                </div>           

                <div class="tilbehorProduktPris">
                    <b style="font-size:20px;"><? echo $fT[point]; ?></b><br />
                    point <br />
                </div>
            </div>
    </form>
    <?
            }
              }
    ?>
<br />

<? print_footer(false); ?>
   
<script type="text/javascript">
    $('a.descImg').zoomimage({
        controls: false,
        opacity: 0.5,
        prevent: 9999,
        centered: true
    });
</script>
Avatar billede olebole Juniormester
10. april 2009 - 00:45 #3
Sålænge man ikke kan se kode, der rammer browseren, er det som sagt ikke til at sige, hvad der går galt. Prøv at lægge et link
Avatar billede benjaboy Nybegynder
10. april 2009 - 01:25 #4
Avatar billede olebole Juniormester
10. april 2009 - 16:21 #5
Jeg kan se, du bruger en hel del jQuery - som jo ikke er kompatibel med alm. HTML og slet ikke stringent XHTML.

Deudover har du en del markup fejl, du skal rette, før det giver mening at tænke på andre fejl:
    http://validator.w3.org/check?uri=http%3A%2F%2Fwww.getpen.dk%2Fv2%2Fkonkurrencer.php&charset=%28detect+automatically%29&doctype=Inline&group=0&ss=1&verbose=1
Avatar billede benjaboy Nybegynder
10. april 2009 - 16:30 #6
Det er ikke mig der har lavet denne kode. Men har ændret lidt i den. Hvad mener du med;
Jeg kan se, du bruger en hel del jQuery - som jo ikke er kompatibel med alm. HTML og slet ikke stringent XHTML.?

Har prøvet og kigge på den der validator før men forstår altså ikke helt hvad fejlen er?

F.eks. den føste fejl på linje 19?

Hvad er problemet? :)

Håber på du vil hjælpe mig :)

Mvh Benjamin
Avatar billede olebole Juniormester
10. april 2009 - 16:59 #7
Jeg har ingen interesse i at vide, hvem der har skrevet koden.

Jeg mener det, jeg skriver: jQuery er skrevet i gammel, invalid kode.

En validator som W3C's validerer kun din markup kode. At dén validerer betyder absolut ikke, din script- eller DOM-kode er valid.
Det betyder forøvrigt heller ikke, din markup kode er god:
    En valid kode er ikke nødvendigvis god - men en god kode er altid valid

I linje 19 har du jo et input element liggende som 'direkte barn' af et form element. Det kan man ikke. En form kan kun have block-elementer som børn
Avatar billede benjaboy Nybegynder
11. april 2009 - 11:26 #8
Okay. Tak.

Hvordan kan man løse det med jQuery?

Mvh Benjamin
Avatar billede olebole Juniormester
11. april 2009 - 16:32 #9
Hvis der var gode libraries 'derude', ville der være en mulighed for at bruge noget andet og dermed slippe for at lære at kode. Som virkeligheden ser ud idag, ser jeg dog ikke andre muligheder end at skrive noget selv
Avatar billede benjaboy Nybegynder
11. april 2009 - 16:36 #10
Oka. prøver og finde en løsning
Avatar billede benjaboy Nybegynder
12. april 2009 - 12:17 #11
Så har jeg fået løst en af fejlene.
Men jeg for stadig denne fejl:
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /usr/home/web/web335179/getpen.dk/v2/konkurrencer1.php on line 22

Men kun når man ikke deltager i nogle konkurrencer?

Her er kode efter jeg har rettet den første fejl:

<? include("inc/layout.php"); ?>
<? $longPage = 1; print_header("GetPen.dk - Deltag i konkurrencer",false); ?>
<?
    $priser = mysql_query("SELECT * FROM priser");
    $priser = mysql_fetch_array($priser);
?>
    <h1>Deltag i konkurrencer</h1>
<h2>Herunder kan du se hvilke konkurrencer der er på GetPen lige nu!</h2>
    <?
        $getTilbehør = mysql_query("SELECT * FROM produkter WHERE vis = 'ja' AND færdig != 'ja' ORDER BY prio DESC");
        while($fT = mysql_fetch_array($getTilbehør)){
           
            $sqlUser = "SELECT kdid FROM ".$db_prefix."konkurrencedeltager WHERE brugerid = '".$_SESSION[brugerid]."'";
$resultUser = mysql_query($sqlUser) or die(mysql_eeror());
if(mysql_num_rows($resultUser) > 0){
    while($row = mysql_fetch_array($resultUser)){
        $UserArray[] = $row['kdid'];
    }
}
if($_SESSION[brugerid]>=1){
       
        if(in_array($fT[id], $UserArray)){
    ?>
        <div class="tilbehorProduktermed" <? if(!$_SESSION[brugernavn]){echo 'style="background: url(\''.$url.'/images/tilbehoerbg_ikkeloggetind.gif\') no-repeat;"';}?>>
            <img width="105" height="100" align="left" src="<? echo $url; ?>/images/konkurrencer/<? echo $fT[id]; ?>.jpg" title="<? echo $fT[navn]; ?>" />
            <div class="tilbehorProduktDesc">
                    <? echo nl2br($fT[beskrivelse]); ?>
                </div>           

                <div class="tilbehorProduktPris">
                    <b style="font-size:20px;"><? echo $fT[point]; ?></b><br />
                    point <br />
                </div>
        </div>

    <?
            }else{
    ?>
    <form action="<? echo $url; ?>/ordre/bekraefttilbehoer/" method="post">
        <div class="tilbehorProdukt" <? if(!$_SESSION[brugernavn]){echo 'style="background: url(\''.$url.'/images/tilbehoerbg_ikkeloggetind.gif\') no-repeat;"';}elseif($fT[udsolgt] == 1){echo 'style="background: url(\''.$url.'/images/tilbehoerbg_udsolgt.gif\') no-repeat;"';}?>>
            <input type="hidden" name="accessory" value="<? echo $fT[id]; ?>" />
            <img width="105" height="100" align="left" src="<? echo $url; ?>/images/konkurrencer/<? echo $fT[id]; ?>.jpg" title="<? echo $fT[navn]; ?>" />           
                <div class="tilbehorProduktDesc">
                    <? echo nl2br($fT[beskrivelse]); ?>
                </div>           

                <div class="tilbehorProduktPris">
                    <b style="font-size:20px;"><? echo $fT[point]; ?></b><br />
                    point <br /><br />
               
            <? if($fT[udsolgt] == 0 && $_SESSION[brugernavn]){?><input type="image" src="<? echo $url; ?>/images/invisibleknap.gif" class="tilbehorInvisibleKnap" /><? } ?>
          </div>
        </div>
    </form>
   
    <?
        }

            }ELSE{
                ?>
        <div class="tilbehorProdukt" <? echo 'style="background: url(\''.$url.'/images/tilbehoerbg_ikkeloggetind.gif\') no-repeat;"';echo 'style="background: url(\''.$url.'/images/tilbehoerbg_udsolgt.gif\') no-repeat;"';?>>
          <img width="105" height="100" align="left" src="<? echo $url; ?>/images/konkurrencer/<? echo $fT[id]; ?>.jpg" title="<? echo $fT[navn]; ?>" />

                <div class="tilbehorProduktDesc">
                    <? echo nl2br($fT[beskrivelse]); ?>
                </div>           

                <div class="tilbehorProduktPris">
                    <b style="font-size:20px;"><? echo $fT[point]; ?></b><br />
                    point <br />
                </div>
            </div>
    </form>
    <?
            }
              }
    ?>
<br />

<? print_footer(false); ?>
Avatar billede olebole Juniormester
12. april 2009 - 20:53 #12
"in_array() [function.in-array]: Wrong datatype for second argument [...] on line 22"

Så kan $UserArray med andre ord ikke være et array i linjen:
    if(in_array($fT[id], $UserArray)){

Det skyldes vel, at du kun definerer array'et, dersom der bliver fundet rækker i din select query:

if(mysql_num_rows($resultUser) > 0){
    while($row = mysql_fetch_array($resultUser)){
        $UserArray[] = $row['kdid'];
    }
}

Sørg altid for, dine variabler er defineret, før du bruger dem under betingelser  ;o)
Avatar billede benjaboy Nybegynder
13. april 2009 - 09:39 #13
så det vil sige at når der ikke er noget i kdid så får jeg denne fejl?

Hvordan kan jeg så lave den så den altid har en værdi?

Mvh Benjamin
Avatar billede benjaboy Nybegynder
13. april 2009 - 11:13 #14
Tror problemet er løst.

satte bare;

$UserArray[] = 0;

Ind før

if(mysql_num_rows($resultUser) > 0){
    while($row = mysql_fetch_array($resultUser)){
        $UserArray[] = $row['kdid'];
    }
}

Men er det den rigtige måde og gøre det på?

Mvh Benjamin
Avatar billede olebole Juniormester
13. april 2009 - 15:59 #15
Det er en løsning - men hvorfor ikke én gang for alle fortælle PHP-fortolkeren præcis, hvad $UserArray er? Skriver du:
    $UserArray[] = 0;

- sætter du jo det første element i $UserArray til værdien 0, men det er vel et element, du slet ikke skal bruge  =)

Jeg ville helt klart gøre sådan:

$UserArray = array();

if(mysql_num_rows($resultUser) > 0){
    while($row = mysql_fetch_array($resultUser)){
        $UserArray[] = $row['kdid'];
    }
}

"Sørg altid for, dine variabler er defineret, før du bruger dem under betingelser"  ;o)
Avatar billede benjaboy Nybegynder
13. april 2009 - 16:52 #16
Mange tak for hjælpen.

Vil du smide et svar? :)
Avatar billede olebole Juniormester
13. april 2009 - 17:01 #17
Selvtak  ;o)

Det er altid godt at gøre sin kode klar og letlæselig, så andre let kan overtage den og forstætte vedligeholdelsen af den.

Det kan godt være, det 'bare' er en hobbykode, men tro mig: Når du om 6 måneder kommer tilbage til koden, vil du være glad for, du skrev den, så alle umiddelbart kan læse den. Til den tid har du nemlig glemt alt om, hvorfor du skrev, som du gjorde  ;o)
Avatar billede benjaboy Nybegynder
13. april 2009 - 17:19 #18
oka tak for tippet :)
Avatar billede olebole Juniormester
13. april 2009 - 17:22 #19
- og tak for points  ;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