Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP для начинающих

Войти
Регистрация
Восстановить пароль
 
Grinders2007
0 / 0 / 0
Регистрация: 16.08.2015
Сообщений: 2
#1

Ошибка Parse error: syntax error, unexpected '}', expecting T_WHILE - PHP

16.08.2015, 02:25. Просмотров 318. Ответов 3
Метки нет (Все метки)

Здравствуйте, нашол на вашем сайте нужный мне кусочек php, переделал немного под себя и теперь выдает ошибку:
"Parse error: syntax error, unexpected '}', expecting T_WHILE in S:\home\koll.ru\www\index.php on line 34". Синтаксис вроде верный, можете подсказать в чем дело? Надо сделать код для сравнения пароля/логина в файле с тем что ввел пользователь на страничку и заменить его. Вот куски кода:
index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
error_reporting(E_ALL);
include('data.php');
if( isset( $_POST['submit'] ) )
{
    # Данные из формы
    $account = $_POST['account']; # ID (Логин)
    $password = md5( trim( $_POST['passw'] ) ); # Хэш пароля
    
# Проверяем, есть ли такой аккаунт
    while ( !empty( $users[$item] ) ) do 
    {
    $i = 0;
        if( $users[$i] == $account && $users[$i + 1] == $password )
            {
            # Стартуем сессию
            session_start();
        
            # Присваиваем переменным сессии значение логина и пароля
            $_SESSION['sess_account'] = $account;
            $_SESSION['sess_pass'] = $password;
        
            # Отправляем заголовок
            header('Location: secure.php');
        
            # Останавливаем работу скрипта
            exit();
            }
        else {
        # Останавливаем работу скрипта
        exit( 'Not enter' ); }
    $i = $i + 2;
    }
}
data.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
error_reporting(E_ALL);
# Считываем содержимое файла users.txt
$data = file('text.txt');
 
# Инициализируем массив, в котором будут содержаться данные о пользователях
$users = array();
 
# В цикле обходим массив
foreach( $data as $item )
{
    $i = 0;
    # Убираем пробелы
    $item = trim( $item );
    
    # Разбиваем по знаку "|" ------------------------
    list( $id, $md_passw ) = explode( '|', $item );
    
    # Заносим в массив 3x
    $users[$i] = $id;
    $i = $i++;
    $users[$i] = $md_passw;
    $i= $i++;
}
Я прогер начинающий, поэтому заносим данные в массив (1. логин/ 2. пароль/ 3. логин№2 /4. пароль№2 и.т.д.)
А потом в цикле ищем нужную комбинацию логин/пароль и сравниваем с тем что ввел пользователь. Потом заменяем пароль. Знаю что это тот еще велосипед, но хоть как-то.

Добавлено через 14 минут
text.txt --- файл с логинами
Кликните здесь для просмотра всего текста
lol|f899139df5e1059396431415e770c6dd
101|f899139df5e1059396431415e770c6dd
102|ec8956637a99787bd197eacd77acce5e
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2015, 02:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка Parse error: syntax error, unexpected '}', expecting T_WHILE (PHP):

В чем ошибка (Parse error: syntax error, unexpected '$i' (T_VARIABLE), expecting ';') ? - PHP
private function select($table_name,$fields,$where="",$order="",$up=true,$limit="") { for(int $i=0; $i<count($fields); $i++){ ...

Ошибка - Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' - PHP
вот код "<table> <tr> <td><?php the_category(); ?></td> <td> , </td> <td><a href = "comments_link();...

Ошибка - Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' - PHP
<div class="popup_container"> <div class="reg_popup"> <form action="" method="post" name="regform"> ...

Ошибка Parse error: syntax error, unexpected T_CLASS, expecting T_STRING or T_VARIABLE - PHP
да блин капец.. не могу понять ничего.. кто поможет? Parse error: syntax error, unexpected T_CLASS, expecting T_STRING or T_VARIABLE or...

Подскажите что не так, ошибка: Parse error: syntax error, unexpected '.', expecting ')' in - PHP
function database_connect($database_host, $database_username, $database_password) { return mysql_connect($database_host,...

Ошибка Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING - PHP
Ясно, что проблема с кавычками, но как исправить :о Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING...

3
Jodah
Эксперт PHP
2435 / 2107 / 707
Регистрация: 01.08.2012
Сообщений: 7,371
16.08.2015, 06:22 #2
Цитата Сообщение от Grinders2007 Посмотреть сообщение
while ( !empty( $users[$item] ) ) do
Нет такого цикла while-do. Есть while и do-while. В вашем случае первый (do удалить).
0
Grinders2007
0 / 0 / 0
Регистрация: 16.08.2015
Сообщений: 2
17.08.2015, 01:44  [ТС] #3
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
while ( $i < count($users)) 
    {
    
        if( $users[$i] == $account && $users[$i + 1] == $password )
            {
            # Стартуем сессию
            session_start();
        
            # Присваиваем переменным сессии значение логина и пароля
            $_SESSION['sess_account'] = $account;
            $_SESSION['sess_pass'] = $password;
        
            # Отправляем заголовок
            header('Location: secure.php');
            
            # Останавливаем работу скрипта
            exit();
            }
        else {
        # Останавливаем работу скрипта
        echo ( 'Not enter' ); }
    $i = $i + 2;
    }
Изменил команду, но все равно не сравнивает пароль. Проверил, в массиве почему-то только в 0 ячейка последний пароль в файле.

Добавлено через 7 часов 10 минут
Данную проблему решил, массив не отображается если логин из символов. Думаю это из-за того что $key в foreach принимается как переменная. Можно ли как-то указать тип ключа - текст? Так-же может ли на это влиять кодировка?
0
Jodah
Эксперт PHP
2435 / 2107 / 707
Регистрация: 01.08.2012
Сообщений: 7,371
17.08.2015, 08:56 #4
Цитата Сообщение от Grinders2007 Посмотреть сообщение
Можно ли как-то указать тип ключа - текст?
PHP
1
$a = "$a";
0
17.08.2015, 08:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2015, 08:56
Привет! Вот еще темы с ответами:

Ошибка - Parse error: syntax error, unexpected ')', expecting ';' - PHP
&lt;?php $x = 5; echo &quot;Переменная x=$x&lt;/br&gt;&quot;; function myFunction(){ $x = 2; } myFunction(); echo &quot;Переменная...

Ошибка Parse error: syntax error, unexpected '}', expecting ',' or ';' - PHP
&lt;?php $list = array(); $list = array(15, &quot;22&quot;, &quot;My string&quot;, true); echo $list; $list = &quot;New Element&quot;; echo &quot;&lt;br/&gt;&quot;; echo...

Ошибка Parse error: syntax error, unexpected '}', expecting ';' - PHP
Привет форумчане. Помогите пожалуйста, делаю мудуль к сайту, вот написал: if (isset($_POST)) {$title = $_POST; if ($title == '')...

Ошибка в php - Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in CODE on line 9 - PHP
Доброго времени суток! Есть код, в нем где-то есть ошибка (вроде кавычки), но знаний php у меня 0, а отредактировать код очень нужно :( ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru