Avatar billede mr.badass Nybegynder
04. marts 2004 - 15:39 Der er 24 kommentarer og
1 løsning

Problem men en tagwall & mysql

Hejsa

Jeg har et problem med min tagwall, hver gang jeg klikker på tagwall, så forsvinder hele min højre side, da den kommer med en fejl

Min php sætning i tagwall filen ser sådan her ud:

<?php

//MySQL server configuration
$host = "xxxxxx"; //Enter the address to your MySQL server
$user = "xxxxx"; //Enter the user to your MySQL server
$pass = "xxxxxx"; //Enter the password to your user
$db = "xxxxxx"; //Enter the database on your MySQL server where you created the table from the structure.sql

//Do not modify anything under this line!

//Get the input typed in the form
$name = $_POST['name'];
$email = $_POST['email'];
$text = $_POST['text'];
$time = date("d/m-Y H:i:s");

//If nothing was typed in the name field, then the Name will be replaced with 'anonymous'
if ($_POST['name'] == "Name") {
    $name = "Guest";
}

//If nothing was typed in the E-mail field, then the E-mail will be replaced with null@null
if ($_POST['email'] == "E-mail") {
    $email = "";
}

//Connect to the MySQL server
mysql_connect("$host1", "$user1", "$pass1");

//Select a database
mysql_select_db($db1);

//If the text field isn't empty, then this code will be executed:
//If an URL was typed in the text field, then it will be replaced with <a href='http://somedomain.com'>http://somedomain.com</a>
//If an < or > has been typed, it will be replaced with &lt; or &gt;
//Insert the data into the MySQL database
if(!empty($_POST['text'])){
    $text = ereg_replace("<", "&lt;", $text);
    $text = ereg_replace(">", "&gt;", $text);
    $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"\\0\">\\0</a>", $text);
    $insertSQL = "insert into tagwall (name, email, time, text) values ('$name', '$email', '$time', '$text')";
    mysql_query($insertSQL);
}

//Get all the data from the MySQL database, sort by the row 'id' and limit the rows that's being printed to 20
//Make an array from the $result variable
//Convert the 'new line's to <br>
$result = mysql_query("SELECT * FROM tagwall ORDER BY id DESC LIMIT 10") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
    echo "<font family='Trebuchet MS, sans-serif' size='2'><b><a href='mailto:".$row['email']."'>".$row['name']."</a></b> - ".$row['time']."<br>";
    echo nl2br($row['text']);
    echo "<hr>";
}

//Close the connection to the MySQL server
mysql_close();
?>

Fejlen der kommer er:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/web/web4647/includes/sql_layer.php on line 36

Jeg tror det har noget med sql_layer.php at gøre, for begge filer bruger den samme linie:
Tagwall.php($row = mysql_fetch_array($result)) {
sql_layer.php - linie 36: $row = mysql_fetch_row($res);

Jeg er sikker på at det er fejlen, men kan jeg ik omskriv min tagwall.php til noget andet, men stadig få den samme effekt?

Please hjælp mig....! :S
Avatar billede mr.badass Nybegynder
04. marts 2004 - 15:41 #1
Tjek evt. www.weirdweapon.com, for at se fejlen, klik på tagwall på venstre side, så kommer fejlen!
Avatar billede Slawomir Seniormester
04. marts 2004 - 15:44 #2
og hvad er fejlen??

for mig vriker det fint
Avatar billede detox Nybegynder
04. marts 2004 - 15:57 #3
Hvordan ser forespørgslen i 'sql_layer.php' ud, altså linierne over linie 36?
Avatar billede mr.badass Nybegynder
04. marts 2004 - 16:22 #4
<?php

$toplist = mysql_query("select date, subject from {$GLOBALS['prefix']}_articles order by date DESC LIMIT 0,6");

function sql_logout($id="")
{
global $dbtype;
if ($dbtype=="MySQL") {
        $dbi=@mysql_close($id);
        return $dbi;
    }
}

function sql_query($query, $id="")
{
global $dbtype;
if ($dbtype=="MySQL") {
        $res=@mysql_query($query);
        return $res;
    } 
}     

function sql_num_rows($res="")
{
global $dbtype;
if ($dbtype=="MySQL") {
    $rows=mysql_num_rows($res);
    return $rows;
    }
}

function sql_fetch_row($res, $nr="")   
{                                   
global $dbtype;                     
if ($dbtype=="MySQL") {
        $row = mysql_fetch_row($res);
        return $row;
    }
}
Avatar billede mr.badass Nybegynder
04. marts 2004 - 16:22 #5
Burgerking, har du prøvet at trykke på tagwall???
Avatar billede detox Nybegynder
04. marts 2004 - 16:24 #6
Jeg tror du må tjekke at du ikke er kommet til at bruge variablen: $res til noget andet.
Avatar billede detox Nybegynder
04. marts 2004 - 16:47 #7
Eller hvilken parameter du nu bruger når du kalder denne funktion:

function sql_fetch_row($res, $nr="") 
{                                 
global $dbtype;                   
if ($dbtype=="MySQL") {
        $row = mysql_fetch_row($res);
        return $row;
    }
}
Avatar billede mr.badass Nybegynder
04. marts 2004 - 16:58 #8
Men kan jeg omskrive den jeg har i min tagwall. Ved ik hvilken parameter jeg bruger, når jeg kalder funktionen. Oversæt lige parameter til dansk :D
Avatar billede detox Nybegynder
04. marts 2004 - 17:09 #9
parameter = variabel du bruger når du kalder funktion. Du kalder fx denne med noget i den her stil:

$row = sql_fetch_row($parameter);

eller:

while($row = sql_fetch_row($parameter)) {
Avatar billede Slettet bruger
04. marts 2004 - 22:41 #10
Funktionen i sql_layer.php bliver slet ikke kaldt, og sql_layer.php bliver ikke inkluderet.

Som jeg sagde i den tidligere tråd, så er det ikke i den kode, du har vist, at fejlen ligger.
Avatar billede detox Nybegynder
04. marts 2004 - 23:03 #11
sandbox -> Det tyder fejlkoden her da ellers på:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/web/web4647/includes/sql_layer.php on line 36
Avatar billede Slettet bruger
04. marts 2004 - 23:36 #12
Ja, men fejlen er ikke i den kode, han har vist os. Linie 36 i sql_layer.php er:

function sql_fetch_row($res, $nr="")
{                               
global $dbtype;                 
if ($dbtype=="MySQL") {
        $row = mysql_fetch_row($res); // Dette er linie 36
        return $row;
    }
}

Og, når filen ikke bliver inkluderet af den kode vi har set, og funktionen ikke bliver kaldt af den kode vi har set, så ligger fejlen et andet sted.

I den tidligere tråd sagde han, at han ville poste koden, hvor den blev kaldt, men derefter lukkede han bare.
Avatar billede detox Nybegynder
04. marts 2004 - 23:47 #13
sandbox -> Ja, så er vi enige. Jeg efterlyser osse kaldet af funktionen, men det er svært at hjælpe, hvis spørgsmålet bliver lukket eller der ingen respons er.
Avatar billede Slettet bruger
04. marts 2004 - 23:53 #14
Det gamle spørgsmål er forresten: http://www.eksperten.dk/spm/466187
Avatar billede mr.badass Nybegynder
05. marts 2004 - 09:14 #15
Hvad er det i vil have mig til? Finde det stk. kode, hvor min parameter $row bliver kaldt eller hva? :)
Avatar billede mr.badass Nybegynder
05. marts 2004 - 09:21 #16
sql_layer.php er include i theme_layer.php
Her er alt koden fra theme_layer.php:
Def_layer.php er bare define af forskellige tekster ik andet.

<?php

include("includes/sql_layer.php");
include("includes/def_layer.php");

//Compatibility Layer with phpNuke
$slogan = $smessage;
$nukeurl = $url;

$user = $username;
function cookiedecode($user){
global $cookie,$current_un;
$cookie[1] = $current_un;
}
function is_user(){
return null;
}

function ml_ftime($a="",$b=""){
    if($a=="_DATETIMEBRIEF"){
        $a="%b %d, %Y - %I:%M %p";
    }
    return strftime($a,$b);
}

function GetUserTime($time) {
    return($time);
}

function pnVarCleanFromInput(){
}


function themes_get_language($script = 'global')
{
    global $thename, $Default_Theme, $language1;
 
    if($language1==""){
          $language1="eng";
    }
    if($script==""){
          $script="global";
    }

    if (file_exists($file='themes/$thename/lang/$currentlang/$script.php'))
      @include $file;
    elseif (file_exists($file='themes/$thename/lang/$language1/$script.php'))
      @include $file;
}

function pnbannerdisplay() {
}

function pnconfiggetvar($varname) {
return $GLOBALS['{$varname}'];
}


function title($text) {
    OpenTable();
    echo "<center><font class=\"title\"><b>$text</b></font></center>";
    CloseTable();
    echo "<BR>";
}

function themecenterbox($title, $content="") {
    OpenTable();
    echo "<center><fon class=\"option\"><b>$title</b></font></center><BR>"
    ."$content";
    CloseTable();
    echo "<BR>";
}



function getTopics($s_sid) {
    global $topicname, $topicimage, $topictext, $prefix, $dbi;
    $sid = $s_sid;
    $result = sql_query("SELECT topic FROM {$prefix}_stories where sid=$sid", $dbi);
    list($topic) = sql_fetch_row($result, $dbi);
    $result = sql_query("SELECT topicid, topicname, topicimage, topictext FROM {$prefix}_articles where topicid=$topic", $dbi);
    list($topicid, $topicname, $topicimage, $topictext) = sql_fetch_row($result, $dbi);
}

function modulefile($area,  $pos,$type,$file, $side=0, $access) {
    $file_check = @file("modules/$access/$file.php");
    if (!$file_check) {
        $content = _BLOCK_NOTFOUND;
    } else {
        include("modules/$access/$file.php");
    }
    if ($content == "") {
        $content = _BLOCK_NOCONTENT;
    }
    if($type==0){
        if ($side == 0) {
            themesidebox($area, $content);
        } else {
            themecenterbox($area, $content);
        }
    } else {
        if ($side == 0) {
            $block[title] = $area;
            $block[content] = $content;
            $block[position] =  $pos;
            themesidebox($block, $content);
        } else {
            $block[position] =  $pos;
            $block[title] = $area;
            $block[content] = $content;
            themecenterbox($block, $content);
        }
    }
}

function render_blocks($side, $title, $content, $area, $url, $type, $file="", $access="") {
    if ($file!="" && $content == "" && $title == "") {
        if (!$access) {
            $access = "public";
        }
        if ($side == "c") {
        modulefile($area, $side,$type,$file, 1, $access);
        } else {
        modulefile($area, $side,$type,$file, 0, $access);
        }
    } else {
        if ($side == "c") {
            headlines($area,$side,$type,1);
        } else {
            headlines($area,$side,$type);
        }
    }
}

function blocks($side="Left",$type=0) {
    global $prefix, $dbi, $user_check, $current_un, $current_pw;

    if (strtolower($side) == "left") {
    $pos = "l";
    } elseif (strtolower($side) == "right") {
    $pos = "r";
    }  elseif (strtolower($side) == "center") {
    $pos = "c";
    }
    if($user_check <= 5 && $user_check >= 1){
        $access="members";
        if($user_check == 1 || $user_check == 2) {
            $accessa="admin";
        }
    } elseif ($user_check=="") {
        $user_check = 6;
    }
    $module_num = sql_query("SELECT module_names,module_position,module_access from {$prefix}_system where _module_list=1 AND module_active=1 AND (module_access>=$user_check OR module_access=0) AND module_position='$pos' ORDER BY module_order ASC");
   
    while(list($area,$pos,$access) = sql_fetch_row($module_num)) {
        $resultlist = sql_query("SELECT title, url, file from {$prefix}_modules where area='$area' ORDER BY listorder ASC");
        list($title, $url, $file) = sql_fetch_row($resultlist);
        render_blocks($pos, $title, $content, $area, $url, $type, $file, $access);
    }
}

function headlines($area, $side, $type, $cenbox=0) {
    global $prefix, $dbi;
    $result = sql_query("select title, content, url, mid, file from {$prefix}_modules where area='$area' AND active=1 ORDER BY listorder ASC", $dbi);
    while(list($title, $ccontent, $url, $mid, $file) = sql_fetch_row($result, $dbi)){
        if ($ccontent == "" && $url == "") {
            $content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"?mid=$mid\">$title</a><BR>";
        } elseif ($ccontent != "" && $title != "") {
            $content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"?mid=$mid\">$title</a><BR>";
        } elseif ($url != "") {
            if(preg_match("/<a href=/",$url)){
                $content .= "<strong><big>&middot;</big></strong>&nbsp;$url<BR>";
            } else {
            $content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"$url\">$title</a><BR>";
            }
        } elseif ($ccontent != "" && $title == "") {
            if(eregi("<?php",$ccontent)){
                $ccontent = preg_replace("[\<\?php]","",$ccontent);
                $ccontent = preg_replace("[\?\>]","",$ccontent);
                eval($ccontent);
            } else {
                $content .= $ccontent;
            }
        }
    }
    global $postnuke_theme,$pos;
    if($type==0){
        if ($cenbox == 0) {
            themesidebox($area, $content);
        } else {
            themecenterbox($area, $content);
        }
    } else {
        if ($cenbox == 0) {
            $block[title] = $area;
            $block[content] = $content."<BR>";
            $block[position] =  $side;
            themesidebox($block, $content);
        } else {
            $block[title] = $area;
            $block[content] = $content."<BR>";
            $block[position] =  $side;
            themecenterbox($block, $content);
        }
    }
}

function adminblock() {
   
}

function loginbox() {
    global $user;
    $title = "Member Login";
    $boxstuff = "<form action=\"\" method=\"post\">"
                ."<center><font class=\"content\">Username<BR>"
                ."<input type=\"text\" name=\"username\" size=\"8\" maxlength=\"25\"><BR>"
                ."Password<BR>"
                ."<input type=\"password\" name=\"password\" size=\"8\" maxlength=\"20\"><BR>"
                ."<input type=\"submit\" name=\"accLogin\"value=\"Login\"></font></center></form>";
    themesidebox($title, $boxstuff);
}

function userblock() {
    global $user, $cookie, $prefix, $dbi, $user_prefix;
    if((is_user($user)) AND ($cookie[8])) {
    $getblock = sql_query("select ublock from ".$user_prefix."_users where uid='$cookie[0]'", $dbi);
    $title = ""._MENUFOR." $cookie[1]";
    list($ublock) = sql_fetch_row($getblock, $dbi);
    themesidebox($title, $ublock);
    }
}

?>
Avatar billede detox Nybegynder
05. marts 2004 - 12:15 #17
Hvis jeg var dig vil jeg midlertidigt ændre denne funktion:

function sql_query($query, $id="")
{
global $dbtype;
if ($dbtype=="MySQL") {
        $res=@mysql_query($query);
        return $res;
    }
}   

til:

function sql_query($query, $id="")
{
global $dbtype;
if ($dbtype=="MySQL") {
        $res=mysql_query($query) or die('QUERY: '.$query.' - Giver denne fejl: '.mysql_error());
        return $res;
    }
}   

og så se om du ikke får en brugbar fejlmeddelelse.
Avatar billede mr.badass Nybegynder
05. marts 2004 - 13:16 #18
Når jeg retter filen, så kommer den med dette:

Warning: mysql_query(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /home/web/web4647/includes/sql_layer.php on line 18

Warning: mysql_query(): A link to the server could not be established in /home/web/web4647/includes/sql_layer.php on line 18
QUERY: SELECT module_names,module_position,module_access from web_system where _module_list=1 AND module_active=1 AND (module_access>=1 OR module_access=0) AND module_position='r' ORDER BY module_order ASC - Giver denne fejl: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Avatar billede detox Nybegynder
05. marts 2004 - 13:42 #19
Ok, så har vi fastslået at den ikke kan connecte til din database. I den kode du har vist indtil videre er der heller ingen steder, hvor du åbner en forbindelse til databasen.
Kaldet der går galt ligger i funktionen: 'blocks', så nu mangler vi at se den kode der kalder funktionen: 'blocks'. Sandsynligvis noget i stil med:
blocks('Right');
Avatar billede mr.badass Nybegynder
05. marts 2004 - 14:56 #20
Her er noget fra Theme.php, som omhandler Blocks.

/************************************************************/
/* Function themesidebox()                                  */
/*                                                          */
/* Control look of your blocks. Just simple.                */
/************************************************************/

function themesidebox($title, $content) {

    $tmpl_file = "themes/CoNCePT/blocks.html";
    $thefile = implode("", file($tmpl_file));
    $thefile = addslashes($thefile);
    $thefile = "\$r_file=\"".$thefile."\";";
    eval($thefile);
    print $r_file;
}
Avatar billede detox Nybegynder
05. marts 2004 - 15:38 #21
Ja, men der er ikke umiddelbart nogen kald til blocks(). Jeg har et andet forslag, prøv at fjerne denne linie (fra dit script allerøverst):

mysql_close();

Det kan være den utilsigtet får lukket en forbindelse, som du skal bruge senere i scriptet. Forbindelsen bliver under alle omstændigheder automatisk lukket når scriptet er færdigafviklet.
Avatar billede mr.badass Nybegynder
05. marts 2004 - 15:52 #22
DU ER EN MESTER, HAR FJERNET MYSQL_CLOSE(); OG NU FUNGERE DET KANON :D Gider du tjekke spørgsmål http://www.eksperten.dk/spm/473537

Det med at teksten ik vil ind i boksen!
Avatar billede mr.badass Nybegynder
05. marts 2004 - 15:52 #23
Skriv lige et svar! så du kan få dine points :D
Avatar billede detox Nybegynder
05. marts 2004 - 16:04 #24
I øvrigt ser det heller ikke ud til at du bruger disse linier:
//MySQL server configuration
$host = "xxxxxx"; //Enter the address to your MySQL server
$user = "xxxxx"; //Enter the user to your MySQL server
$pass = "xxxxxx"; //Enter the password to your user
$db = "xxxxxx"; //Enter the database on your MySQL server where you created the table from the structure.sql

I hvert fald bruger du:
$host1, $user1, $pass1 og $db1 længere nede.

Muligvis kan du osse slette disse linier, hvis forbindelsen alligevel er åben i forvejen:
//Connect to the MySQL server
mysql_connect("$host1", "$user1", "$pass1");

//Select a database
mysql_select_db($db1);

Det ser da ud til at du har fået noget ind i boksen?
Avatar billede mr.badass Nybegynder
05. marts 2004 - 16:09 #25
Ja, men hvordan får jeg det hele derind, jeg skal bruge $content, ellers skriver den alt min tekst udenfor boksen!
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