Ska försöka göra en inloggning med php & MySQL. MySQL-modulen är inte aktiverad. Leta upp php.ini och sök efter mysql. Du hittar förhoppningsvis en rad som lyder tack, provade att lägga upp den på en php-server och får nu följande felmeddelande: Nu var det väldigt länge sedan jag kodade php, men vill minnas att det betyder att du inte har en giltig anslutning till databasen. Har du kollat att servernamn, användarnamn och lösen är korrekta? eftersom att du sätter $db_link utanför din funktion måste du använda global för att komma åt den. tack, nu får jag ett nytt felmeddelande. Jag har för mig att du måste skriva:problem med inloggning
Har följande:
dbAccess.inc.php
<code>
<?php
$db_link = mysql_connect("server", "namn", "pass");
mysql_select_db("databas", $db_link);
?>
</code>
login.inc.php
<code>
<?php
// Hämtar databasanslutningen
include("dbAccess.inc.php");
class Login
{
private $anvNamn;
private $losenord;
private $validerat = true;
function Login()
{
}
function getMemberID()
{
if ($this->validerat) // om den e validerad så görs en select
{
$query = "SELECT userID FROM user WHERE userNamn = $this->anvNamn AND password = $this->losenord";
try {
$result = mysql_query($query, $db_link);
if (isset($query['userID']))
{
session_start();
$uid = $query['userID'];
session_register("uid", "uname");
Header("Location: kalender.php");
}
}
catch (exception $e) {
echo 'Felmeddelande:<br /> ', $e->getMessage(), "\n";
}
}
}
function setAnvNamn()
{
if (isset($_POST['anvNamn']) and preg_match("/^[a-zåäöA-ZÅÄÖ0-9]+$/", $_POST['anvNamn'])) {
$this->anvNamn = $_GET['anvNamn'];
} else {
$this->validerat = false;
echo "Användarnamn saknas eller är inte korrekt<br />";
}
}
function setLosen()
{
if (isset($_POST['losenord']) and preg_match("/^[a-zåäöA-ZÅÄÖ0-9]+$/", $_POST['losenord'])) {
$this->losenord = $_POST['losenord'];
} else {
$this->validerat = false;
echo "Lösenord saknas eller är inte korrekt<br />";
}
}
}
</code>
login.php
<code>
<?php
// fixar inställningarna till kalendern
require_once ("login.inc.php");
$Login = new Login();
$Login->getInloggningForm(); // skriver ut formuläret
$Login->setAnvNamn();
$Login->setLosen();
$Login->getMemberID();
?>
</code>
När jag kör login.php får jag följande felmeddelande:
Fatal error: Call to undefined function mysql_connect() in dbAccess.inc.php on line 8
Vad har jag gjort för fel?
Tacksam för all hjälpSv: problem med inloggning
<b>;extension=php_mysql.dll</b>
Ta bort semikolonet, spara filen och starta sedan om Apache (för jag antar att du använder Apache via WAMP server eller XAMPP).Sv:problem med inloggning
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in login.inc.php on line 32
rad 32 är $result = mysql_query($query, $db_link);
Tacksam för all hjälpSv: problem med inloggning
Tror du kan skriva nått sånt här för att få ut felmeddelanden för anslutningen också:
$result = mysql_query($query, $db_link) or die(mysql_error());
/JohanSv: problem med inloggning
function getMemberID()
{
global $db_link;
...
...
Sv:problem med inloggning
Unknown column 'tyh' in 'where clause'
tyh är användarnamnet jag fyllde i vid inloggningen.
har sql-frågan $query = "SELECT userID FROM user WHERE userNamn = $this->anvNamn AND password = $this->losenord";
Vad har jag gjort för fel?
tacksam för all hjälpSv: problem med inloggning
$query = "SELECT userID FROM user WHERE userNamn = '$this->anvNamn' AND password = '$this->losenord'";
Alltså enkelfnuttar runt $this->anvNamn och $this->losenord.