Avatar billede 17196 Nybegynder
06. oktober 2004 - 18:23 Der er 14 kommentarer og
1 løsning

member function on a non-object

<?php
include('db.php');
include('common.php');

if($_COOKIE['loged'] == 'yes') { //if1
  if($_COOKIE['user_level'] == '2') { //if2
      $sql = "SELECT * FROM users WHERE username='$_COOKIE[username]'";
      $result = $db->query($sql);
     
      while($row = $db->fetch($result)) {
            $userid = $row['userid'];
            $email_address = $row['email_address'];
            $username = $row['username'];
            $f_name = $row['f_name'];
            $l_name = $row['l_name'];
            $decrypted_pass = base64_decode($row['decrypted_pass']);
?>

Sådan ser det ud!
Får denne fejl:

Fatal error: Call to a member function on a non-object in /customers/explosif.dk/explosif.dk/httpd.www/user_edit_profile.php on line 8

Linie 8 er denne linie:
$result = $db->query($sql);

Hvad har jeg glemt?
På forhånd tak eksperter :)
Avatar billede erikjacobsen Ekspert
06. oktober 2004 - 18:26 #1
Det kommer an på hvad din db.php laver. Måske

  $db = new ....noget...;
Avatar billede 17196 Nybegynder
06. oktober 2004 - 18:28 #2
$db = mysql_select_db("$database_name", $connection)
    or die("Couldn't select database.");
Avatar billede ldanielsen Nybegynder
06. oktober 2004 - 18:28 #3
$_COOKIE['username'] skulle jeg mene??
Avatar billede ldanielsen Nybegynder
06. oktober 2004 - 18:29 #4
$sql = "SELECT * FROM users WHERE username='$_COOKIE['username']'";
Avatar billede 17196 Nybegynder
06. oktober 2004 - 18:32 #5
ldanielsen:
den giver denne fejl:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /customers/explosif.dk/explosif.dk/httpd.www/user_edit_profile.php on line 7
Avatar billede erikjacobsen Ekspert
06. oktober 2004 - 18:33 #6
Hvis der står
    $db = mysql_select_db("$database_name", $connection) or die("Couldn't select database.");
i din db.php skal du bare
    $result = mysql_query($sql) or die(mysql_error());
Avatar billede 17196 Nybegynder
06. oktober 2004 - 22:07 #7
Query was empty ??? Hmm, det giver jo ingen mening!
Måske noget i denne stil:
$result = mysql_result($sql) or die(mysql_error());
Men så får jeg:
Warning: Wrong parameter count for mysql_result()
Avatar billede erikjacobsen Ekspert
06. oktober 2004 - 22:20 #8
der er vel ingen, der siger du skal bruge mysql_result.
"Query was empty" er fordi $sql er tom. Må vi se din kode?
Avatar billede 17196 Nybegynder
06. oktober 2004 - 22:33 #9
db.php
<?
$to_secs = 120;

$dbhost = 'localhost';
$dbusername = 'explosif_dk';
$dbpasswd = 'XXXXXX';
$database_name = 'explosif_dk';
$sitepath = "http://www.explosif.dk/_test/";                                                                               
$sitename = "explosif.dk";
$adminemail = "xxxx@explosif.dk";

$connection = mysql_pconnect("$dbhost","$dbusername","$dbpasswd")
    or die ("Couldn't connect to server.");

$db = mysql_select_db("$database_name", $connection)
    or die("Couldn't select database.");

?>

user_edit_profile.php: (Hele svineriet)

<?php
include('db.php');
include('common.php');

if($_COOKIE['loged'] == 'yes') { //if1
  if($_COOKIE['user_level'] == '2') { //if2
      $sql = "SELECT * FROM users WHERE username='$_COOKIE[username]'";
      $result = $db->query($sql);

      while($row = $db->fetch($result)) {
            $userid = $row['userid'];
            $email_address = $row['email_address'];
            $username = $row['username'];
            $f_name = $row['f_name'];
            $l_name = $row['l_name'];
            $decrypted_pass = base64_decode($row['decrypted_pass']);
?>
<link href="site_files/css/clean_css_v2.css" rel="stylesheet" type="text/css">

<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td valign="top"><table width="600"  border="0" cellpadding="0" cellspacing="0" class="nws_bar">
        <tr>
          <td width="566"><div align="center">Login</div></td>
        </tr>
      </table>
        <table width="600" border="0" cellpadding="0" cellspacing="0" bgcolor="#585858" class="nws_border">
          <form name=form1 method=post action=register.php>
            <tr>
              <td width="40"><div align="center"><img src="site_files/gfx/pil.gif" width="9" height="9"></div></td>
              <td width="100">First Name</td>
              <td width="460"><input name=first_name type=text class="input_field" id=\"first_name\" value=\"$first_name\"></td>
            </tr>
          </form>
        </table>
        <table width="600" border="0" cellpadding="0" cellspacing="0" bgcolor="#666666" class="nws_border">
          <tr>
            <td width="40"><div align="center"><img src="site_files/gfx/pil.gif" width="9" height="9"></div></td>
            <td width="100">Last Name</td>
            <td width="460"><input name=last_name type=text class="input_field" id=\"last_name\" value=\"$last_name\"></td>
          </tr>
        </table>
        <table width="600" border="0" cellpadding="0" cellspacing="0" bgcolor="#585858" class="nws_border">
          <tr>
            <td width="40"><div align="center"><img src="site_files/gfx/pil.gif" width="9" height="9"></div></td>
            <td width="100">Email Address</td>
            <td width="460"><input name=email_address type=text class="input_field" id=\"email_address\" value=\"$email_address\"></td>
          </tr>
        </table>
        <table width="600" border="0" cellpadding="0" cellspacing="0" bgcolor="#666666" class="nws_border">
          <tr>
            <td>&nbsp;</td>
            <td>Username</td>
            <td><input name=username type=text class="input_field" id=\"username\" value=\"$username\"></td>
          </tr>
          <tr>
            <td width="40"><div align="center"><img src="site_files/gfx/pil.gif" width="9" height="9"></div></td>
            <td width="100">Password</td>
            <td width="460"><input name=password type=text class="input_field" id=\"decrypted_pass\" value=\"$decrypted_pass\"></td>
          </tr>
        </table>
        <table width="600" border="0" cellpadding="0" cellspacing="0" bgcolor="#666666" class="nws_border">
          <tr>
            <td width="40" valign="top"><div align="center"></div></td>
            <td width="100" valign="top">Information about you:</td>
            <td width="460"><textarea name=info cols="40" rows="5" class="textfield" id=info></textarea></td>
          </tr>
        </table>
        <table width="600" border="0" cellpadding="0" cellspacing="0" bgcolor="#585858" class="nws_border">
          <tr>
            <td width="40">&nbsp;</td>
            <td width="100">&nbsp;</td>
            <td width="460"><input name=Submit type=submit class="button_site" value=Update></td>
          </tr>
        </table>
        <div align="left"></div>
        <div align="center"></div></td>
  </tr>
</table>

<? 
}   
  } else {
      echo "<font class=\"text\">You dont have permission to view this page.</font>";
        exit();
  }
} else {
      echo "<font class=\"text\">You are not logged in. Please do so <a href=\"../login.php\">Here</a>.</font>";
          exit();
}
?>
Avatar billede erikjacobsen Ekspert
06. oktober 2004 - 22:36 #10
Men det er jo den oprindelige, der ikke virker pga $result = $db->query($sql);
ikke? Du får en fejl "Query was empty", som jeg troede var den vi skulle have rettet.
Avatar billede 17196 Nybegynder
06. oktober 2004 - 22:41 #11
Sætter jeg $result = mysql_query($sql) or die(mysql_error());
ind istedet for: $result = $db->query($sql);
Får jeg igen denne:
Call to a member function on a non-object in
Avatar billede erikjacobsen Ekspert
06. oktober 2004 - 22:45 #12
Ja, for du har samme problem i
      while($row = $db->fetch($result)) {
som skal være
      while($row = mysql_fetch_array($result)) {
Det hjælper ikke meget at skrive ukritsk af fra eksempler uden at vide
hvad der sker ;)
Avatar billede 17196 Nybegynder
06. oktober 2004 - 23:04 #13
Du mener med andre ord, at man skal kravle før man kan gå? :)
Tjooo, men anyways.. så fungerer det for mig nu! Tusinde tak! HUSK SVAR :D
Avatar billede erikjacobsen Ekspert
06. oktober 2004 - 23:07 #14
Mnjah, det var da sådan jeg lærte at gå.
Men ellers tak, jeg samler slet ikke på point.
Avatar billede 17196 Nybegynder
30. januar 2006 - 00:17 #15
.
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