webForumDet fria alternativet

Vill uppdatera 0 till 1

PHP

11 svar · 528 visningar · startad av Emil W

Medlem sedan mars 2009512 inlägg
Frågan#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 ?

Medlem sedan jan. 2005953 inlägg
#2
UPDATE tabellnamn SET anmal=1 WHERE id=$id
Medlem sedan mars 2009512 inlägg
#3

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>
Medlem sedan aug. 20039 340 inlägg
#4
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.

Medlem sedan mars 2009512 inlägg
#5

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'");
}
?>
Medlem sedan jan. 2005953 inlägg
#6

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.

Medlem sedan mars 2009512 inlägg
#7

hur löser man detta så att inte andra kan ändra andras användarnamn

Medlem sedan jan. 2005953 inlägg
#8

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.

Medlem sedan mars 2009512 inlägg
#9

ok kan du visa något expempel så att jag vet hur det ska se ut ungefär

Medlem sedan jan. 2005953 inlägg
#10

T.ex. så här:

UPDATE users SET username='$nytt_namn' WHERE userID={$_SESSION['sess_id']}
Medlem sedan mars 2009512 inlägg
#11

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

Medlem sedan mars 2009512 inlägg
#12

jag var tvungen att lägga till

$andraanvandarnamn = mysql_real_escape_string($_POST['andraanvandarnamn']);
253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)