webForumDet fria alternativet

Update via form

17 svar · 361 visningar · startad av Webslave

WebslaveMedlem sedan maj 2002662 inlägg
#1

Detta kanske passar sig bättre i MySql kom jag på... :l Jaja... ni får flytta mig i så fall :)

Jag försöker och försöker att skriva en funktion som updaterar användarinformationen via ett formulär men jag lyckas inte. Boken som jag sitter med hjälper mig inte heller så nu vänder jag mig till eliten (smörar lite)

Så här ser min sida ut, man kommer till den via ett inloggnings form som sätter igång sessionen.

<?
session_register("username");
session_register("password");
session_register("user_id");
if(isset($Submit)){
	UpdateProfile();
	}
else{
	MinaSidor();
	}
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<?
function MinaSidor(){
global $username,$password,$user_id;
$connect = mysql_connect("localhost", "","");
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysql_db_query("webblitteratur_com","$sql");
$rad=mysql_fetch_array($result);
?> 
      
<form name="change" action="<?=$PHP_SELF?>" method="post">
  <table width="400" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td align="right">Anv&auml;ndarnamn: </td>
      <td width="60%">&nbsp;<?=$rad["username"]?> </td>
  </tr>
  <tr>
      <td align="right">L&ouml;senord: </td>
      <td width="60%">
        <input type="password" name="password" value="<?=$rad["password"]?>">
      </td>
  </tr>
  <tr>
      <td align="right">Epost: </td>
      <td width="60%">
        <input type="text" name="user_epost" value="<?=$rad["user_epost"]?>">
      </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
      <td width="60%">
        <input type="image" value="Submit" name="Submit" src="images/main/buttonskicka1.gif" width="35" height="13">
      </td>
  </tr>
</table>
      </form>
<?=$rad["username"]?> <?=$rad["user_epost"]?> <?=$rad["password"]?>
<?

mysql_close($connect);
}
?>
</body>
</html>
<?
function UpdateProfile(){
global $username,$password,$user_id;
$connect = mysql_connect("localhost", "","");
$sql = "UPDATE users SET password='$password',user_epost='$user_epost' WHERE user_id='$user_id'";
$result = mysql_db_query("webblitteratur_com","$sql");
echo "Dina uppgifter har ändrats!";
mysql_close($connect);
}
?>

Någon som ser vart jag har fastnat med skägget? All hjälp uppskattas... tackar =)

WebslaveMedlem sedan maj 2002662 inlägg
#2

Bump... ingen som har någon idé?

MungoMedlem sedan jan. 2000376 inlägg
#3

Du skulle ju kunna berätta vad det är som inte funkar? Får du nåt felmeddelande?

WebslaveMedlem sedan maj 2002662 inlägg
#4

Mitt problem är att databasen inte uppdateras, jag vet inte om det är för sessionen eller om jag har kodat fel.

leifenMedlem sedan juli 200169 inlägg
#5

Ta reda på vad som blir fel

Hej,

du måste leta själv!

Börja med att skriva ut $sql på skärmen, då ser du ju vad som skickas till mySql. Sedan kan du ju alltid kontrollera $result. Om det är något fel så tar du reda på detta via mysql_errno()

NiklassonMedlem sedan nov. 2000823 inlägg
#6

Vad lefien menar är att du kan kolla varför queryn misslyckas.. ;)

$result = mysql_db_query("webblitteratur_com","$sql") or die(mysql_error());
WebslaveMedlem sedan maj 2002662 inlägg
#7

ok, jag ska testa

WebslaveMedlem sedan maj 2002662 inlägg
#8

Det händer ingetnting... jag tror inte ens funktionen "UpdateProfile" startas... suck... jag måste bli bättre på detta :D

HJÄLP!

NiklassonMedlem sedan nov. 2000823 inlägg
#9

Flytta upp funktionerna ovanför if (isset....

WebslaveMedlem sedan maj 2002662 inlägg
#10

Funkar inte... :\

WebslaveMedlem sedan maj 2002662 inlägg
#11

Jag testar att skriva om hela kalaset så hör jag av mig om det fortsätter att krångla.

leifenMedlem sedan juli 200169 inlägg
#12

Vadå tror? Det får man göra någon annanstans ("Livet är någon annanstans" är för övrigt en mycket bra bok). Men i programmering gäller det att ta reda på fakta. Om nu inte någon, som är lite snällare än vad jag är, talar om vad som är felet i din kod så ska man göra så här:

Koda en liten del av koden, testa om det fungerar. (Att programmera allting på en gång och sedan testa har inte fungerat de senaste 25 åren och kommer inte göra det de kommande 15 åren heller. Sedan går jag i pension.)

Nähe, det fungerar inte!? Då får man ta reda på varför och vad det är som inte fungerar. Då är en bra debugger till stor hjälp. Har man inte det så får man köra fattigmans-debugger. För PHP blir det då ett antal echo() eller printf(). Då hittar man var det är som blir fel i 95% av fallen. Kanske behöver man då kolla i manualen (PHP eller mysql) eller, om man kör helt fast, så frågar man i ett fora.

Vad jag upptäckt de senaste åren är att allt fler bara letar efter kod som man kan kopiera och sedan försöker använda. Utan att lära sig teori och grunder. Det är inget jag rekommenderar. Däremot rekommenderar jag att leta kod för att få bra ideér, men det är en helt annan femma.

Ja ja, mossiga råd från en mossig gammal gube...

WebslaveMedlem sedan maj 2002662 inlägg
#13

Heh... alla råd är bra råd beroende på hur man tar dem ;)

leifenMedlem sedan juli 200169 inlägg
#14

Bra!, tyckte jag lät lite knarrig och gnällig...

Men imorgon blir det andra tag, och utan dator, för då åker vi till O-Ringen.

WebslaveMedlem sedan maj 2002662 inlägg
#15

Vad är det? Tycker att jag känner igen det som en orienteringstävling... men jag har säkert helt fel :D

WebslaveMedlem sedan maj 2002662 inlägg
#16

Jag löste problemet men nu dök ett annat upp =)

När jag har ändrat mitt lösenord etc. så måste ju lösenordet i sessionen ändras osså annars så kan ju inte koden returnera något för det finns ingen användare med det gamla lösenordet

function UpdateProfile(){
global $username,$password,$new_password,$new_user_epost;
$connect = mysql_connect("localhost", "","");
$sql = "UPDATE users SET password='$new_password',user_epost='$new_user_epost'
WHERE username='$username' AND password='$password'";
$result = mysql_db_query("webblitteratur_com","$sql");
mysql_close($connect);
	echo "Dina uppgifter har uppdaterats!";
	MinaSidor();
}
WebslaveMedlem sedan maj 2002662 inlägg
#17

Någon som vet?

MatteMedlem sedan aug. 20002 970 inlägg
#18

Prova med:

 session_register("password");
$password = $new_password;
Genererad på 383 ms · cache AV · v20260730165559-full.f96bc7eb