Avatar billede forgottentribute Nybegynder
12. februar 2007 - 23:07 Der er 21 kommentarer

Problemer med kode og database

Jeg har problemer med denne kode.
Jeg kan sagtens få hentet oplysninger fra databasen, men når jeg så vil gemme de nye oplysninger, gemmer den dem ikke. Men henter de gamle oplysninger ind igen

Kan i hjælpe mig ?

<div class="center">
        <div style="margin: 1px;background: #F6F6F6 url('heeeh.jpg');color:#fff;font-weight:bold;"><div style="padding: 5px;">
        Min side</div></div></div>
<div style="padding: 5px;">

<?
  if($_SESSION["id"] != "" AND $_SESSION["username"] != "" AND $_SESSION["email"] != "" AND $_SESSION["rank"] > 1) {
?>


<div style="float:right;margin-left:5px;clear:both;">
<div class="rightmenu">
<div style="margin: 1px;background-color: #F6F6F6;">
<div style="margin-bottom: 5px;background: #F6F6F6 url('heeeh.jpg');color:#fff;border-bottom:1px solid #fff;font-weight:bold;"><div style="padding: 5px;">
Menu<br />
</div></div><div id="menu10"><div style="padding: 5px;padding-top:0px;">
<?

  echo "<a href=\"?p=mypage\">Min profil</a><br />";
  echo "<a href=\"?p=mypage&amp;o=edit\">Opdater oplysninger</a><br /><br />";
  echo "<a href=\"?p=search\">Søg</a><br /><br />";
  echo "<a href=\"?p=mailbox&amp;o=incoming\">Indbakke</a><br />";
  echo "<a href=\"?p=mailbox&amp;o=outgoing\">Udbakke</a><br />";
  echo "<a href=\"?p=mailbox&amp;o=newpm\">Ny pm</a><br /><br />";

if($_SESSION["rank"] >= 3) {
  echo "<a href=\"?p=mypage&amp;o=todo\">Todo</a><br />";
  echo "<a href=\"?p=mypage&amp;o=news\">Nyheder</a><br />";
  echo "<a href=\"?p=mypage&amp;o=categories\">Kategorier</a><br />";
  echo "<a href=\"?p=mypage&amp;o=shout\">Shout-tekst</a><br />";
  echo "<a href=\"?p=mypage&amp;o=users\">Brugere</a><br />";
  echo "<a href=\"?p=mypage&amp;o=articles\">Artikler</a><br />";
  echo "<a href=\"?p=mypage&amp;o=links\">Links</a><br /><br />";
}

  echo "</div></div></div></div></div>";

if($_GET["o"] == "") {

  echo "Hej ".$_SESSION["username"];

}elseif($_GET[o] == "todo" AND $_SESSION["rank"] >= 3) {

  connect();

if($_POST[todo_text] != "" AND $_POST[todo_link] != "") {

  mysql_query("UPDATE admin_stuff SET text='$_POST[todo_text]', link='$_POST[todo_link]' WHERE id='1'");

}elseif($_POST[todo_text] == "" AND $_POST[todo_link] == "") {
  echo "Du mangler at indtaste noget i feltet.";
}


  $res = mysql_query("SELECT * FROM admin_stuff WHERE id='1'");
  $row = mysql_fetch_array($res);

  echo "<form action=\"./?p=mypage&o=todo\" method=\"post\">";
  echo "<table style=\"width:100px;\">";
  echo "<tr><td>Titel</td><td><input type=\"text\" name=\"todo_text\" value=\"".$row[text]."\"></td></tr>";
  echo "<tr><td>Link</td><td><input type=\"text\" name=\"todo_link\" value=\"".$row[link]."\"></td></tr>";
  echo "<tr><td><input type=\"submit\" value=\"Opdater\"></td></tr>";
  echo "</table>";
  echo "</form>";

}elseif($_GET["o"] == "edit") {

connect();

if($_POST["edit_update"] == "update") {

  if($_POST["edit_passworda"] OR $_POST["edit_passwordb"] OR $_POST["edit_showemail"] OR $_POST["edit_newsletter"] OR $_POST["edit_realname"] OR $_POST["edit_location"] OR $_POST["edit_homepage"] OR $_POST["edit_msn"] OR $_POST["edit_yim"] OR $_POST["edit_aim"] OR $_POST["edit_icq"] OR $_POST["edit_signature"] OR $_POST["edit_description"]) {

      $date = mktime(0,0,0,$_POST["month"],$_POST["date"],$_POST["year"]);
      $realname = stripslashes(strip_tags($_POST["edit_realname"]));
      $location = stripslashes(strip_tags($_POST["edit_location"]));
      $msn = stripslashes(strip_tags($_POST["edit_msn"]));
      $aim = stripslashes(strip_tags($_POST["edit_aim"]));
      $yim = stripslashes(strip_tags($_POST["edit_yim"]));
      $icq = stripslashes(strip_tags($_POST["edit_icq"]));
      $www = strip_tags($_POST["edit_homepage"]);
      $description = strip_tags($_POST["edit_description"]);
      $signature = strip_tags($_POST["edit_signature"]);
      if ($_POST["edit_newsletter"] == 1) {
          $newsletter = 1;
      }
      else {
    $newsletter = 0;
      }
        $month_1 = 31;
        $month_2 = 29;
        $month_3 = 31;
        $month_4 = 30;
        $month_5 = 31;
        $month_6 = 30;
        $month_7 = 31;
        $month_8 = 31;
        $month_9 = 30;
        $month_10 = 31;
        $month_11 = 30;
        $month_12 = 31;



        $month_calc = $$_POST[birth_m];

        if($_POST[birth_d] <= $month_calc) {

            if($_POST["edit_passworda"] == $_POST["edit_passwordb"] AND $_POST["edit_passworda"] != ""){

            $mdfive = md5($_POST["edit_passworda"]);
            mysql_query("UPDATE users SET password='$mdfive' WHERE id='$_SESSION[id]'") or die(mysql_error());

            }elseif($_POST["edit_passworda"] != "" OR $_POST["edit_passworda"] != $_POST["edit_passwordb"]){

            $errortext1 = "De to indtastede kodeord var ikke ens.";

            }

            $format_signature = format($signature);
            $format_description = format($description);
            mysql_query("UPDATE users SET newsletter='$newsletter',showemail='$_POST[edit_showemail]', msn='$msn', icq='$icq', yim='$yim', aim='$aim', signature='$format_signature', realname='$realname', birth_d='$_POST[birth_d]', birth_m='$birth_m', birth_y='$birth_y', location='$location', description='$format_description', homepage='$www' WHERE id='$id'") or die(mysql_error());

        }else{

            $errortext = "Du har indtastet forkert fødselsdags dato";
        }

  }else{
      $errortext = "Du skal udfylde nogle felter før du kan opdatere dine oplysninger";
  }

}

$res = mysql_query("SELECT * FROM users WHERE id='$id'");
$row = mysql_fetch_array($res);

  echo "<table style=\"width:400px;\">";
  echo "<form action=\"./?p=mypage&o=edit\" method=\"POST\">";
  echo "<tr>";
  echo "<td>Brugernavn:</td><td style=\"width:150px;\"><input type=\"text\" name=\"edit_username\" value=\"".$row[username]."\" disabled=\"disabled\" /></td><td></td>";
  echo "</tr><tr>";
  echo "<td>Kodeord:</td><td><input type=\"password\" name=\"edit_passworda\" value=\"\" /></td><td>(Lad felterne være tomme hvis ikke du vil ændre dit kodeord)</td>";
  echo "</tr><tr>";
  echo "<td>Kodeord igen:</td><td><input type=\"password\" name=\"edit_passwordb\" value=\"\" /></td><td>"; if($errortext1 != ""){ echo "<font style=\"color: #CC0000;\">(".$errortext1.")</font>"; }else{ echo "(For at sikre du har tastet rigtigt)"; } echo "</td>";
  echo "</tr><tr>";
  echo "<td><br />&nbsp;</td></tr><tr>";
  echo "<td>Navn:</td><td><input type=\"text\" name=\"edit_realname\" value=\"".$row[realname]."\" /></td><td></td>";
  echo "</tr><tr>";
  echo "<td>Alder:</td><td>";




      echo "<select name=\"birth_d\">";
      $d = 1;
      while($d <= 31) {

        echo "<option value='".$d."'";
        if ($d == $row['birth_d']) { echo " selected"; }
        echo ">".$d."</option>";
        $d = $d+1;
      }
      echo "</select>";

      echo "<select name=\"birth_m\">";
      $m = 1;
      while($m <= 12) {
        echo "<option value=\"".$m."\"";
        if ($m == $row['birth_m']) { echo " selected"; }
        echo ">".$m."</option>";
        $m = $m+1;
      }
      echo "</select>";

      echo "<select name=\"birth_y\">";
      $y = 1930;
      while($y <= 2000) {
        echo "<option value=\"".$y."\"";
        if ($y == $row['birth_y']) { echo " selected"; }
        echo ">".$y."</option>";
        $y = $y+1;
      }
      echo "</select>";

  echo "</td><td>(dd/mm/yyyy)</td>";
  echo "</tr><tr>";
  echo "<td>Bopæl:</td><td><input type=\"text\" name=\"edit_location\" value=\"".$row[location]."\" /></td><td></td>";
  echo "</tr><tr>";
  echo "<td>Hjemmeside:</td><td><input type=\"text\" name=\"edit_homepage\" value=\"".$row[homepage]."\" /></td><td>(husk http://)</td>";
  echo "</tr><tr>";
  echo "<td>Windows IM:</td><td><input type=\"text\" name=\"edit_msn\" value=\"".$row[msn]."\" /></td><td></td>";
  echo "</tr><tr>";
  echo "<td>Yahoo IM:</td><td><input type=\"text\" name=\"edit_yim\" value=\"".$row[yim]."\" /></td><td></td>";
  echo "</tr><tr>";
  echo "<td>AOL IM:</td><td><input type=\"text\" name=\"edit_aim\" value=\"".$row[aim]."\" /></td><td></td>";
  echo "</tr><tr>";
  echo "<td>ICQ:</td><td><input type=\"text\" name=\"edit_icq\" value=\"".$row[icq]."\" /></td><td></td>";
  echo "</tr><tr>";
  echo "<td>Signatur:</td><td><input type=\"text\" name=\"edit_signature\" value=\"".$row[signature]."\" maxlength=\"255\" /></td><td> (Her kan der bruges tekstkoder)</td>";
  echo "</tr><tr>";
  echo "<td>Nyhedsbrev:</td><td><input name=\"edit_newsletter\" value=\"1\" type=\"radio\" "; if($row[newsletter] == 1){ echo "checked=\"checked\""; } echo " >Ja <input name=\"edit_newsletter\" value=\"0\" type=\"radio\" "; if($row[newsletter] == 0){ echo "checked=\"checked\""; } echo " >Nej</td><td></td>";
  echo "</tr><tr>";
  echo "<td>Vis email:</td><td><input name=\"edit_showemail\" value=\"1\" type=\"radio\" "; if($row[showemail] == 1){ echo "checked=\"checked\""; } echo " \" >Ja <input name=\"edit_showemail\" value=\"0\" type=\"radio\""; if($row[showemail] == 0){ echo "checked=\"checked\""; } echo ">Nej</td>";
  echo "</tr>";
  echo "</table>";
  echo "<table style=\"width:420px;\">";
  echo "<tr><td>Fritekst:</td><td> (Her kan der bruges tekstkoder)</td></tr>";
  echo "<tr><td></td><td><textarea name=\"edit_description\" rows=\"0\" cols=\"0\" style=\"width: 70%; height: 100px;margin-top:2px;\">".$row[description]."</textarea></td></tr>";
  echo "</table>";
  echo "<input type=\"hidden\" name=\"edit_update\" value=\"update\" />";
  echo "<input type=\"submit\" value=\"Udfør\" class=\"submit\" style=\"float:left;\" />";
  echo "</form>";

}

}else{

  echo "Du skal være logget ind for at benytte denne side.";

}
?>

</div>


Mange tak herfra (;
Avatar billede erikjacobsen Ekspert
12. februar 2007 - 23:10 #1
Kan det have noget at gøre med at du siger "UPDATE ... WHERE id=1" ?
Avatar billede forgottentribute Nybegynder
12. februar 2007 - 23:21 #2
}elseif($_GET["o"] == "edit") {

Herefter er det problemerne er . I denne sektion
Avatar billede forgottentribute Nybegynder
16. februar 2007 - 10:15 #3
Ingen hjælp ?
Avatar billede erikjacobsen Ekspert
16. februar 2007 - 10:23 #4
Det er vel bare fordi der ikke står noget i $id ?
Avatar billede forgottentribute Nybegynder
17. februar 2007 - 01:10 #5
Ja det fandt jeg ud af tak (;

Men nu har jeg bare det problem at når jeg prøver på at få den til at selecte fødselsdags datoen fra databasen i felterne..

Hvis jeg indsætter dette virker det ikke mere:

      echo "<select name=\"birth_d\">";
      $d = 1;
      while($d <= 31) {

        echo "<option value='".$d."'";
        if ($d === $row['birth_d']) { echo " selected"; }
        echo ">".$d."</option>";
        $d = $d+1;
      }
      echo "</select>";

      echo "<select name=\"birth_m\">";
      $m = 1;
      while($m <= 12) {
        echo "<option value=\"".$m."\"";
        if ($m === $row['birth_m']) { echo " selected"; }
        echo ">".$m."</option>";
        $m = $m+1;
      }
      echo "</select>";

      echo "<select name=\"birth_y\">";
      $y = 1930;
      while($y <= 2000) {
        echo "<option value=\"".$y."\"";
        if ($y === $row['birth_y']) { echo " selected"; }
        echo ">".$y."</option>";
        $y = $y+1;
      }
      echo "</select>";
Avatar billede erikjacobsen Ekspert
17. februar 2007 - 09:25 #6
"virker det ikke mere" ... hvordanv virker ikke - hvad sker der (ikke)?
Avatar billede forgottentribute Nybegynder
17. februar 2007 - 12:30 #7
Altså jeg byttede jo $id ud med $_SESSION[id];
Og da jeg havde gjort det, gemte den fint instillingerne jeg havde valgt i databasen, og smed dem ud i felterne på siden fra databasen igen.

Undtagen i felterne med fødselsdags dato..
Derfor prøvede jeg at sætte [code] if ($y === $row['birth_y']) { echo " selected"; } [/code] ind, og derefter gemmer den simpelthen intet igen.

Måske du har en bedre måde til at få skrevet fødselsdato ned og hente det igen?
har 3 felter i databasen til det nemlig, kunne vel gøres med en enkelt..
birth_y
birth_m
birth_d

Mange tak (;
Avatar billede erikjacobsen Ekspert
17. februar 2007 - 13:17 #8
Ok, det er "selected" der ikke virker. Hvad er felttyperne i tabellen? Måske skal du bare bruge "==" i stedet for "==="
Avatar billede forgottentribute Nybegynder
17. februar 2007 - 13:31 #9
=== er allerede rettet til ==, da jeg bare testede det andet.
Men felttyperne er int(2) int(2) og int(4)- på year
Avatar billede erikjacobsen Ekspert
17. februar 2007 - 14:43 #10
Så kan jeg ikke se hvad der er galt.
1) Hvad sker der hvis du indsætter en konstant, fx:  if ($m == 6) { echo " selected"; }
2) Hvad sker der hvis du udskriver $row['birth_m'] lige før din <select ...>
Avatar billede forgottentribute Nybegynder
17. februar 2007 - 15:33 #11
1. Der vælger den fint nummer 6 i tabellen, som den henter det fint fra databasen med $row['birth_m'] ..

2. Den skriver fint det der står i birth_m = 5 ...

Syntes det er mærkeligt.
Fordi skriver jeg denne kode ind virker det fint:
[code]
      echo "<select name=\"birth_d\">";
      $d = 1;
      while($d <= 31) {
        echo "<option value=\"".$d."\">".$d."</option>";
        $d = $d+1;
      }
      echo "</select>";

      echo "<select name=\"birth_m\">";
      $m = 1;
      while($m <= 12) {
        echo "<option value=\"month_".$m."\">".$m."</option>";
        $m = $m+1;
      }
      echo "</select>";

      echo "<select name=\"birth_y\">";
      $y = 1930;
      while($y <= 2000) {
        echo "<option value=\"".$y."\">".$y."</option>";
        $y = $y+1;
      }
      echo "</select>";
[code]
Avatar billede erikjacobsen Ekspert
17. februar 2007 - 15:47 #12
Det giver ikke rigtig nogen mening, nej. Du har ikke et link til siden ?
Eller kan vise den HTML-kode, der laves ud fra dit eksempel?
Avatar billede forgottentribute Nybegynder
17. februar 2007 - 16:32 #13
ved den virkende eller ikk virkende kode?
Avatar billede erikjacobsen Ekspert
17. februar 2007 - 17:08 #14
Der er nok mest underholdning ved den ikke-virkende :)
Avatar billede forgottentribute Nybegynder
19. februar 2007 - 09:50 #15
Avatar billede forgottentribute Nybegynder
22. februar 2007 - 22:25 #16
?
Avatar billede erikjacobsen Ekspert
23. februar 2007 - 16:04 #17
Ja, det ser ikke ud til der er noget galt med HTML-en. Derfor er der noget galt med PHP-en, men det er der ikke i det du viser her. Så umiddelbart er det mystisk - måske det ikke er de rigtige filer du afvikler ?
Avatar billede forgottentribute Nybegynder
25. februar 2007 - 14:22 #18
Hvordan mener du?
Avatar billede forgottentribute Nybegynder
26. februar 2007 - 10:08 #19
Og så her den anden dag et indlæg om at lave f.eks ?p=Kontakt, om til www.URL.dk/kontakt/ osv?

Og . www.URL.dk/forum/2234
Avatar billede forgottentribute Nybegynder
04. marts 2007 - 22:33 #20
adawdawdwdawd
Avatar billede forgottentribute Nybegynder
25. marts 2007 - 12:55 #21
??
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