За последние 24 часа нас посетили 16475 программистов и 1561 робот. Сейчас ищут 2034 программиста ...

Компоновка страницы

Тема в разделе "PHP для новичков", создана пользователем ReggiN, 5 мар 2008.

  1. ReggiN

    ReggiN Активный пользователь

    С нами с:
    5 мар 2008
    Сообщения:
    11
    Симпатии:
    0
    Доброго времени суток, господа. Я изучаю PHP и сейчас работаю над учебными проэктами. И вроде бы правильно написан скрипт, но браузер(да и редактор тоже) не опознаёт код после компоновки HTML-страницы

    PHP:
    1. <?php
    2. include("/home/userpass/dbpass.inc");
    3. mysql_connect($hostname, $user, $password);
    4. mysql_select_db("weblogs");
    5.  
    6. //проверить подлиность юзера
    7. $test_username= $_POST['test_username'];
    8. $query = "Select password FROM login WHERE username = '$test_username'";
    9. $result = mysql_query ($query);
    10. if (mysql_num_rows($result) !=1) {
    11.     echo "Что то неправильно...";
    12.     exit;
    13. }
    14. $pasword_row = mysql_fetch_array($result);
    15. $db_password = $password_row[0];
    16.  
    17. if ($_POST['test_password'] == $db_password &&
    18. $_POST['test_password'] != "")  {
    19.     if ($_POST['Submit'] == 'Enter')    {
    20.         //ввести новую запись. Дату представлена в виде целого числа
    21.         $date = date('Ymd');
    22.         $blogtext = $_POST['blogtext'];
    23.         $query = "INSERT INTO mylog (ID, date, blogtext) VALUES(NULL, $date, '$blogtext')";
    24.         $result = mysql_query($query);
    25.         if (mysql_affected_rows() == 1) {
    26.             header("Location: db_login.php");
    27.         } else  {
    28.             echo "There was a problem inserting your text.";
    29.             exit;
    30.         }
    31.     } else  {
    32.                                              //вывести на экран форму
    33.        
    34.         $php_self = $_SERVER['PHP_SELF'];
    35.         $test_password = $_post['test_password'];
    36.         $form_str = <<<EOFORMSTR
    37.        
    38.         <HTML>
    39.         <head>
    40.         <title>Weblog data entry screen</title>
    41.         </head>
    42.         <body>
    43.         <form action="$php_self" method="POST">
    44.         <p>Текст:<br>
    45.         <textarea name="blogtext" cols=75 rows=20
    46.         wrap="virtual"></textarea></p>
    47.         <input type="hidden" name="test_username" value="$test_username">
    48.         <p><input type="hidden" name="test_password" value="$test_password">
    49.         <p><input type="submit" name="Submit" value="Enter"></p>
    50.         </form>
    51.         </body>
    52.         </HTML>
    53.        
    54.         EOFORMSTR;
    55.                
    56.         echo $form_str;
    57.     }
    58. } else  {
    59.     mail("me@localhost", "Weblog snoop", "Someone from $REMOTE_ADDR is trying to get into your weblog entry screen.");
    60. }
    61. ?>
    62.  
    Вроде не заканчиавется компоновка закрытием EOFORMSTR. Почему - не могу понять. Обьясните, пожалуйста, что не так или как лучше записать такой код. Заранее благодарен.
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    http://php.net/heredoc
     
  3. ReggiN

    ReggiN Активный пользователь

    С нами с:
    5 мар 2008
    Сообщения:
    11
    Симпатии:
    0
    Убрал все пробелы. Код теперь работает до конца, но HTML страница не выводится.
    PHP:
    1. <?php
    2. include("/home/userpass/dbpass.inc");
    3. mysql_connect($hostname, $user, $password);
    4. mysql_select_db("weblogs");
    5.  
    6. //проверить подлиность юзера
    7. $test_username= $_POST['test_username'];
    8. $query = "Select password FROM login WHERE username = '$test_username'";
    9. $result = mysql_query ($query);
    10. if (mysql_num_rows($result) !=1)    {
    11.     echo "Something is wrong";
    12.     exit;
    13. }
    14.  
    15. $pasword_row = mysql_fetch_array($result);
    16. $db_password = $password_row[0];
    17.  
    18. if ($_POST['test_password'] == $db_password &&
    19. $_POST['test_password'] != "")  {
    20.     if ($_POST['Submit'] == 'Enter')    {
    21.         //ввести новую запись. Дату представлена в виде целого числа
    22.         $date = date('Ymd');
    23.         $blogtext = $_POST['blogtext'];
    24.         $query = "INSERT INTO mylog (ID, date, blogtext) VALUES(NULL, $date, '$blogtext')";
    25.         $result = mysql_query($query);
    26.         if (mysql_affected_rows() == 1) {
    27.             header("Location: db_login.php");
    28.         } else  {
    29.             echo "There was a problem inserting your text.";
    30.             exit;
    31.         }
    32.     } else  {
    33.         //вывести на экран форму
    34.        
    35.         $php_self = $_SERVER['PHP_SELF'];
    36.         $test_password = $_POST['test_password'];
    37. $form_str = <<< EOD
    38. <HTML>
    39. <head>
    40. <title>Weblog data entry screen</title>
    41. </head>
    42. <body>
    43. <form action="$php_self" method="POST">
    44. <p>Текст:<br>
    45. <textarea name="blogtext" cols=75 rows=20 wrap="virtual"></textarea></p>
    46. <input type="hidden" name="test_username" value="$test_username">
    47. <p><input type="hidden" name="test_password" value="$test_password">
    48. <p><input type="submit" name="Submit" value="Enter"></p>
    49. </form>
    50. </body>
    51. </HTML>
    52. EOD;
    53.     echo $form_str;
    54.     }
    55. } else  {
    56.     mail("me@localhost", "Weblog snoop", "Someone from $REMOTE_ADDR is trying to get into your weblog entry screen.");
    57. }
    58. ?>
     
  4. ReggiN

    ReggiN Активный пользователь

    С нами с:
    5 мар 2008
    Сообщения:
    11
    Симпатии:
    0
    Всем спасибо, я уже разобрался, теперь код работает исправно.