WebslaveMedlem sedan maj 2002662 inlägg
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ändarnamn: </td>
<td width="60%"> <?=$rad["username"]?> </td>
</tr>
<tr>
<td align="right">Lö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> </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
Bump... ingen som har någon idé?
MungoMedlem sedan jan. 2000376 inlägg
Du skulle ju kunna berätta vad det är som inte funkar? Får du nåt felmeddelande?
WebslaveMedlem sedan maj 2002662 inlägg
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
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
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
WebslaveMedlem sedan maj 2002662 inlägg
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
Flytta upp funktionerna ovanför if (isset....
WebslaveMedlem sedan maj 2002662 inlägg
WebslaveMedlem sedan maj 2002662 inlägg
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
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
Heh... alla råd är bra råd beroende på hur man tar dem ;)
leifenMedlem sedan juli 200169 inlägg
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
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
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
MatteMedlem sedan aug. 20002 970 inlägg
Prova med:
session_register("password");
$password = $new_password;