Jump to content
  • 0

ОШИБКА Parse error: syntax error, unexpected T_ELSE in Z:\home\localhost\www\pStory\update_user.php on line 30


Mahay
 Share

Question

Подскажите пожалуйста в чем может быть проблема, не могу понять!

30 строка - else if (isset($_POST['name_'];))//Если существует пароль


<?php
session_start();
include ("registr/bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password'",$db);
$myrow2 = mysql_fetch_array($result2);
if (empty($myrow2['id']))
{
//Если не действительны, то закрываем доступ
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
}
}
else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); }
$old_login = $_SESSION['login']; //Старый логин нам пригодиться
$id = $_SESSION['id'];//идентификатор пользователя тоже нужен
$ava = "avatars/net-avatara.jpg";//стандартное изображение будет кстати
////////////////////////
////////ИЗМЕНЕНИЕ ИМЕНИ
////////////////////////
else if (isset($_POST['name_'])//Если существует пароль
{
$name_ = $_POST['name_'];
$name_ = stripslashes($name_);$name_ = htmlspecialchars($name_);$name_ = trim($name_);//удаляем все лишнее
if ($name_ == '') { exit("Вы не ввели пароль");} //если пароль не введен, то выдаем ошибку
if (strlen($name_) < 3 or strlen($name_) > 15) {//проверка на количество символов
exit ("Пароль должен состоять не менее чем из 3 символов и не более чем из 15."); //останавливаем выполнение сценариев
}
$result8 = mysql_query("UPDATE users SET name_='$name_' WHERE login='$old_login'",$db);//обновляем пароль
if ($result8=='TRUE') {//если верно, то обновляем его в сессии
$_SESSION['name_'] = $name_;
echo "<html><head><meta http-equiv='Refresh' content='5; URL=page.php?id=".$_SESSION['id']."'></head><body>Ваш пароль изменен! Вы будете перемещены через 5 сек. Если не хотите ждать, то <a href='page.php?id=".$_SESSION['id']."'>нажмите сюда.</a></body></html>";}//отправляем обратно на его страницу
}
////////////////////////
////////ИЗМЕНЕНИЕ ПАРОЛЯ
////////////////////////
else if (isset($_POST['password']))//Если существует пароль
{
$password = $_POST['password'];
$password = stripslashes($password);$password = htmlspecialchars($password);$password = trim($password);//удаляем все лишнее
if ($password == '') { exit("Вы не ввели пароль");} //если пароль не введен, то выдаем ошибку
if (strlen($password) < 3 or strlen($password) > 15) {//проверка на количество символов
exit ("Пароль должен состоять не менее чем из 3 символов и не более чем из 15."); //останавливаем выполнение сценариев
}
$password = md5($password);//шифруем пароль
$password = strrev($password);// для надежности добавим реверс
$password = $password."b3p6f";
//можно добавить несколько своих символов по вкусу, например, вписав "b3p6f". Если этот пароль будут взламывать методом подбора у себя на сервере этой же md5,то явно ничего хорошего не выйдет. Но советую ставить другие символы, можно в начале строки или в середине.
//При этом необходимо увеличить длину поля password в базе. Зашифрованный пароль может получится гораздо большего размера.

$result4 = mysql_query("UPDATE users SET password='$password' WHERE login='$old_login'",$db);//обновляем пароль
if ($result4=='TRUE') {//если верно, то обновляем его в сессии
$_SESSION['password'] = $password;
echo "<html><head><meta http-equiv='Refresh' content='5; URL=page.php?id=".$_SESSION['id']."'></head><body>Ваш пароль изменен! Вы будете перемещены через 5 сек. Если не хотите ждать, то <a href='page.php?id=".$_SESSION['id']."'>нажмите сюда.</a></body></html>";}//отправляем обратно на его страницу
}
////////////////////////
////////ИЗМЕНЕНИЕ АВАТАРЫ
////////////////////////
else if (isset($_FILES['fupload']['name'])) //отправлялась ли переменная
{
if (empty($_FILES['fupload']['name']))
{
//если переменная пустая (пользователь не отправил изображение),то присваиваем ему заранее приготовленную картинку с надписью "нет аватара"
$avatar = "registr/avatars/net-avatara.jpg"; //можете нарисовать net-avatara.jpg или взять в исходниках
$result7 = mysql_query("SELECT avatar FROM users WHERE login='$old_login'",$db);//извлекаем текущий аватар
$myrow7 = mysql_fetch_array($result7);
if ($myrow7['avatar'] == $ava) {//если аватар был стандартный, то не удаляем его, ведь у на одна картинка на всех.
$ava = 1;
}
else {unlink ($myrow7['avatar']);}//если аватар был свой, то удаляем его, затем поставим стандарт
}
else
{
//иначе - загружаем изображение пользователя для обновления
$path_to_90_directory = 'registr/avatars/';//папка, куда будет загружаться начальная картинка и ее сжатая копия

if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['fupload']['name']))//проверка формата исходного изображения
{

$filename = $_FILES['fupload']['name'];
$source = $_FILES['fupload']['tmp_name'];
$target = $path_to_90_directory . $filename;
move_uploaded_file($source, $target);//загрузка оригинала в папку $path_to_90_directory
if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
$im = imagecreatefromgif($path_to_90_directory.$filename) ; //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](PNG)|(png)$/', $filename)) {
$im = imagecreatefrompng($path_to_90_directory.$filename) ;//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}

if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
$im = imagecreatefromjpeg($path_to_90_directory.$filename); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}

//СОЗДАНИЕ КВАДРАТНОГО ИЗОБРАЖЕНИЯ И ЕГО ПОСЛЕДУЮЩЕЕ СЖАТИЕ ВЗЯТО С САЙТА www.codenet.ru
// Создание квадрата 90x90
// dest - результирующее изображение
// w - ширина изображения
// ratio - коэффициент пропорциональности
$w = 90; // квадратная 90x90. Можно поставить и другой размер.
// создаём исходное изображение на основе
// исходного файла и определяем его размеры
$w_src = imagesx($im); //вычисляем ширину
$h_src = imagesy($im); //вычисляем высоту изображения
// создаём пустую квадратную картинку
// важно именно truecolor!, иначе будем иметь 8-битный результат
$dest = imagecreatetruecolor($w,$w);
// вырезаем квадратную серединку по x, если фото горизонтальное
if ($w_src>$h_src)
imagecopyresampled($dest, $im, 0, 0,
round((max($w_src,$h_src)-min($w_src,$h_src))/2),
0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
// вырезаем квадратную верхушку по y,
// если фото вертикальное (хотя можно тоже серединку)
if ($w_src<$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w,
min($w_src,$h_src), min($w_src,$h_src));
// квадратная картинка масштабируется без вырезок
if ($w_src==$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);

$date=time(); //вычисляем время в настоящий момент.
imagejpeg($dest, $path_to_90_directory.$date.".jpg");//сохраняем изображение формата jpg в нужную папку, именем будет текущее время. Сделано, чтобы у аватаров не было одинаковых имен.
//почему именно jpg? Он занимает очень мало места + уничтожается анимирование gif изображения, которое отвлекает пользователя. Не очень приятно читать его комментарий, когда краем глаза замечаешь какое-то движение.
$avatar = $path_to_90_directory.$date.".jpg";//заносим в переменную путь до аватара.
$delfull = $path_to_90_directory.$filename;
unlink ($delfull);//удаляем оригинал загруженного изображения, он нам больше не нужен. Задачей было - получить миниатюру.
$result7 = mysql_query("SELECT avatar FROM users WHERE login='$old_login'",$db);//извлекаем текущий аватар пользователя
$myrow7 = mysql_fetch_array($result7);
if ($myrow7['avatar'] == $ava) {//если он стандартный, то не удаляем его, ведь у нас одна картинка на всех.
$ava = 1;
}
else {unlink ($myrow7['avatar']);}//если аватар был свой, то удаляем его

}
else
{
//в случае несоответствия формата, выдаем соответствующее сообщение
exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>");
}
}
$result4 = mysql_query("UPDATE users SET avatar='$avatar' WHERE login='$old_login'",$db);//обновляем аватар в базе
if ($result4=='TRUE') {//если верно, то отправляем на личную страничку
echo "Ваша аватарка изменена! Вы будете перемещены через 5 сек. Если не хотите ждать, то <a href='page.php?id=".$_SESSION['id']."'>нажмите сюда.</a>";}
}
?>

Edited by Mahay
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0


else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
}
$old_login = $_SESSION['login']; //Старый логин нам пригодиться
$id = $_SESSION['id'];//идентификатор пользователя тоже нужен
$ava = "avatars/net-avatara.jpg";//стандартное изображение будет кстати
////////////////////////
////////ИЗМЕНЕНИЕ ИМЕНИ
////////////////////////
elseif (isset($_POST['name_'];))//Если существует пароль
{

что вот этот кусок


$old_login = $_SESSION['login']; //Старый логин нам пригодиться
$id = $_SESSION['id'];//идентификатор пользователя тоже нужен
$ava = "avatars/net-avatara.jpg";//стандартное изображение будет кстати

делает между } и elseif ?

ЗЫ Сначала показалось что не хватает скобки, а тут вообще нарушение конструкции

Edited by wwt
Link to comment
Share on other sites

  • 0

вообще, в такой конструкции else ставится последним условием, а у вас он получается второй:


else {
//Проверяем, зарегистрирован ли вошедший

а дальше опять else if...

кстати да. Я что-то даже не обратил внимания. Код вообще написан ужасно не поймешь где что.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By lanadar
      Здравствуйте. Прошу помочь с похожей проблемой. В битриксе чайник, работала с другими платформами.
       
      Есть лента новостей, созданная с использованием комплексного компонента. Вся информация добавлялась через админку и выводилась корректно. 
       
      Сейчас информация Подробно не выводится, есть анонсы новостей, ведущие в пустоту.
       
      В админке вся информация в поле Подробно есть.
       
      Где нужно перенаправить пути, чтобы компонент правильно подтягивал информацию?
       
      Буду очень признательна за помощь.
    • By sdelkin
      Warning: explode() expects parameter 2 to be string, array given in /home/u492424888/public_html/functions.php on line 222 Warning: explode() expects parameter 2 to be string, array given in /home/u492424888/public_html/functions.php on line 222 Warning: explode() expects parameter 2 to be string, array given in /home/u492424888/public_html/functions.php on line 222
        вот такая ошибка на сайте. Как её убрать? Помогите пожалуйста... http://sdelkino.eu/add.html
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy