Jag har lagt till ett anv namn och lösen i min databas, men när jag kör det från formuläret, så hamnar jag till ouch.php(felsida om man loggar in med fel anv namn och lösen)
Kan det vara något med _SESSION, skriptet är gammalt.
<?php // Skapar användarsession för inloggad användare
session_start();
session_register("iwcuser");
session_register("iwcpass");
@$iwcuser = $username;
@$iwcpass = $password; ?>
<?php if(!$login) {
echo("<script language=JavaScript>");
echo("self.location.replace('http://localhost/carponline/login/ouch.php')");
echo("</script>");
} ?>
<?php if(@$login = "user") {
$open = mysql_connect("localhost", "******", "******");
$sql = mysql_db_query("******", "SELECT * FROM users WHERE username = '$username'", $open);
$rad = mysql_fetch_array($sql);
if($username == $rad["username"] & $password == $rad["password"]) {
$antalbesok = $rad["antalbesok"] + 1;
$senast = date("Y-m-d");
$oppna = mysql_connect("localhost", "******", "******");
$sqlq = mysql_db_query("iwcusers", "UPDATE users SET senast = '$senast', antalbesok = '$antalbesok' WHERE username = '$username'", $oppna);
mysql_close($oppna);
echo("Du är inloggad, du förflyttas till startsidan...");
echo("<script language=JavaScript>");
echo("self.location.replace('http://localhost/carponline/community/default.php')");
echo("</script>");
} else { ?>
<table cellpadding="0" cellspacing="0" style="border-width: 1pt; border-color: #000000; border-style: solid" align="left">
<tr>
<td class="menux" width="20"></td>
<td class="menux"><br><span class="rubrik">Inloggning</span><br><img src="/carponline/_media/line.gif" vspace="5" height="1" width="100%"></td>
<td class="menux" width="10"></td>
</tr>
<tr>
<td class="menux" width="10"></td>
<td class="menux" width="600" height="200" valign="top"><span class="brodtext">
<?php echo("<span class=rubrik>Inloggningen utfördes ej korrekt!<br>");
echo("<p></span>");
echo("Det gick inte att logga in med de uppgifter som du använde. Kontrollera användarnamn/lösenord och <a href=/carponline/default.php class=menulank>försök igen</a>.");
}
mysql_close($open);
?>
<?php } ?>
Skriv ut ett gäng echos för att kolla va du får överallt, inclusive password från databasen
Edit: Såg att du hade en (@$login = "user") vilket borde vara (@$login == "user") och 2 & tecken för and om jag inte minns fel. dvs ($user == "user" && $pass == "pass")
Raden if(!$login) körs innan variabeln $login finns (Finns den öht?) vilket gör att att if-satsen blir sann, och koden där inne körs oavsett.
Eftertanke ger att raden bör se ut så här: if(!@$login)
jag tror själv det där med register_globals, är det så att alla varibaler som skickas med formuläret ska vara _POST? eller ska man skiva _SESSION?
Variabler som skickats:
från en form med post finns under $_POST['formfältsnamn'],
det som skickats med get under $_GET['formfältsnamn'],
sessionsvariabler under $_SESSION['sessionsvariabel'] och
cookiediton under $_COOKIE['cookievariabel'].
När variablerna kommer från ett formulär men method="post", då ska du använda $_POST.
session_register() har ingen som helst funktion när register_globals är Off, du måste sätta och hämta direkt mot sessionsarrayen, typ:
$_SESSION['var'] = 'värde';
// Eller
echo $_SESSION['var'];
Det jag har sett av internet worlds PHP-skript tidigare har inte gjort någon människa glad, framförallt deras hemska community.
Om jag var som du skulle jag lägga ner detta skript och söka ett annat, eller för den delen börja med ett nytt från scratch.