Gå til innhold

php/mysql script: endre brukernavn


Anbefalte innlegg

Hei

 

Jeg trenger ett simpelt script hvor man kan se alle personene som er i databasen, så kan det være mulig å endre brukerens navn ved å trykke på en knapp kalt ENDRE.

 

Tenker noe slik:

 

Brukerens_navn ENDRE

 

Hvis dere hvet om en tutorial på nett går det sikkert bra det også, bare send linken....

 

Mvh Mr Chief

 

EDIT: hvis du skal lage et script, eller hvet om en løsning, vennligst svar meg i forumet, da slepper jeg bruke mye tid på noe jeg ikke klarer.

Lenke til kommentar
Videoannonse
Annonse

Jeg klarer det...

 

Det som er det største problemer er at jeg ikke får til den ENDRE knappen, linken skal jo endre seg til f.eks user.php?id=5 så kommer mann inn på siden hvor du da kan endre den brukeren...

 

Takk for svar

Lenke til kommentar
Gjest Slettet+6132

Du kan prøve dette scriptet:

 

<?php
mysql_connect("127.0.0.1", "myuser", "mypass") or die("SQL ERROR: Could not connect to database!");
mysql_select_db("mydb") or die("SQL ERROR: Could not select database!");

switch($_GET['do'])
{
case "edit":
 if(is_int($_GET['id']))
 {
 	$query = mysql_query("SELECT * FROM `mytable` WHERE `userid` = '{$_GET['id']}' LIMIT 1");
 	$row = mysql_fetch_assoc($query);
 	echo "<form name=\"edit_user\" action=\"myscript.php?do=doedit\" method=\"post\">\n";
 	echo "<input type=\"text\" name=\"username\" value=\"{$row['username']}/>\n";
 	echo "<input type=\"hidden\" name=\"userid\" value=\"{$row['userid']}\"/>\n";
 	echo "<input type=\"submit\" name=\"submit\" value=\"Edit user\"/>\n";
 	echo "</form>\n";
 }
break;

case "doedit":
 if(is_int($_POST['userid']))
 {
 	mysql_real_escape_string($_POST['username']);
 	mysql_query("UPDATE `mytable` SET `username` = '{$_POST['username']}' LIMIT 1");
 	header("Location: http://myserver.tld/myscript.php");
 	exit;
 }
break;

default:
 $query = mysql_query("SELECT * FROM mytable");
 while($row = mysql_fetch_assoc($query))
 {
 	echo htmlspecialchars($row['username']) . " (<a href=\myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a>)\n";
 }
}
?>

Lenke til kommentar
Gjest Slettet+6132

Du har kalt scriptet myscript.php, ikke sant?

 

EDIT: Prøv å bytte "is_int" til "is_numeric", da skal det gå bedre.

Endret av Slettet+6132
Lenke til kommentar
Gjest Slettet+6132

Sorry, er noen småfeil fra min side der.

 

Endre is_int til is_numeric som jeg sa over, og endre

echo htmlspecialchars($row['username']) . " (<a href=\myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a>)\n";

til

echo htmlspecialchars($row['username']) . " (<a href=\"myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a><br/>)\n";

Endret av Slettet+6132
Lenke til kommentar
Sorry, er noen småfeil fra min side der.

 

Endre is_int til is_numeric som jeg sa over, og endre

echo htmlspecialchars($row['username']) . " (<a href=\myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a>)\n";

til

echo htmlspecialchars($row['username']) . " (<a href=\"myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a><br/>)\n";

6555659[/snapback]

 

Jeg virker sikkert litt dom nå, men det står is_int to steder, hvilken "case" skal jeg endre det på?

Lenke til kommentar
Gjest Slettet+6132

Ja, jeg så det. Fingrene mine løper alt for fort når jeg skriver kode, så det blir en del feil innimellom.

 

Dette skal virke:

 

<?php
mysql_connect("127.0.0.1", "myuser", "mypass") or die("SQL ERROR: Could not connect to database!");
mysql_select_db("mydb") or die("SQL ERROR: Could not select database!");

switch($_GET['do'])
{
case "edit":
if(is_numeric($_GET['id']))
{
 $query = mysql_query("SELECT * FROM `mytable` WHERE `userid` = '{$_GET['id']}' LIMIT 1");
 $row = mysql_fetch_assoc($query);
 echo "<form name=\"edit_user\" action=\"myscript.php?do=doedit\" method=\"post\">\n";
 echo "<input type=\"text\" name=\"username\" value=\"{$row['username']}\"/>\n";
 echo "<input type=\"hidden\" name=\"userid\" value=\"{$row['userid']}\"/>\n";
 echo "<input type=\"submit\" name=\"submit\" value=\"Edit user\"/>\n";
 echo "</form>\n";
}
break;

case "doedit":
if(is_numeric($_POST['userid']))
{
 mysql_real_escape_string($_POST['username']);
 mysql_query("UPDATE `mytable` SET `username` = '{$_POST['username']}' LIMIT 1");
 header("Location: http://myserver.tld/myscript.php");
 exit;
}
break;

default:
$query = mysql_query("SELECT * FROM mytable");
while($row = mysql_fetch_assoc($query))
{
 echo htmlspecialchars($row['username']) . " (<a href=\"myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a>)<br/>\n";
}
}
?>

Lenke til kommentar

Hei

 

Prøv å endre nå...

LINK

 

EDIT: Ser visst ut som at noen har det gøy... men hva er den header problem greia?

 

header("Location: http://maple-design.net/AdminP/endreid2.php");

Endret av Mr Chief
Lenke til kommentar
Gjest Slettet+6132

Post scriptet ditt slik det er nå. Hadde også vært flott med en beskrivelse over databasen din, hvilke felter du har der osv.

Lenke til kommentar

endreid2.php :



<?php
mysql_connect("localhost", "#####", "######") or die("SQL ERROR: Could not connect to database!");
mysql_select_db("#####") or die("SQL ERROR: Could not select database!");

switch($_GET['do'])
{
case "edit":
if(is_numeric($_GET['id']))
{
$query = mysql_query("SELECT * FROM brukere WHERE id = '{$_GET['id']}' LIMIT 1");
$row = mysql_fetch_assoc($query);
echo "<form name=\"edit_user\" action=\"endreid2.php?do=doedit\" method=\"post\">\n";
echo "<input type=\"text\" name=\"brukernavn\" value=\"{$row['brukernavn']}\"/>\n";
echo "<input type=\"hidden\" name=\"id\" value=\"{$row['id']}\"/>\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Edit user\"/>\n";
echo "</form>\n";
}
break;

case "doedit":
if(is_numeric($_POST['id']))
{
mysql_real_escape_string($_POST['brukernavn']);
mysql_query("UPDATE brukere SET brukernavn = '{$_POST['brukernavn']}' LIMIT 1");
header("Location: http://maple-design.net/AdminP/endreid2.php");
exit;
}
break;

default:
$query = mysql_query("SELECT * FROM brukere");
while($row = mysql_fetch_assoc($query))
{
echo htmlspecialchars($row['brukernavn']) . " (<a href=\"endreid2.php?do=edit&id={$row['id']}\" title=\"Edit user\">Edit user</a>)<br/>\n";
}
}
?>

 

Databasen:

ID_____Brukernavn

1 ______Prebe

10 ______Einar

8 ______Preben

 

Vet ikke om dere skjønner noe av det...

Endret av Mr Chief
Lenke til kommentar
Gjest Slettet+6132

Urk, jeg som roter igjen.

 

UPDATE brukere SET brukernavn = '{$_POST['brukernavn']}' LIMIT 1

skal være

UPDATE brukere SET brukernavn = '{$_POST['brukernavn']}' WHERE id = '{$_POST['id']}' LIMIT 1

 

Header-erroren klarer jeg ikke å se, det er ikke noe whitespace før php-scriptet vel?

 

EDIT: Jo, det er whitespace før scriptet. Visk ut slik at <?php er det første som står i scriptet.

Endret av Slettet+6132
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...