Показано с 1 по 7 из 7

Тема: Трабл с PHP

  1. #1

    По умолчанию Трабл с PHP

    В общем фишка такая, есть скрипт который как упоротый не хочет работать на серваке, на обычном хостинге работает в лет, не могу понять в чем трабл

    форма
    Код:
    <form action='?act=changepassword' method=post>
    Хотите сменить пароль?<br>Минимум 6 символов - максимум 10 символов.<br>
    Новый пароль  <input type ='password' class='bginput' name='pass' >
    <input type=submit value='Сменить пароль'></form>
    действие
    Код:
    if ($_GET['act']=='changepassword')
    {
    if ( strlen($pass) < 6 or strlen($pass) > 10 ){
    echo "<br><br><br><br><br>В пароле должно быть от 6 до 10 символов <BR>";
    }
    else{
    	$sSQL="UPDATE tz_members SET pass='".md5($pass)."' WHERE id=".$_SESSION['id'];
    	mysql_query($sSQL) or die(mysql_error());
    	echo "Пароль изменён<br>";
    	echo "<br><br><br><a href='index.php'>";
    	echo "На главную</a></table></td></tr></div>";
    }}
    постоянно говорит
    В пароле должно быть от 6 до 10 символов
    а если стереть
    Код:
    if ( strlen($pass) < 6 or strlen($pass) > 10 ){
    echo "<br><br><br><br><br>В пароле должно быть от 6 до 10 символов <BR>";
    }
    else{
    то генерит какой-то непонятный пароль который потом не работает.

    может в серваке что-то не так настроено или версию пхп надо обновить?
    сейчас стоит php-5.1.6-27.el5 - включен как модуль апач
    ispmanager light
    centos

  2. #2
    Senior Member Аватар для xaker1
    Регистрация
    30.06.2009
    Сообщений
    2,739

    По умолчанию

    Проблема в скрипте.
    Код:
    if ($_GET['act']=='changepassword')
    {
    if ( strlen($_POST[$pass]) < 6 or strlen($_POST[$pass]) > 10 ){
    echo "<br><br><br><br><br>В пароле должно быть от 6 до 10 символов <BR>";
    }
    else{
    	$sSQL="UPDATE tz_members SET pass='".md5($_POST[$pass])."' WHERE id=".$_SESSION['id'];
    	mysql_query($sSQL) or die(mysql_error());
    	echo "Пароль изменён<br>";
    	echo "<br><br><br><a href='index.php'>";
    	echo "На главную</a></table></td></tr></div>";
    }}
    ну как-то так.
    Стоит один раз попробовать что бы влюбиться... в ISP.

    На все мои сообщения, действует конфигурация сервера: ISP Pro (всегда актуальная current версия), FreeBSD 8.0, php as fcgi, nginx+apache.

    Бесплатные плагины для ISPmanager.

  3. #3

    По умолчанию

    Цитата Сообщение от xaker1 Посмотреть сообщение
    Проблема в скрипте.
    Код:
    if ($_GET['act']=='changepassword')
    {
    if ( strlen($_POST[$pass]) < 6 or strlen($_POST[$pass]) > 10 ){
    echo "<br><br><br><br><br>В пароле должно быть от 6 до 10 символов <BR>";
    }
    else{
    	$sSQL="UPDATE tz_members SET pass='".md5($_POST[$pass])."' WHERE id=".$_SESSION['id'];
    	mysql_query($sSQL) or die(mysql_error());
    	echo "Пароль изменён<br>";
    	echo "<br><br><br><a href='index.php'>";
    	echo "На главную</a></table></td></tr></div>";
    }}
    ну как-то так.
    попробовал, не помогло

  4. #4
    Senior Member Аватар для xaker1
    Регистрация
    30.06.2009
    Сообщений
    2,739

    По умолчанию

    Или так
    Код:
    if ($_REQUEST['act']=='changepassword')
    {
    if ( strlen($_REQUEST[$pass]) < 6 or strlen($_REQUEST[$pass]) > 10 ){
    echo "<br><br><br><br><br>В пароле должно быть от 6 до 10 символов <BR>";
    }
    else{
    	$sSQL="UPDATE tz_members SET pass='".md5($_REQUEST[$pass])."' WHERE id=".$_SESSION['id'];
    	mysql_query($sSQL) or die(mysql_error());
    	echo "Пароль изменён<br>";
    	echo "<br><br><br><a href='index.php'>";
    	echo "На главную</a></table></td></tr></div>";
    }}
    В любом случае, проблема в скрипте.
    Стоит один раз попробовать что бы влюбиться... в ISP.

    На все мои сообщения, действует конфигурация сервера: ISP Pro (всегда актуальная current версия), FreeBSD 8.0, php as fcgi, nginx+apache.

    Бесплатные плагины для ISPmanager.

  5. #5

    По умолчанию

    Цитата Сообщение от xaker1 Посмотреть сообщение
    Или так
    Код:
    if ($_REQUEST['act']=='changepassword')
    {
    if ( strlen($_REQUEST[$pass]) < 6 or strlen($_REQUEST[$pass]) > 10 ){
    echo "<br><br><br><br><br>В пароле должно быть от 6 до 10 символов <BR>";
    }
    else{
    	$sSQL="UPDATE tz_members SET pass='".md5($_REQUEST[$pass])."' WHERE id=".$_SESSION['id'];
    	mysql_query($sSQL) or die(mysql_error());
    	echo "Пароль изменён<br>";
    	echo "<br><br><br><a href='index.php'>";
    	echo "На главную</a></table></td></tr></div>";
    }}
    В любом случае, проблема в скрипте.

    тогда как он на другом сервере работает

    p.s. тоже не подходит, походу проблема в другом месте
    Последний раз редактировалось 1macsisru; 06.06.2010 в 01:51.

  6. #6

    По умолчанию

    сделал

    PHP код:
    if ($_REQUEST['act']=='changepassword')
    {
    $pass $_REQUEST['pass'];
    if ( 
    и всё запахало

  7. #7
    Senior Member Аватар для xaker1
    Регистрация
    30.06.2009
    Сообщений
    2,739

    По умолчанию

    $_REQUEST[$pass] - $ лишний написал, и не заметил, извиняюсь.
    На "других" хостингах, видно register_globals стоял.
    Вот должно тоже работать:
    Код:
    if ($_REQUEST['act']=='changepassword')
    {
    if ( strlen($_REQUEST['pass']) < 6 or strlen($_REQUEST['pass']) > 10 ){
    echo "<br><br><br><br><br>В пароле должно быть от 6 до 10 символов <BR>";
    }
    else{
    	$sSQL="UPDATE tz_members SET pass='".md5($_REQUEST['pass'])."' WHERE id=".$_SESSION['id'];
    	mysql_query($sSQL) or die(mysql_error());
    	echo "Пароль изменён<br>";
    	echo "<br><br><br><a href='index.php'>";
    	echo "На главную</a></table></td></tr></div>";
    }}
    Стоит один раз попробовать что бы влюбиться... в ISP.

    На все мои сообщения, действует конфигурация сервера: ISP Pro (всегда актуальная current версия), FreeBSD 8.0, php as fcgi, nginx+apache.

    Бесплатные плагины для ISPmanager.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •