У меня уже установлена вся база данных SQL.
Страница профиля уже работает, но сейчас она просто отображает информацию о профиле пользователя, который вошел в систему.
Я хочу настроить это так, чтобы это было profile.php? ID = 1, чтобы любой мог просмотреть любой профиль в базе данных.
Я перепробовал несколько разных уроков и посмотрел ответы на них, но я все еще не могу заставить его работать. Я застрял.
<?php
session_start();
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$colname_Recordset1 = "-1";
if (isset($_SESSION['MM_Username'])) {
$colname_Recordset1 = $_SESSION['MM_Username'];
}
mysql_select_db($database_login_form, $login_form);
$query_Recordset1 = sprintf("SELECT * FROM users WHERE username = %s", GetSQLValueString($colname_Recordset1, "text"));
$Recordset1 = mysql_query($query_Recordset1, $login_form) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
include 'logout_script.php';
?>
Попробуйте код ниже. Я отметил важные части:
session_start();
// Try making a class that has a more current database connection
// mysql_ doesn't cut it anymore. This is just a basic example
class Database
{
private static $singleton;
private function __construct()
{
}
public static function connect($host = "host",$user = "user",$pass="password",$db = "database_name")
{
if(!empty(self::$singleton))
return self::$singleton;
try {
self::$singleton = new mysqli($host,$user,$pass,$db);
}
catch(Exception $e) {
die($e);
}
return self::$singleton;
}
}
// Create a fetch user function to make your querying easier on you
function get_user($userid = false)
{
$con = Database::connect();
$user = (!$userid)? "":" where ID = ?";
if($query = $con->prepare("select * from users{$user}")) {
/* bind parameters for markers */
$query->bind_param("s", $userid);
/* execute query */
$query->execute();
/* bind result variables */
$result = $query->get_result();
if($result) {
while($row = $result->fetch_assoc())
{
$new[] = $row;
}
}
$query->close();
}
return (empty($new))? 0 : $new;
}
// First check if an id is set and if it's a number
if(!empty($_GET['ID']) && is_numeric($_GET['ID']))
$userid = $_GET['ID'];
// If not, try and get the logged in user id
elseif(!empty($_SESSION['ID']))
$userid = $_SESSION['ID'];
// Set as false (for error purposes)
else
$userid = false;
// IF not false
if($userid)
//get the profile
$profile = get_user($userid);
// If empty, let user know
if($profile == 0)
echo 'Profile doesn\'t exist.';
// If good, include profile page
else
include("profile.php");
// No reference for this so, not sure what this does
include 'logout_script.php';
Я смог решить эту проблему, изменив код с MM_Username на id, и оттуда смог вставить соответствующую информацию. Спасибо!