Avatar billede rasmus-madsen Nybegynder
21. juli 2005 - 20:59 Der er 16 kommentarer og
1 løsning

Script driller?

Hej allesammen.

Har fundet mit gamle cms system fram og leget lidt med.
Har brugt min news del fra den til noget at jeg er igang med.

Men koden driller. Og ved det ikke er admindelen. er tjekket.

Bruger denne kode:
$res2 = mysql_query("SELECT *, date_format(dato,'%e-%m-%Y') as dato FROM news order by dato desc, klokken desc") or die(mysql_error());
if (mysql_num_rows($res2) != 0){
while($row = mysql_fetch_array($res2)) {
$date = $row['dato'];
$time = $row['klokken'];
list($day,$month,$year) = explode('-',$date);
if (strtotime($year.'-'.$month.'-'.$day.' '.$time) > time()) {
} else {
$id[$i] = $row['id'];
$over[$i] = $row['over'];
$Tekst[$i] = $row['tekst'];
$Data[$i] = "<br>( " .$row['dato'] ."/" .$row['klokken'] ." )<br>";
$i++;
}
}

Til at samle alle posterne som:
$over[1] $tekst[1] $data[1]
$over[2] $tekst[2] $data[2]

Osv.

Men den gemmer ikke rigtigt. Det bliver til "" (altså tom streng.).

Det har virket i 2 år snart, og nu virker den ikke :@..

Jeg gør sådan her når jeg udskriver:
$count=0;
If ($i=="0") {
$i=0;
}elseif ($i >= "3") {
$i=3;
}else{
$i=$i;
}
if ($Kode == "") {
while($count < $i) {
$text="";
$tal = "200";
$text=$Tekst[$count];
$text = substr($text, 0, $tal);
$text = strip_tags($text);
$text .= "...";
$strTekst .= "<p>" .$start_newsbox ."<b>" .$over[$count] ."(" .$id[1] .")</b>" .$mellem_newsbox .$Data[$count] ."<br>" .$text ."<br><u><a href=\"news.php?id=" .$id[$count] ."\">Læs mere</a></u>" .$slut_newsbox;
$count++;
}
}else{
...


Kan nogen umildbart se fejlen ?

Ps. har leget med den fejl i 4 timer derfor 100 points.
På forhånd tak
Rasmus Madsen
Avatar billede nielle Nybegynder
21. juli 2005 - 21:05 #1
Du skal i hvert fald rette din:

while ($row = mysql_fetch_array($res2))

- til:

while ($row = mysql_fetch_assoc($res2))

- for ellers dur sådan noget som dette ikke:

$id[$i] = $row['id'];
Avatar billede rasmus-madsen Nybegynder
21. juli 2005 - 21:15 #2
Nu for jeg en t_else fejl :@ ..

Hvis jeg poster det hele, vil du så kigge på det.. Så for du 200 points ?
Avatar billede nielle Nybegynder
21. juli 2005 - 21:19 #3
Det kommer godt nok an på hvor mange linjer kode vi snakker om ... :^|
Avatar billede nielle Nybegynder
21. juli 2005 - 21:25 #4
Blev der ikke angivet et linjenummer sammen med din t_else fejlbesked?
Avatar billede rasmus-madsen Nybegynder
21. juli 2005 - 21:35 #5
135 .. Et lille script :D...

Jo men kan ikke finde hvor den går galt... er lidt sur på det nu.. hehe.. Koden er


<?php
include("tjek2.php");
function getmt()
{
  list($usec, $sec) = explode(" ", microtime());
  return ((float)$usec + (float)$sec);
}
$time_start = getmt();
?>
<head><script type="text/javascript">
function OpenWindow(url) {
    window.open(url,'title','width=350,height=350');
}
</script>
</head>
<?php
include("connect.php");
$res2 = mysql_query("SELECT * FROM opsetning where id = '1'");
$row = mysql_fetch_array($res2);
$Mappe = $row['ind'];
$Design_hent = "design/".$Mappe."/system.php";
function Menu_Data() {
$Kode = "";
if (isset($_GET["id"])) {
$Kode = $_GET["id"];
} else {
$Kode = "";
}
$link_info = "Nyheder";
global $time_start;
global $Design_hent;
global $Mappe;
global $fejl;
global $Design;
global $strMenu_Total;
$Design = "";
$strInside = "";

include($Design_hent);
If ($fejl =="1") {
$strInside .= $start_menu_punkt .$mellem_menu_punkt ."<div class=\"menupunkt\">Du skal være logget ind for faa flere valgmuligheder.<p><br><a href=\"news.php\">--> Nyheder</a><br><a href=logget.php>--> Til kalenderen</a><br><a href=\"login_form.php\">--> Login</a></div>" .$slut_menu_punkt;
}else{
$strIkon = "<img src=\"..\sms2\ikoner\intet.gif\">";
$strInside .= $start_menu_punkt .$strIkon .$mellem_menu_punkt ."<a href=" .$fil ."boksvalg=lektier&klar=ja>Opret Lektie</a>" .$slut_menu_punkt;
$strInside .= $start_menu_punkt .$strIkon .$mellem_menu_punkt ."<a href=" .$fil ."boksvalg=fod&klar=ja>Opret Fødselsdag</a>" .$slut_menu_punkt;
$strInside .= $start_menu_punkt .$strIkon .$mellem_menu_punkt ."<a href=" .$fil ."boksvalg=andet&klar=ja>Opret Andet</a>" .$slut_menu_punkt;
$strInside .= $start_menu_punkt .$strIkon .$mellem_menu_punkt ."<a href=\"news.php\">Nyheder</a>" .$slut_menu_punkt;
$strInside .= $start_menu_punkt .$strIkon .$mellem_menu_punkt ."<a href=logget.php>Til kalenderen</a>" .$slut_menu_punkt;
$strInside .= $start_menu_punkt .$strIkon .$mellem_menu_punkt ."<a href=out.php>Log ud</a>" .$slut_menu_punkt;
}
$res2 = mysql_query("SELECT *, date_format(dato,'%e-%m-%Y') as dato FROM news order by dato desc, klokken desc") or die(mysql_error());
if (mysql_num_rows($res2) != 0){
while ($row = mysql_fetch_assoc($res2))
$date = $row['dato'];
$time = $row['klokken'];
list($day,$month,$year) = explode('-',$date);
if (strtotime($year.'-'.$month.'-'.$day.' '.$time) > time()) {
} else {
$id[$i] = $row['id'];
$over[$i] = $row['over'];
$Tekst[$i] = $row['tekst'];
$Data[$i] = "<br>( " .$row['dato'] ."/" .$row['klokken'] ." )<br>";
$i++;
}
}
$count=0;
If ($i=="0") {
$i=0;
}elseif ($i >= "3") {
$i=3;
}else{
$i=$i;
}
if ($Kode == "") {
while($count < $i) {
$text="";
$tal = "200";
$text=$Tekst[$count];
$text = substr($text, 0, $tal);
$text = strip_tags($text);
$text .= "...";
$strTekst .= "<p>" .$start_newsbox ."<b>" .$over[$count] ."(" .$id[1] .")</b>" .$mellem_newsbox .$Data[$count] ."<br>" .$text ."<br><u><a href=\"news.php?id=" .$id[$count] ."\">Læs mere</a></u>" .$slut_newsbox;
$count++;
}
}else{
$res2 = mysql_query("SELECT *, date_format(dato,'%e-%m-%Y') as dato FROM news where id='$Kode' LIMIT 1") or die(mysql_error());
if (mysql_num_rows($res2) != 0){
$row = mysql_fetch_array($res2);
$date = $row['dato'];
$time = $row['klokken'];


list($day,$month,$year) = explode('-',$date);
if (strtotime($year.'-'.$month.'-'.$day.' '.$time) > time()) {
$strTekst = "Nyheden er endnu ikke aktiv.";
}else{
$oversk = $row['over'];
$Tekstda = $row['tekst'];
$link_info = $oversk;
$Dataid = "<b>" .$link_info ."</b><br>(" .$row['dato'] ."/" .$row['klokken'] .")<p>";
$strTekst .= $Billede .$Dataid .$Tekstda ."<br>" .$slut_box;
}
}else{
$strTekst = "Ingen poster fundet!";
}
If ($Tekst[0] == "") {
$text = "Ingen poster fundet!";
}else{
$text = substr($Tekst[0], 0, 200);
$text = strip_tags($text);
$text = "<p><b>" .$over[0] ."</b><br>" .$text ." . . .<br><u><a href=\"news.php?id=" .$id[0] ."\">Læs mere</a></u>";
}
} else {
$strTekst = "Ingen nyheder endnu. !";
$text = "";
}
// include("stat.php");
$text2 = $start_box .$link_info .$mellem_box;
$strTekst = $text2 .$strTekst;
$News = $start_menu_news .$text .$slut_menu_news;
$strMenu_Total = $style .$start_menu .$strInside .$slut_menu;
$Design = str_replace("<--Style-->", $Mappe, $Design);
$Design = str_replace("<--Title-->", $link_info, $Design);
$Design = str_replace("<--News-->", $News, $Design);
$Design = str_replace("<--Menu-->", $strMenu_Total, $Design);
$Design = str_replace("<--Tekst-->", $strTekst, $Design);
$Design = str_replace("<--Stat-->", $Stat, $Design);
//include("log.php");
}


Menu_Data();
echo $Design;
echo mysql_error();
?>
Avatar billede nielle Nybegynder
21. juli 2005 - 21:50 #6
Jeg har rettet de værste fejl:

<?php
include("tjek2.php");
function getmt()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}
$time_start = getmt();
?>
<head>
<script type="text/javascript">
function OpenWindow(url)
{
    window.open(url,'title','width=350,height=350');
}
</script>
</head>
<?php
include("connect.php");
$res2 = mysql_query("SELECT * FROM opsetning WHERE id = '1'");
$row = mysql_fetch_array($res2);
$Mappe = $row['ind'];
$Design_hent = "design/".$Mappe."/system.php";
function Menu_Data()
{
    $Kode = "";
    if (isset($_GET["id"]))
    {
        $Kode = $_GET["id"];
    }

    $link_info = "Nyheder";
    global $time_start;
    global $Design_hent;
    global $Mappe;
    global $fejl;
    global $Design;
    global $strMenu_Total;
    $Design = "";
    $strInside = "";

    include($Design_hent);

    if ($fejl == "1")
    {
        $strInside .= $start_menu_punkt . $mellem_menu_punkt . "<div class=\"menupunkt\">Du skal være logget ind for faa flere valgmuligheder.<p><br><a href=\"news.php\">--> Nyheder</a><br><a href=logget.php>--> Til kalenderen</a><br><a href=\"login_form.php\">--> Login</a></div>" .$slut_menu_punkt;
    }
    else
    {
        $strIkon = "<img src=\"..\sms2\ikoner\intet.gif\">";
        $strInside .= $start_menu_punkt . $strIkon . $mellem_menu_punkt . "<a href=" . $fil . "boksvalg=lektier&klar=ja>Opret Lektie</a>" . $slut_menu_punkt;
        $strInside .= $start_menu_punkt . $strIkon . $mellem_menu_punkt . "<a href=" . $fil . "boksvalg=fod&klar=ja>Opret Fødselsdag</a>" . $slut_menu_punkt;
        $strInside .= $start_menu_punkt . $strIkon . $mellem_menu_punkt . "<a href=" . $fil . "boksvalg=andet&klar=ja>Opret Andet</a>" . $slut_menu_punkt;
        $strInside .= $start_menu_punkt . $strIkon . $mellem_menu_punkt . "<a href=\"news.php\">Nyheder</a>" . $slut_menu_punkt;
        $strInside .= $start_menu_punkt . $strIkon . $mellem_menu_punkt . "<a href=logget.php>Til kalenderen</a>" . $slut_menu_punkt;
        $strInside .= $start_menu_punkt . $strIkon . $mellem_menu_punkt . "<a href=out.php>Log ud</a>" . $slut_menu_punkt;
    }

    $res2 = mysql_query("SELECT *, date_format(dato,'%e-%m-%Y') AS dato FROM news ORDER BY dato DESC, klokken DESC") or die(mysql_error());
    if (mysql_num_rows($res2) != 0)
    {
        while ($row = mysql_fetch_assoc($res2))
        {
            $date = $row['dato'];
            $time = $row['klokken'];
            list($day, $month, $year) = explode('-', $date);
            if (! strtotime($year.'-'.$month.'-'.$day.' '.$time) > time())
            {
                $id[$i] = $row['id'];
                $over[$i] = $row['over'];
                $Tekst[$i] = $row['tekst'];
                $Data[$i] = "<br>( " . $row['dato'] . "/" . $row['klokken'] . " )<br>";
                $i++;
            }
        }

        $count = 0;

        if ($i == "0")
        {
            $i = 0;
        }
        elseif ($i >= "3")
        {
            $i = 3;
        }

        if ($Kode == "")
        {
            while ($count < $i)
            {
                $text = "";
                $tal = "200";
                $text = $Tekst[$count];
                $text = substr($text, 0, $tal);
                $text = strip_tags($text);
                $text .= "...";
                $strTekst .= "<p>" . $start_newsbox . "<b>" . $over[$count] . "(" . $id[1] . ")</b>" . $mellem_newsbox . $Data[$count] . "<br>" . $text . "<br><u><a href=\"news.php?id=" . $id[$count] . "\">Læs mere</a></u>" . $slut_newsbox;
                $count++;
            }
        }
        else
        {
            $res2 = mysql_query("SELECT *, date_format(dato,'%e-%m-%Y') AS dato FROM news WHERE id='$Kode' LIMIT 1") or die(mysql_error());
            if (mysql_num_rows($res2) != 0)
            {
                $row = mysql_fetch_assoc($res2);
                $date = $row['dato'];
                $time = $row['klokken'];
                list($day, $month, $year) = explode('-', $date);
                if (strtotime($year.'-'.$month.'-'.$day.' '.$time) > time())
                {
                    $strTekst = "Nyheden er endnu ikke aktiv.";
                }
                else
                {
                    $oversk = $row['over'];
                    $Tekstda = $row['tekst'];
                    $link_info = $oversk;
                    $Dataid = "<b>" . $link_info . "</b><br>(" . $row['dato'] . "/" . $row['klokken'] . ")<p>";
                    $strTekst .= $Billede . $Dataid . $Tekstda . "<br>" . $slut_box;
                }
            }
            else
            {
                $strTekst = "Ingen poster fundet!";
            }

            if ($Tekst[0] == "")
            {
                $text = "Ingen poster fundet!";
            }
            else
            {
                $text = substr($Tekst[0], 0, 200);
                $text = strip_tags($text);
                $text = "<p><b>" . $over[0] . "</b><br>" . $text . " . . .<br><u><a href=\"news.php?id=" . $id[0] . "\">Læs mere</a></u>";
            }
        }
        else
        {
            $strTekst = "Ingen nyheder endnu. !";
            $text = "";
        }
// include("stat.php");

        $text2 = $start_box . $link_info . $mellem_box;
        $strTekst = $text2 . $strTekst;
        $News = $start_menu_news . $text . $slut_menu_news;
        $strMenu_Total = $style . $start_menu . $strInside . $slut_menu;
        $Design = str_replace("<--Style-->", $Mappe, $Design);
        $Design = str_replace("<--Title-->", $link_info, $Design);
        $Design = str_replace("<--News-->", $News, $Design);
        $Design = str_replace("<--Menu-->", $strMenu_Total, $Design);
        $Design = str_replace("<--Tekst-->", $strTekst, $Design);
        $Design = str_replace("<--Stat-->", $Stat, $Design);
// include("log.php");
    }

    Menu_Data();
    echo $Design;
    echo mysql_error();
?>
Avatar billede nielle Nybegynder
21. juli 2005 - 21:51 #7
Jeg vil råde dig til at begynde at bruge indrykninger - det gør at der pludselig er mange fejl som bliver synlige helt af sig selv. F.eks. kan jeg se at der mangler en afsluttende tuborg parentes et eller andet sted. Desværre ved jeg ikke lige hvor den skal sidde.
Avatar billede rasmus-madsen Nybegynder
21. juli 2005 - 23:35 #8
Hej igen.. Var lige væk fra computeren.

Fejlen er der stadig.

Parse error: parse error, unexpected T_ELSE in /home/www/web82/html/sms2/news.php on line 140
Avatar billede nielle Nybegynder
22. juli 2005 - 06:43 #9
Kan du ikke lige poste den nye kode - den hvor du har placeret den manglende tunogg-parentes?
Avatar billede rasmus-madsen Nybegynder
22. juli 2005 - 08:31 #10
Det er nøjagtigt den kode som du har lagt her, som jeg bruger..

Den kan ses her:
http://www.smartadd.dk/sms2/news.php
Avatar billede nielle Nybegynder
22. juli 2005 - 08:40 #11
Som jeg skrev 21/07-2005 21:51:40 så mangler der en tuborg-parentes et eller andet sted i koden. Jeg ved ikke hvor den skal sidde (omend jeg kan gætte) idet dette afhænger af hvad det er du vil med din kode. Derfor må du selv indsætte den det rigtige sted. Uden den parentes så fejler koden selvfølgelig.
Avatar billede nielle Nybegynder
28. juli 2005 - 21:46 #12
Har du fået kigget på det?
Avatar billede nielle Nybegynder
08. august 2005 - 19:42 #13
?
Avatar billede rasmus-madsen Nybegynder
21. august 2005 - 12:45 #14
Fandt aldrig fejlen :( ..

Laver det fra bunden igen..

læg et svar.
Avatar billede nielle Nybegynder
21. august 2005 - 21:31 #15
Rasmus-madsen> Jeg vil da stadig gerne hjælpe dig med at finde problemet, men det kræver jo altså at du giver noget respons.

Som jeg påpegede, så mangler der i hvertfald en slut-tuborg et eller andet sted. Uden denne parentes  så vil koden slet ikke kompile. Jeg ved ikke hvor parentesen skal ind ... jeg ved bare at den mangler. Du er selv den bedste til at overskue din kode, og derfor burde du have en vis chance for at spotte hvor det er du har glemt den. Odds er rimeligt store for at det er det eneste der skal til.

For at hjælpe med at gøre koden overskuelig så er det et ekstremt vigtigt værktøj at du begynder at bruge indrykninger. På den måde kan du hurtigt se hvor en given blok kode starter og hvor den slutter. En anden god ting er at begynde at indsætte kommentarer som forklare hvad det er koden skal gøre. Da der ikke er en eneste kommentar i den kode du har postet så har jeg ikke mange chancer for at gennemskue hvad det egentlig er du ønsker at koden skal gøre, og det gør jo ikke fejlfindingen nemmere.

Som sagt vil jeg stadigvæk gerne hjælpe dig med at finde fejlen, men hvis du alligevel helst foretrækker at skrive koden om så lægger jeg da gerne et svar for den hjælp, og de råd, jeg allerederede har givet.

Svar :^)

(og *husk* nu: Indrykninger og kommentarer!)
Avatar billede rasmus-madsen Nybegynder
19. september 2005 - 17:45 #16
Takker for hjælpen.

Laver det om, når jeg har lidt bedre tid.
Avatar billede nielle Nybegynder
19. september 2005 - 18:55 #17
Takker for point :^)
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