E Emil W Medlem sedan mars 2009 512 inlägg Frågan 27 sep. 2009 14:08 #1 Hej alla php programmerare
jag har gjort en kommentar funktion och under inläggen
har jag en länk där det står Anmäl inlägget
Jag har försökt göra så att den ska uppdatera 0 till 1 i fältet anmal
Hur löser man detta ?
M metalboy Medlem sedan jan. 2005 953 inlägg UPDATE tabellnamn SET anmal=1 WHERE id=$id
E Emil W Medlem sedan mars 2009 512 inlägg Jag får detta inte att funka. Jag får detta felmeddelande Notice: Undefined index: id in E:\wamp\www\visakomentarer.php on line 43
if(isset($_GET['anmal'])){
mysql_query("UPDATE blogg_komentarer SET anmal=1 WHERE id=$id");
}
Jag har gjort en länk som ser ut så här
<a href=\"?anmal={$row['id']}\">Anmäl inlägget</a>
if(isset($_GET['anmal'])){
$anmal = intval($_GET['anmal'])
mysql_query("UPDATE blogg_komentarer SET anmal=1 WHERE id=$anmal");
}
Du måste självklart anpassa koden så att du använder rätt variabelnamn, folk är inte tankeläsare.
intval gör att värdet görs om till ett nummer så att folk inte kan infoga egen SQL-kod.
E Emil W Medlem sedan mars 2009 512 inlägg jag har ett litet problem till. när jag ska försöka ändra användarnamn på min sida så går det inte jag har en inloggning sen under inställningar ska man kunna byta användarnamn
här kommer forumulärskoden
<form method="post" action="andraanvandarnamn.php">
<table>
<tr><td>Gammalt användarnamn:</td><td><input type="text" name="gammal" value="<?php echo $_SESSION['sess_anvandarnamn'];?>"></td></tr>
<tr><td>Nytt Användarnamn:</td><td><input type="text" name="andraanvandarnamn"></td></tr>
<tr><td colspan="2" align="right"><input type="submit" name="submit" value="Ändra"></td></tr>
</table>
</form>
här kommer uppdaterings koden men han byter inte användarnamnet till det nya
<?php
$server = "**********";
$user = "**********";
$pass = "****************";
$con = mysql_connect($server,$user,$pass);
if(!$con)
{
die('fel' . mysql_error());
}
mysql_select_db("*********",$con);
if(isset($_POST['submit']))
{
mysql_query("UPDATE login SET anvandarnamn='$andraanvandarnamn' WHERE anvandarnamn='$gammal'");
}
?>
M metalboy Medlem sedan jan. 2005 953 inlägg Har du register_globals aktiverat på servern? Om inte, var får $andraanvandarnamn och $gammal sina värden?
Dessutom, med din kod kan man ändra användarnamn för vilken användare som helst. Alltså inte bara sitt eget användarnamn.
E Emil W Medlem sedan mars 2009 512 inlägg hur löser man detta så att inte andra kan ändra andras användarnamn
M metalboy Medlem sedan jan. 2005 953 inlägg Du kan t.ex. använda värdet som ligger i sessionen istället för att ha ett formulärfält där man får fylla i värdet.
E Emil W Medlem sedan mars 2009 512 inlägg ok kan du visa något expempel så att jag vet hur det ska se ut ungefär
M metalboy Medlem sedan jan. 2005 953 inlägg T.ex. så här:
UPDATE users SET username='$nytt_namn' WHERE userID={$_SESSION['sess_id']}
E Emil W Medlem sedan mars 2009 512 inlägg så nu kan väl ingen kunna ändra andras användarnamn
jag behövde inte slå på register_globals det fukar ändå
tack så mycket för hjälpen
E Emil W Medlem sedan mars 2009 512 inlägg jag var tvungen att lägga till
$andraanvandarnamn = mysql_real_escape_string($_POST['andraanvandarnamn']);