Jag har lagt lite inställningar i en php fil för att koppla upp sig mot en MySQL databas. Tar jag ut värdena fungerar det. På andra sidor verkar det också fungera (jag är person nummer två som grejar med detta).
Det jag vill göra är en inloggningssida som när man blir inloggad sparar information i Sessionsvariablar. Är detta ett korrekt sätt inom PHP? :) Detta är mitt första "riktiga" script som jag försöker få igång...
Felmeddelanden:
Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/hitech/public_html/admin/logon.php on line 32
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/hitech/public_html/admin/logon.php on line 33
Warning: mysql_real_escape_string(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/hitech/public_html/admin/logon.php on line 18
Warning: mysql_real_escape_string(): A link to the server could not be established in /home/hitech/public_html/admin/logon.php on line 18
Warning: mysql_real_escape_string(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/hitech/public_html/admin/logon.php on line 18
Warning: mysql_real_escape_string(): A link to the server could not be established in /home/hitech/public_html/admin/logon.php on line 18
Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/hitech/public_html/admin/logon.php on line 40
Warning: mysql_query(): A link to the server could not be established in /home/hitech/public_html/admin/logon.php on line 40
Invalid query: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) Whole query: SELECT * FROM Board WHERE UserName='' AND Password=''
Jag tolkar det som att värdena från min includefil inte fungerar i mitt script...
Jag har skrivit in radnummrerna på raderna som strular i koden. Dock borde det vara rad 32 som orsakar resten av felen där jag skapar min databaslänk (eller vad man ska säga...).
vars.php (ligger ett steg under public_html)
<?php
$db="#####";
$db_user="######";
$db_pass="#######";
$db_serv="db.ds.karen.hj.se";
$base="/home/hitech/public_html";
$base_url="http://www.hitech.nu";
?>
logon.php
<?php
// Starta sessionen
session_start();
// Starta buffering
ob_start();
// Kontrollera variabeln för att vara säker för SQL-injections
function quote_smart($value)
{
// Stripslashes
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
// Quote if not a number or a numeric string
if (!is_numeric($value)) {
$value = "'" . mysql_real_escape_string($value) . "'"; // Line 18
}
return $value;
}
// Kollar om vi är inloggade
if(empty($_SESSION['loggedOn'])) {
// Ja, kollar om användaren angett användarnamn och lösenord
if((!empty($_POST['username'])==TRUE) and (!empty($_POST['password'])==TRUE))
// Ja, kontrollerar om personen finns i databasen
include "/home/hitech/vars.php";
$dbhandle=mysql_connect($db_serv,$db_user,$db_pass); // Line 32
mysql_select_db($db, $dbhandle); // Line 33
// Frågar databasen med en säker fråga
$query = sprintf("SELECT * FROM Board WHERE UserName=%s AND Password=%s",
quote_smart($_POST['username']),
quote_smart($_POST['password']));
$result = mysql_query($query); // Line 40
// Check result
// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if (!$result) {
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $query;
die($message);
} else {
$_SESSION["loggedOn"] = TRUE;
$_SESSION["UserID"] = 1;
header("Location: index.php");
}
// Stänger kopplingen till databasen
mysql_free_result ($result);
mysql_close($dbhandle);
} else {
// Nej, kollar om användaren vill logga ut
if($_GET['action'] == 'logout') {
// Ja, förstör all data lagrad i session
$_SESSION["loggedOn"] = FALSE;
session_destroy();
} else {
// Nej, skickar tillbaka användaren till index-sidan
header("Location: index.php");
}
}
?>