Avatar billede chris0905 Nybegynder
25. april 2011 - 15:38 Der er 15 kommentarer og
1 løsning

Fejl i PHP-script

Hej Eksperter!

Jeg har en kode med blandet HTML og PHP, men den vil ligesom ikke hvad jeg vil!

Den skal opdatere mit kodeord i en database og jeg har vist nok fundet ud af hvor i koden problemet er...

Er der nogen der kan se et problem i dette:

--- Kode start ---
<?php

if(isset($_POST['submit'])){
    $username = mysql_prep($_POST['username']);
    $password = mysql_prep($_POST['password']);
    $link_updatequery = "UPDATE editusers SET username = '{$username}', password = '{$password}' WHERE id = '1' ";
    if(mysql_query($link_updatequery)){
        header("Location: index.php");
    }else{
        echo "query fejl";
        echo "<p>".mysql_error()."</p>";
    }
}
?>

--- Kode slut ---


På forhånd tak!

Mvh.

Christoffer
Avatar billede wanze Nybegynder
25. april 2011 - 16:06 #1
Vi kan bedst hjælpe dig, hvis du viser os hvilken fejl du får.

Men jeg gætter på at problemet vil blive løst, hvis du omskriver din query til:

"UPDATE `editusers` SET `username` = '{$username}',
  `password` = '{$password}' WHERE `id` = '1' "

Det jeg har gjort er blot at indsætte backticks.
Avatar billede chris0905 Nybegynder
25. april 2011 - 16:13 #2
når jeg submit'er min form, så reloader den bare siden, og intet  er sket...
Avatar billede michael_stim Ekspert
25. april 2011 - 16:13 #3
Har du fået styr på din mysql_prep funktion?

$username = mysql_prep($_POST['username']);
$password = mysql_prep($_POST['password']);
Avatar billede wanze Nybegynder
25. april 2011 - 16:16 #4
I stedet for at reloade siden som du sætter den til, prøv da i stedet at få siden til at udskrive den query du kører. Ser den ud som forventet? Prøv at udføre den direkte i fx phpMyAdmin.
Avatar billede chris0905 Nybegynder
25. april 2011 - 16:22 #5
det hjalp i hvert fald at fjerne mysql_prep ...

så tak for hjælpen!

Jeg tror michael_stim skulle have point, men er der ikke noget med at du ikke samler???
Avatar billede michael_stim Ekspert
25. april 2011 - 16:25 #6
Jep ;o)
Avatar billede wanze Nybegynder
25. april 2011 - 16:30 #7
Jeg gik ud fra, at mysql_prep var noget inputvalidering af en slags. Hvis ikke det er tilfældet, så brug i stedet mysql_real_escape_string for at undgå MySQL-injections.
Avatar billede chris0905 Nybegynder
25. april 2011 - 16:32 #8
jeg mener det var machael_stim der engang hjalp mig med at lave den så den virkede på en af mine andre sider... men den virkede vist ikke her...

smid et svar!
Avatar billede michael_stim Ekspert
25. april 2011 - 16:34 #9
Nej, jeg sagde at du skulle fjerne funktionskaldet, da du ikke havde en funktion med det navn ;o) Og da du stadig ikke har en funktion med det navn, vil det heller ikke virke denne gang ;o)
Avatar billede chris0905 Nybegynder
25. april 2011 - 16:36 #10
der var en der lavede en kode der fik det til at virke med mysql_prep....
Avatar billede chris0905 Nybegynder
25. april 2011 - 16:37 #11
function mysql_prep( $value ) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists( "mysql_real_escape_string" );
if( $new_enough_php ) { // PHP v4.3.0 or higher
if( $magic_quotes_active ) { $value = stripslashes( $value ); }
$value = mysql_real_escape_string( $value );
} else {
if( !$magic_quotes_active ) { $value = addslashes( $value ); }
}
return $value;
}
Avatar billede michael_stim Ekspert
25. april 2011 - 16:42 #12
Så skal du måske bare include siden hvor funktionen ligger?
Avatar billede chris0905 Nybegynder
25. april 2011 - 16:59 #13
ja... nu bruger jeg mysql_real_escape_string på denne side...
Avatar billede chris0905 Nybegynder
25. april 2011 - 17:12 #14
wanze: smider du et svar?
Avatar billede wanze Nybegynder
25. april 2011 - 17:16 #15
Svar :)
Avatar billede chris0905 Nybegynder
25. april 2011 - 17:18 #16
tak for hjælpen begge to!
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