webForumDet fria alternativet

update funkar inte

9 svar · 459 visningar · startad av mr.mainline

mr.mainlineMedlem sedan feb. 2003777 inlägg
#1

Det går inte att uppdatera databasen med denna strängen,vart ska jag lägga in $_POST eller $_GET??

<? $query = "update user set pass=PASSWORD('$pass'), regnumber=-1 where regnumber=$regnumber"; ?>
DufferMedlem sedan mars 2003429 inlägg
#2

Hej,

Vart ska du lägga in POST eller GET?

Är detta en funktion för att typ verifiera att en användare angett rätt mail eller vad är det för update du är ute efter?

Är PASSWORD() en metod? jag antar det eftersom du inte satt fnuttar runt den och att den returnerar true eller false/någon siffra...

jag hade gjort såhär om det jag sagt ovan är sant:

<?PHP

mysql_query("UPDATE user SET pass = ".PASSWORD($_POST['pass']).", regnumber = -1 WHERE regnumber = ".$_POST['regnumber']) or exit(mysql_error());

?>

Observera att jag utgått från att $pass och $regnumber är postade och inte ligger i $_GET...

Hoppas det är till ngn hjälp!

mvh

mr.mainlineMedlem sedan feb. 2003777 inlägg
#3

Jag ska försöka förklara bättre, skriptet är ett inloggnings skript som jag hittade här på wf, men skriptet är gammalt, så jag måste lägga in $_POST på vissa variabler, jag har en sida "newaccount.php" där man skapar ett konto, och får ett registerings nummer skickat till sin e-mail adress, och när man klickar på länken så kommer man till sida "confirm.php" och det är där jag är nu, koden stannar vid "Felaktigt registreringsnummer!........."

<?  
   /******************************************** 
    * Include databas * 
    ********************************************/ 
    include("include/config.php"); 

?> 
     
    <h3>Skapa ett nytt konto - steg 2</h3> 

<? 
 /******************************************** 
    * kolla regnummert            * 
    ********************************************/ 
    $query =("SELECT id, name FROM user WHERE regnumber='{$_GET['regnumber']}'");  
     
    $res = mysql_query($query) or die ("Kan inte läsa från databasen!"); 
    $row = mysql_fetch_array($res); 
    $_POST['id'] = $row['id']; 
    $_POST['name']= $row['name']; 
     
    if (!isset($_GET['id'])) 
    { 
        echo "Felaktigt registreringsnummer! Se till att adressen överenstämmer med den länk du fick skickad till dig via epost."; 

    } 
    else 
    { 
        if (isset($_GET['add'])) 
        { 
         /******************************************** 
            * Check the entered passwords             * 
            ********************************************/ 
            $okPass  = eregi("^[0-9a-zA-Z]",$_POST['pass']); 
            $okPass2 = isset($_POST['pass']) && strlen($_POST['pass']) > 4; 
            $okPass3 = ($_POST['pass'] == $_POST['pass2']); 
        } 
         
        if (isset($_GET['add']) && $okPass && $okPass2 && $okPass3) 
        { 
         /******************************************** 
            * Uppdatera usercolumn och password  * 
            ********************************************/ 
                $query = "update user set pass=PASSWORD('$pass'), regnumber=-1 where regnumber=$regnumber"; 
                $res = mysql_query($query) or die ("Kan inte skriva till databasen!");             
?> 

            Tack!<br>Ditt lösenord har sparats.<p> 
            Gå till <a href="<?= $systemLogin ?>">login-sidan</a> för att fortsätta. 

<? 
        } 
        else  
        { 
            if (isset($_GET['add'])) 
            { 
             /******************************************** 
                * Print out a note about any malformed     * 
                * form variables                           * 
                ********************************************/ 
                echo "<font color=\"red\">"; 
                if (!$okPass) echo "* Fältet 'Lösenord' får endast innehålla bokstäverna a-z, A-Z samt 0-9.<br>"; 
                if (!$okPass2) echo "* Fältet 'Lösenord' måste innehålla minst 5 bokstäver<br>"; 
                if (!$okPass3) echo "* Lösenorden stämde inte överrens.<br>"; 
                echo "</font>"; 
            }             
?>         
    Grattis <? echo $_POST['name']; ?>! Ditt konto är nu färdigt att använda. Välj ett lösenord som du tillsammans med din epostadress 
    använder för att logga in i systemet.<p> 

    <form action="confirm.php?add=yes&regnumber=<? echo $regnumber; ?>" method="post"> 
        Lösenord:<br><small>(a-z,A-Z,0-9, minst 5 bokstäver)</small><br> 
        <input type="password" size="20" name="pass"><p> 
         
        Samma lösenord igen:<br> 
        <input type="password" size="20" name="pass2"><p> 
     
        <input type="submit" value=" Spara lösenordet! "> 
    </form>  

<? 
    } 
} 
?>
DufferMedlem sedan mars 2003429 inlägg
#4

Den där koden var ju inte direkt klockren men okej den får duga... felet ligger i att du inte har något "id" variabel i adressfältet, därför skriver den ut det filer alternativt att id inte har något värde, kontrollera så du inte gjort någon ändring så att det t.ex. är regnumber som det är du är ute efter...

hehe btw om det är där du får felet så är det inte konstigt att inget updateras ;-) men ändå måste du ändra din sql sats till något som liknat mitt iaf för du kan inte köra en metod innom en sträng utan att använda dig av någon sorts konkatenering.

Så kontrollera varibelnamnen...

mr.mainlineMedlem sedan feb. 2003777 inlägg
#5

Men när jag går in i databasen så ligger det både id och registrerings nummer, så det lägger sig i databasen iallafall..

DufferMedlem sedan mars 2003429 inlägg
#6

:r ahh förlåt pinsamt, jag kände inte till att mysql hade en inbygd funktion "password" så då är det klart det funkar, sorry!

Men då är felet det jag sa innan att variabeln inte är satt... om koden stannar på samma ställe fortfarande...

mvh

mr.mainlineMedlem sedan feb. 2003777 inlägg
#7

nä koden stannar inte på samma ställe,utan nu vill den inte skriva i databasen..

jag kollade i databasen och där läggs inte in name och email.

$query = "insert into user (name,email,regnumber) values ('$name','$email',$regnumber)";
DufferMedlem sedan mars 2003429 inlägg
#8

Hittar ingen insert query i din kod du laggt upp...

mr.mainlineMedlem sedan feb. 2003777 inlägg
#9

nä den ligger på en annan sida.

DufferMedlem sedan mars 2003429 inlägg
#10

mr.mainline skrev:

nä den ligger på en annan sida.

Får du något felmeddelandet? Är variablerna korrekt satta? (alltså har dom förväntat värde när du försöker köra din fråga?)

138 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)