Avatar billede KasperNiemann Nybegynder
04. december 2011 - 13:22 Der er 14 kommentarer og
1 løsning

UPDATE mysql

Hej eksperter (:

Jeg sidder lidt i klemme med en opgave.
Opgaven går ud på at jeg har en form, hvor det skal være muligt for brugeren at opdatere sit fornavn samt efternavn.

Jeg ved det måske er en simpelt ting, men eftersom jeg har søgt efter fejlen i mit eget skrevet script, så kan jeg simpelthen ikke finde fejlen.

Så derfor spørger jeg, om der er en, som kan lave et script, som virker, som jeg kan bruge i mit.
I formen bruger følgende:

name="firstname"
name="lastname"
name="nameSubmit"

Formen må gerne have action="nameupdate.php"

Håber nogen kan hjælpe mig her.
Avatar billede KasperNiemann Nybegynder
04. december 2011 - 13:23 #1
Er der nogen spørgsmål er i selvfølgelig velkommen til at komme med dem, så skal jeg svære så godt på dem som muligt (:
Avatar billede rix Praktikant
04. december 2011 - 18:24 #2
prøv at komme med det scripts du har lavet så kan jeg måske se din fejl
Avatar billede KasperNiemann Nybegynder
04. december 2011 - 18:40 #3
$id = mysql_real_escape_string($_GET['id']);
                       
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
mysql_query("SET NAMES utf8");
mysql_query("SET character_set_results='utf8′");

$firstname = mysql_real_escape_string($_POST["firstname"]);
$lastname = mysql_real_escape_string($_POST["lastname"]);

$query = "UPDATE users SET firstname='$firstname', lastname='$lastname' WHERE id='$id'";
mysql_query($query);
mysql_close();

Men ville nu være bedst med et helt script fra bunden.
Avatar billede rix Praktikant
04. december 2011 - 19:23 #4
hmm okey
så ville jeg gøre det sådan

//beskydt mod hack
    function clean($str) {
        $str = @trim($str);
        if(get_magic_quotes_gpc()) {
            $str = stripslashes($str);
        }
        return mysql_real_escape_string($str);
        }
        }
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
mysql_query("SET NAMES utf8");
mysql_query("SET character_set_results='utf8′");

mysql_query("UPDATE `users` SET
           
`firstname` = '".clean($_POST['$_POST["firstname"]'])."',           
`lastname` = '".clean($_POST["lastname"])."'

WHERE `users`.`id` =".clean($_GET['id'])."") or die(mysql_error());

mysql_close();


prøv dette
Avatar billede KasperNiemann Nybegynder
04. december 2011 - 19:37 #5
Den laver fejl i scriptet ?



<?php
                   
                       
//beskydt mod hack
    function clean($str) {
        $str = @trim($str);
        if(get_magic_quotes_gpc()) {
            $str = stripslashes($str);
        }
        return mysql_real_escape_string($str);
        }
        } // <---- Fejl her, hvis jeg retter den, kommer der en fejl ved ( ? > ) i bunden
                       
$host="********";
$username="********";
$password="********";
$db_name="********";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
mysql_query("SET NAMES utf8");
mysql_query("SET character_set_results='utf8&#8242;");

mysql_query("UPDATE `users` SET
           
`firstname` = '".clean($_POST['$_POST["firstname"]'])."',           
`lastname` = '".clean($_POST["lastname"])."'

WHERE `users`.`id` =".clean($_GET['id'])."") or die(mysql_error());

mysql_close();

?>
Avatar billede rix Praktikant
04. december 2011 - 20:24 #6
prøv dette

<?php
                 
                     
//beskydt mod hack
    function clean($str) {
        $str = @trim($str);
        if(get_magic_quotes_gpc()) {
            $str = stripslashes($str);
        }
        return mysql_real_escape_string($str);
        }
     
                     
$host="********";
$username="********";
$password="********";
$db_name="********";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
mysql_query("SET NAMES utf8");
mysql_query("SET character_set_results='utf8&#8242;");

mysql_query("UPDATE `users` SET
         
`firstname` = '".clean($_POST['$_POST["firstname"]'])."',         
`lastname` = '".clean($_POST["lastname"])."'

WHERE `users`.`id` =".clean($_GET['id'])."") or die(mysql_error());

mysql_close();

?>


kom til at putte en } for meget ^^
Avatar billede KasperNiemann Nybegynder
04. december 2011 - 20:47 #7
Tusind tak mester.
- Det virker sku som det skal nu (:
Avatar billede rix Praktikant
04. december 2011 - 20:51 #8
det var så lidt
nu skal du bare lukke spøgsmålet det gøres ved at acceptere mit svar

husk at når man kommentere på en spøgsmål skal man ikke bruge mugligheden "svar" men "kommentar"
når man kommer med en forslag på hvordan det kan gøres skal man ligge "svar"
Avatar billede KasperNiemann Nybegynder
04. december 2011 - 20:58 #9
Hvad skal jeg så gøre, hvis det er en adgangskode som skal opdateres, den skal jo læse den adgangskode brugeren har i forvejen, og så opdatere den nye, som skal skrives to gange.

Har kaldet dem for:
oldpassword
newpassword
repeatnewpassword.

Det er vel nogenlunde det samme eller ?
Avatar billede rix Praktikant
04. december 2011 - 22:03 #10

<?php
               
                   
//beskydt mod hack
    function clean($str) {
        $str = @trim($str);
        if(get_magic_quotes_gpc()) {
            $str = stripslashes($str);
        }
        return mysql_real_escape_string($str);
        }
   
                   
$host="********";
$username="********";
$password="********";
$db_name="********";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
mysql_query("SET NAMES utf8");
mysql_query("SET character_set_results='utf8&#8242;");

mysql_query("UPDATE `users` SET
       
`firstname` = '".clean($_POST['$_POST["firstname"]'])."',       
`lastname` = '".clean($_POST["lastname"])."'

WHERE `users`.`id` =".clean($_GET['id'])."") or die(mysql_error());
$fejl = false;
if(!empty($_POST['newpassword']) || !empty($_POST['repeatnewpassword'])){
if(empty($_POST['newpassword'])){
  echo "Udfyld: newpassword";
  $fejl = true;
}
if(empty($_POST['repeatnewpassword'])){
  echo "Udfyld: repeatnewpassword";
  $fejl = true;
}
if(!$fejl){
if($_POST['repeatnewpassword'] === $_POST['newpassword']){
mysql_query("UPDATE `users` SET
       
`password` = '".clean($_POST['$_POST["newpassword"]'])."'

WHERE `users`.`id` =".clean($_GET['id'])."") or die(mysql_error());
}else{
echo "de to kode ord er ikke ens!";
}
}
}

mysql_close();

?>


sådan ville jeg gøre det
(fejl kan forkomme da jeg har skrevet den her i eksperten)
Avatar billede KasperNiemann Nybegynder
04. december 2011 - 22:34 #11
Takker.
- men kan du ikke lige rette den til med md5().
så ville det være konge.

For det du sendte virker som det skal, almost (:
Avatar billede rix Praktikant
04. december 2011 - 22:45 #12


<?php
             
                 
//beskydt mod hack
    function clean($str) {
        $str = @trim($str);
        if(get_magic_quotes_gpc()) {
            $str = stripslashes($str);
        }
        return mysql_real_escape_string($str);
        }
 
                 
$host="********";
$username="********";
$password="********";
$db_name="********";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
mysql_query("SET NAMES utf8");
mysql_query("SET character_set_results='utf8&#8242;");

mysql_query("UPDATE `users` SET
     
`firstname` = '".clean($_POST['$_POST["firstname"]'])."',     
`lastname` = '".clean($_POST["lastname"])."'

WHERE `users`.`id` =".clean($_GET['id'])."") or die(mysql_error());
$fejl = false;
if(!empty($_POST['newpassword']) || !empty($_POST['repeatnewpassword'])){
if(empty($_POST['newpassword'])){
  echo "Udfyld: newpassword";
  $fejl = true;
}
if(empty($_POST['repeatnewpassword'])){
  echo "Udfyld: repeatnewpassword";
  $fejl = true;
}
if(!$fejl){
if($_POST['repeatnewpassword'] === $_POST['newpassword']){
mysql_query("UPDATE `users` SET
     
`password` = '".md5(clean(['$_POST["newpassword"]))."'

WHERE `users`.`id` =".clean($_GET['id'])."") or die(mysql_error());
}else{
echo "de to kode ord er ikke ens!";
}
}
}

mysql_close();

?>

sådan
Avatar billede KasperNiemann Nybegynder
04. december 2011 - 22:52 #13
Tak for det (:
- Nu virker det hele.

Har du et sted, hvor man kan finde mange tutorials til alt muligt php stuff som jeg evt kan lære lidt af og sådan (:
Avatar billede rix Praktikant
04. december 2011 - 23:47 #14
http://www.phpartikler.dk/ <- fine simple eks.
http://www.php.net/ <= meget nyttig hvis man er i tvil hvordan en ting virker osv.
http://phptips.dk/ <- fine simple eks.
http://www.w3schools.com/php
Avatar billede rix Praktikant
06. december 2011 - 00:52 #15
det er altid dejligt at hjælpe gratis ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester