Avatar billede proff Nybegynder
23. januar 2004 - 21:02 Der er 29 kommentarer og
1 løsning

En side hvor den opdatere

Hejsa.. jeg har denne kode hvor jeg kan redigere mine oplysninger i! Og jeg mangler hjælp til en side som opdatere det man har skrevet.. Altså når man trykker submit så går den videre til opdater.php

Er der nogen der kan hjælpe mig med at lave opdater.php som så opdatere det man har skrevet her?

Her er min kode:


<?
session_start();
?>
<html>
<head>
<title>Brugersystem</title>
<meta name="Generator" content="Stone's WebWriter 3.5">
</head>

<body>

<?
// Tjek om brugeren er logget ind
if ($s_navn && $s_password) {
?>
<?
include ("config.php");
mysql_connect($host,$user,$pass);
mysql_select_db($db);
$query = mysql_query("SELECT * FROM community WHERE navn='$s_navn' AND password='$s_password'") or print mysql_error();
while($r = mysql_fetch_array($query)) {
$id = $r["id"];
$navn = $r["navn"];
$password = $r["password"];
$email = $r["email"];
$alder = $r["alder"];
$hjemmeside = $r["hjemmeside"];
}
?>
<form method="post" action="opdater.php">
<input type="hidden" name="id" value="$id">
<table width="300">
<tr>
<td width="300" colspan="2"><b>Ret oplysninger</b></td>
</tr><tr>
<td width="150">Navn:</td>
<td width="150"><? echo "$navn" ?></td>
</tr><tr>
<td width="150">Kodeord:</td>
<td width="150"><input type="text" name="kodeord" value="<? echo "$password"; ?>" style="width: 152px"></td>
</tr><tr>
<td width="150">Email:</td>
<td width="150"><input type="text" name="email" value="<? echo "$email"; ?>" style="width: 152px"></td>
</tr><tr>
<td width="150">Alder:</td>
<td width="150"><input type="text" name="alder" value="<? echo "$alder"; ?>" style="width: 152px"></td>
</tr><tr>
<td width="150">Hjemmeside:</td>
<td width="150"><input type="text" name="hjemmeside" value="<? echo "$hjemmeside"; ?>" style="width: 152px"></td>
</tr><tr>
<td width="300" colspan="2" align="right"><input type="submit" name="update" value="Udfør"></td>
</tr>
</table>
</form>
<?
// Opdater oplysningerne
if ($update) {
include ("config.php");
mysql_connect($host,$user,$pass);
mysql_select_db($db);
$query = mysql_query("UPDATE community SET navn='$navn', password='$password', email='$email', alder='$alder', hjemmeside='$hjemmeside' WHERE id='$id'") or print mysql_error();
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
}
?>
<?
// Hvis brugeren ikke er logget ind
} else {
?>
<center><font color="red">Kun for medlemmer</font></center>
<?
}
?>

</body>
</html>
Avatar billede schaefner Juniormester
23. januar 2004 - 21:11 #1
<?php
session_start();
?>
<html>
<head>
<title>Brugersystem</title>
<meta name="Generator" content="Stone's WebWriter 3.5">
</head>

<body>

<?php
// Tjek om brugeren er logget ind
if ($s_navn && $s_password) {
include('config.php');
mysql_connect($host,$user,$pass);
mysql_select_db($db);
$query = mysql_query("SELECT * FROM community WHERE navn='$s_navn' AND password='$s_password'") or print mysql_error();
$row = mysql_fetch_assoc($query);
?>
<form method="post" action="opdater.php">
<input type="hidden" name="id" value="<?php echo $row['id']; ?>">
<table width="300"><tr>
    <td width="300" colspan="2"><b>Ret oplysninger</b></td>
</tr><tr>
    <td width="150">Navn:</td>
    <td width="150"><?php echo $row['navn'] ?></td>
</tr><tr>
    <td width="150">Kodeord:</td>
    <td width="150"><input type="text" name="password" value="<?php echo $row['password']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="150">Email:</td>
    <td width="150"><input type="text" name="email" value="<?php echo $row['email']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="150">Alder:</td>
    <td width="150"><input type="text" name="alder" value="<?php echo $row['alder']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="150">Hjemmeside:</td>
    <td width="150"><input type="text" name="hjemmeside" value="<?php echo $row['hjemmeside']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="300" colspan="2" align="right"><input type="submit" value="Udfør"></td>
</tr></table>
</form>
<?php
} else {
echo '<center><font color="red">Kun for medlemmer</font></center>';
}
?>

</body>
</html>

--- opdater.php ---

<?php
include('config.php');
mysql_connect($host,$user,$pass);
mysql_select_db($db);
mysql_query("UPDATE community SET password='".$_POST['password']."',email='".$_POST['email']."',alder='".$_POST['alder']."', hjemmeside='".$_POST['hjemmeside']."' WHERE id=".$_POST['id']."") or print mysql_error();
echo 'Oplysningerne blev opdateret';
?>
Avatar billede proff Nybegynder
23. januar 2004 - 21:14 #2
Når jeg opdatere får jeg denne fejl: "Unknown column '$id' in 'where clause'Oplysningerne blev opdateret"
Avatar billede schaefner Juniormester
23. januar 2004 - 21:31 #3
Hvor ser din tabel ud i databasen?
Avatar billede proff Nybegynder
23. januar 2004 - 21:31 #4
Kan du bruge min mysql dumb?
Avatar billede proff Nybegynder
23. januar 2004 - 21:32 #5
CREATE TABLE community (
  id int(11) NOT NULL auto_increment,
  navn tinytext NOT NULL,
  password tinytext NOT NULL,
  email tinytext NOT NULL,
  alder tinytext NOT NULL,
  hjemmeside tinytext NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede schaefner Juniormester
23. januar 2004 - 21:33 #6
Ellers så prøv:

--- ret.php ---

<?php
session_start();
?>
<html>
<head>
<title>Brugersystem</title>
<meta name="Generator" content="Stone's WebWriter 3.5">
</head>

<body>

<?php
// Tjek om brugeren er logget ind
if ($s_navn && $s_password) {
include('config.php');
mysql_connect($host,$user,$pass);
mysql_select_db($db);
$query = mysql_query("SELECT * FROM community WHERE navn='$s_navn' AND password='$s_password'") or print mysql_error();
$row = mysql_fetch_assoc($query);
?>
<form method="post" action="opdater.php">
<table width="300"><tr>
    <td width="300" colspan="2"><b>Ret oplysninger</b></td>
</tr><tr>
    <td width="150">Navn:</td>
    <td width="150"><?php echo $row['navn'] ?></td>
</tr><tr>
    <td width="150">Kodeord:</td>
    <td width="150"><input type="text" name="password" value="<?php echo $row['password']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="150">Email:</td>
    <td width="150"><input type="text" name="email" value="<?php echo $row['email']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="150">Alder:</td>
    <td width="150"><input type="text" name="alder" value="<?php echo $row['alder']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="150">Hjemmeside:</td>
    <td width="150"><input type="text" name="hjemmeside" value="<?php echo $row['hjemmeside']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="300" colspan="2" align="right"><input type="submit" value="Udfør"></td>
</tr></table>
</form>
<?php
} else {
echo '<center><font color="red">Kun for medlemmer</font></center>';
}
?>

</body>
</html>

--- opdater.php ---

<?php
session_start();
include('config.php');
mysql_connect($host,$user,$pass);
mysql_select_db($db);
mysql_query("UPDATE community SET password='".$_POST['password']."',email='".$_POST['email']."',alder='".$_POST['alder']."', hjemmeside='".$_POST['hjemmeside']."' WHERE navn=".$s_navn."") or print mysql_error();
echo 'Oplysningerne blev opdateret';
?>
Avatar billede proff Nybegynder
23. januar 2004 - 21:37 #7
Det virker heller ikke jeg får stadig fejlen; "Unknown column 'Proff' in 'where clause'Oplysningerne blev opdateret"
Avatar billede proff Nybegynder
23. januar 2004 - 21:39 #8
Hvis du vil må du da også gerne lave en ny side hvor man retter og opdatere.. Det behøves ikke være på min måde.. Jeg skal bare kunne redigere det! hvis du gider hjælpe mig og gøre det så skal jeg også nok forhøje points...
Avatar billede schaefner Juniormester
23. januar 2004 - 21:41 #9
Jeg tror jeg har fundet fejlen. Prøv nu med enne kode :)

--- ret.php ---

<?php
session_start();
?>
<html>
<head>
<title>Brugersystem</title>
<meta name="Generator" content="Stone's WebWriter 3.5">
</head>

<body>

<?php
// Tjek om brugeren er logget ind
if ($s_navn && $s_password) {
include('config.php');
mysql_connect($host,$user,$pass);
mysql_select_db($db);
$query = mysql_query("SELECT * FROM community WHERE navn='$s_navn' AND password='$s_password'") or print mysql_error();
$row = mysql_fetch_assoc($query);
?>
<form method="post" action="opdater.php">
<table width="300"><tr>
    <td width="300" colspan="2"><b>Ret oplysninger</b></td>
</tr><tr>
    <td width="150">Navn:</td>
    <td width="150"><?php echo $row['navn'] ?></td>
</tr><tr>
    <td width="150">Kodeord:</td>
    <td width="150"><input type="text" name="password" value="<?php echo $row['password']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="150">Email:</td>
    <td width="150"><input type="text" name="email" value="<?php echo $row['email']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="150">Alder:</td>
    <td width="150"><input type="text" name="alder" value="<?php echo $row['alder']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="150">Hjemmeside:</td>
    <td width="150"><input type="text" name="hjemmeside" value="<?php echo $row['hjemmeside']; ?>" style="width: 152px"></td>
</tr><tr>
    <td width="300" colspan="2" align="right"><input type="submit" value="Udfør"></td>
</tr></table>
</form>
<?php
} else {
echo '<center><font color="red">Kun for medlemmer</font></center>';
}
?>

</body>
</html>

--- opdater.php ---

<?php
session_start();
include('config.php');
mysql_connect($host,$user,$pass);
mysql_select_db($db);
mysql_query("UPDATE community SET password='".$_POST['password']."',email='".$_POST['email']."',alder='".$_POST['alder']."', hjemmeside='".$_POST['hjemmeside']."' WHERE navn='".$s_navn."'") or print mysql_error();
echo 'Oplysningerne blev opdateret';
?>
Avatar billede proff Nybegynder
23. januar 2004 - 21:50 #10
Okay nu kan man godt ændre sine oplysninger.. Men når man så går ind i ret.php så henter den ikke de informationer man allerede havde skrevet? Altså fkes. i "hjemmeside" så er feltet bare tomt.. Der står ikek den hjemmeside man allerede har indskrevet...?

Kan du rette det?
Avatar billede schaefner Juniormester
23. januar 2004 - 21:54 #11
står der slet ikke noget i nogle af felterne?
Avatar billede proff Nybegynder
23. januar 2004 - 21:55 #12
Nope.. De er blanke, før der stod der noget inden du gav mig den sidste "opdatering" hvor du sagde du havde fundet fejlen
Avatar billede proff Nybegynder
23. januar 2004 - 21:57 #13
Det kan være du gider lave opdater og ret.php på din måde..?
Altså sådan vi ved at det fungere...? Du kan sikkert lave den meget bedre end mig jo, hvis det er skal jeg også nok forhøje points..!!
Avatar billede schaefner Juniormester
23. januar 2004 - 21:58 #14
Har du ændret dit kodeord? Den sammenligner session_kodeodet med det i databasen og de stemmer jo ikke overens mere så :)

Prøv at ændre:

$query = mysql_query("SELECT * FROM community WHERE navn='$s_navn' AND password='$s_password'") or print mysql_error();

til:

$query = mysql_query("SELECT * FROM community WHERE navn='$s_navn'") or print mysql_error();
Avatar billede proff Nybegynder
23. januar 2004 - 21:59 #15
Hæhæ.. Ja, jeg havde nemlig ændret kodeordet..
Avatar billede proff Nybegynder
23. januar 2004 - 21:59 #16
Prøver lige at ændre det..
Avatar billede proff Nybegynder
23. januar 2004 - 22:05 #17
Jeg ved ikek helt hvad der sker men når man så har ændret en af tingene så er det som om at passwordet forsvinder fra brugeren!?
Avatar billede proff Nybegynder
23. januar 2004 - 22:06 #18
Hvad kan man gøre ved det? Altså når man har ændret noget en gang og logget ud så er det som om at man ikke kan logge ind igen fordi at passwordet er væk?
Avatar billede schaefner Juniormester
23. januar 2004 - 22:06 #19
forsvinder?
Avatar billede proff Nybegynder
23. januar 2004 - 22:08 #20
Ja jeg ved ikke hvad der sker men så kan man ikke logge ind igen når man har gjort det engang altså ændret i ens profil..?

schaefner.. Hvis nu jeg forhøjer til 200 Points vil du så ikke lave en ny rediger profil og en ny opdater.php - Og jeg skal nok selv rette det til min database..!!
Avatar billede schaefner Juniormester
23. januar 2004 - 22:09 #21
Er passwordet blevet opdateret i databasen?
Avatar billede proff Nybegynder
23. januar 2004 - 22:12 #22
Ahh.. Nu ved jeg hvorfor.. Nåå ja, når man går ind for at redigere sin profil så henter den alle ens informationer ind UNDTAGEN ens password.. Også når man opdatere, opdatere den jo også passwordet og det er jo tomt!!? Kan det ikke være derfor?
Avatar billede schaefner Juniormester
23. januar 2004 - 22:22 #23
nej, den henter da også passwordet så vidt jeg kan se.
Avatar billede proff Nybegynder
23. januar 2004 - 22:24 #24
Nope når du logger ind og trykker ret oplysninger så er feltet med passwordet i TOMT.. Og hvis jeg så ikke skriver et password der i så er der jo intet password mere..
Avatar billede schaefner Juniormester
23. januar 2004 - 22:29 #25
hmm, står der noget password i databasen?
Avatar billede proff Nybegynder
23. januar 2004 - 22:30 #26
Når du går ind i rediger profil og gemmer uden at have skrevet noget .. Så står der ikke noget NEJ. Men når du opretter og logger ind så står der et password JA
Avatar billede schaefner Juniormester
23. januar 2004 - 22:34 #27
prøv lige at ændre denne linje:

<td width="150"><input type="text" name="password" value="<?php echo $row['password']; ?>" style="width: 152px"></td>

til:

<td width="150"><input type="text" name="password" value="<?php echo $s_password; ?>" style="width: 152px"></td>
Avatar billede proff Nybegynder
23. januar 2004 - 22:38 #28
Sådan nu virker det.. Gider du lige skrive et svar..

Er du god til php, så har jeg et andet spørgsmål der ALLEREDE er oprettet du da gerne måtte kigge på !-)
Avatar billede schaefner Juniormester
23. januar 2004 - 22:44 #29
ok :)
Avatar billede proff Nybegynder
23. januar 2004 - 22:46 #30
schaefner > Hvis du evt. gider kigge på dette spg også så ville jeg blive MEGET glad, hvis der er noget du ikke forstår eller noget kan du bare skrive i det så skal jeg besvare det med det samme.. Men kig på det, så er du rar :)

http://www.eksperten.dk/spm/454078
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