Фотография на сайте не обновляется
Вы можете зайти на https://clavaqwerty.xyz/robinsnest/profile.php, чтобы посмотреть на это вживую.
Пользователь не может обновить или загрузить фотографию на свой профиль, выбрав картинку и нажав "Сохранить". Код profile.php:
<?php // Example 26-8: profile.php
require_once 'header.php';
if (!$loggedin) die();
echo "<div class='main'><h3>Ваш профайл</h3>";
$result = queryMysql("SELECT * FROM profiles WHERE user='$user'");
if (isset($_POST['text']))
{
$text = sanitizeString($_POST['text']);
$text = preg_replace('/\s\s+/', ' ', $text);
if ($result->num_rows)
queryMysql("UPDATE profiles SET text='$text' where user='$user'");
else queryMysql("INSERT INTO profiles VALUES('$user', '$text')");
}
else
{
if ($result->num_rows)
{
$row = $result->fetch_array(MYSQLI_ASSOC);
$text = stripslashes($row['text']);
}
else $text = "";
}
$text = stripslashes(preg_replace('/\s\s+/', ' ', $text));
if (isset($_FILES['image']['name']))
{
$saveto = "$user.jpg";
move_uploaded_file($_FILES['image']['tmp_name'], $saveto);
$typeok = TRUE;
switch($_FILES['image']['type'])
{
case "image/gif": $src = imagecreatefromgif($saveto); break;
case "image/jpeg": // Both regular and progressive jpegs
case "image/pjpeg": $src = imagecreatefromjpeg($saveto); break;
case "image/png": $src = imagecreatefrompng($saveto); break;
default: $typeok = FALSE; break;
}
if ($typeok)
{
list($w, $h) = getimagesize($saveto);
$max = 100;
$tw = $w;
$th = $h;
if ($w > $h && $max < $w)
{
$th = $max / $w * $h;
$tw = $max;
}
elseif ($h > $w && $max < $h)
{
$tw = $max / $h * $w;
$th = $max;
}
elseif ($max < $w)
{
$tw = $th = $max;
}
$tmp = imagecreatetruecolor($tw, $th);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $tw, $th, $w, $h);
imageconvolution($tmp, array(array(-1, -1, -1),
array(-1, 16, -1), array(-1, -1, -1)), 8, 0);
imagejpeg($tmp, $saveto);
imagedestroy($tmp);
imagedestroy($src);
}
}
showProfile($user);
echo <<<_END
<form method='post' action='profile.php' enctype='multipart/form-data'>
<h3>Напишите статус и поставьте аватар</h3>
<textarea name='text' cols='50' rows='3'>$text</textarea><br>
_END;
?>
Фотошка: <input type='file' name='image' size='14'>
<input type='submit' value='Сохранить'>
</form></div><br>
</body>
</html>
Код javascript.js, который ругается на 4 строчку кода:
// Example 26-14: javascript.js
canvas = O('logo')
context = canvas.getContext('2d')
context.font = 'bold italic 97px Georgia'
context.textBaseline = 'top'
image = new Image()
image.src = 'robin.png'
image.onload = function()
{
gradient = context.createLinearGradient(0, 0, 0, 89)
gradient.addColorStop(0.00, '#faa')
gradient.addColorStop(0.66, '#f00')
context.fillStyle = gradient
context.fillText( "R bin's Nest", 0, 0)
context.strokeText("R bin's Nest", 0, 0)
context.drawImage(image, 64, 32)
}
function O(i) { return typeof i == 'object' ? i : document.getElementById(i) }
function S(i) { return O(i).style }
function C(i) { return document.getElementsByClassName(i) }
Код header.php:
<?php // Example 26-2: header.php
session_start();
echo "<!DOCTYPE html>\n<html><head>";
require_once 'functions.php';
$userstr = ' (Хз кто)';
if (isset($_SESSION['user']))
{
$user = $_SESSION['user'];
$loggedin = TRUE;
$userstr = " ($user)";
}
else $loggedin = FALSE;
echo "<title>$appname$userstr</title><link rel='stylesheet' " .
"href='styles.css' type='text/css'>" .
"</head><body><center><img src='robin.png' width='50%'></center>" .
"<div class='appname'>$appname$userstr</div>" .
"<script src='javascript.js'></script>";
if ($loggedin)
{
echo "<br ><ul class='menu'>" .
"<li><a href='members.php?view=$user'>Главная</a></li>" .
"<li><a href='members.php'>Людишки</a></li>" .
"<li><a href='friends.php'>Дэблишники</a></li>" .
"<li><a href='messages.php'>Сообщеньки</a></li>" .
"<li><a href='profile.php'>Я</a></li>" .
"<li><a href='logout.php'>Выйти</a></li></ul><br>";
}
else
{
echo ("<br><ul class='menu'>" .
"<li><a href='index.php'>Нет</a></li>" .
"<li><a href='signup.php'>Зарегаться</a></li>" .
"<li><a href='login.php'>Войти</a></li></ul><br>" .
"<span class='info'>⇒ Войди шоб пользоваться сетью" .
", по-братски.</span><br><br>");
}
?>
И functions.php(имя хоста, юзерв и пароль скрыты):
<?php // Example 26-1: functions.php
$dbhost = 'localhost'; // Unlikely to require changing
$dbname = '*скрыто*'; // Modify these...
$dbuser = '*скрыто*'; // ...variables according
$dbpass = '*скрыто*'; // ...to your installation
$appname = "Переход"; // ...and preference
$connection = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if ($connection->connect_error) die($connection->connect_error);
function createTable($name, $query)
{
queryMysql("CREATE TABLE IF NOT EXISTS $name($query)");
echo "Table '$name' created or already exists.<br>";
}
function queryMysql($query)
{
global $connection;
$result = $connection->query($query);
if (!$result) die($connection->error);
return $result;
}
function destroySession()
{
$_SESSION=array();
if (session_id() != "" || isset($_COOKIE[session_name()]))
setcookie(session_name(), '', time()-2592000, '/');
session_destroy();
}
function sanitizeString($var)
{
global $connection;
$var = strip_tags($var);
$var = htmlentities($var);
$var = stripslashes($var);
return $connection->real_escape_string($var);
}
function showProfile($user)
{
if (file_exists("$user.jpg"))
echo "<img src='$user.jpg' style='float:left;'>";
$result = queryMysql("SELECT * FROM profiles WHERE user='$user'");
if ($result->num_rows)
{
$row = $result->fetch_array(MYSQLI_ASSOC);
echo stripslashes($row['text']) . "<br style='clear:left;'><br>";
}
}
?>
Заранее спасибо!