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®number=<? 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>
<?
}
}
?>
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.