Member 12956789 Ответов: 2

Почему закрывающая скобка черная ?


Привет,

В моем блокноте++ линия на 116 показывает закрывающую скобку ELSE black. Действительно очень загадочно!
Я знаю, что мой код не очень аккуратен, но я приведу его в порядок, основываясь на обратной связи, которую я получил до сих пор, но в то же время мой великий ум заполнен вопросом, почему строка на 116 показывает закрывающую скобку ELSE black.
<html>
<head>
<title>
$user Home Page
</title>
</head>
<body>
<body background=".png">

<?php
session_start();
require "conn.php";

/*Check if user is logged-in or not by checking if session is set or not. 
If user is not logged-in then redirect to login page. Else, show user's account homepage.*/

if(!isset($_SESSION["user"])) 
{
    header("location:login.php");
}
else 
{
    $user = $_SESSION["user"];
    $sql = "SELECT * FROM users WHERE Username = '".$user."'";
    $result = $conn->query($sql);
    while($row = mysqli_fetch_assoc($result)) 
    {
        $db_id = $row["Id"];
        $db_username = $row["Username"];
        $db_forename = $row["Forename"];
        $db_surname = $row["Surname"];
        $db_email = $row["Email"];
        $db_bio = $row["Bio"];
        $db_status = $row["Status"];
    
    
        //Welcome user by name.
        echo "<center>Welcome <h2>$db_forename $db_surname!</center>"?></h2>|

        <?php
        //Display log-out link.
        echo "<p align='right'><a href='logout.php'>$user Log Out</a>";?>|</p><br>
    
        <form method="post" action="">    
        <div class="form-group">
        <center><label>Post Status To Friends:</label>
        <input type="text" placeholder="Post Status To Friends" name="post_status_to_friends" /></center><br>
        <center><button type="submit" class="btn btn-default" name="post_status_to_friends" />Post Status To Friends!</button></center>
        </div>

        <form method="post" action="">
        <div class="form-group">
        <center><label>Post Status To Public:</label>
        <input type="text" placeholder="Post Status To Public" name="post_status_to_public" /></center><br>
        <center><button type="submit" class="btn btn-default" name="post_status_to_public" />Post Status To Public!</button></center>
        </div>
    
        <?php
        //Post User Status To Friends in $user table.
        
        if  (isset($_POST['post_status_to_friends']))
        {
            $status_to_friends = trim($_POST["post_status_to_friends"]);
            $status_to_friends = mysqli_real_escape_string($conn,$status_to_friends);
        
            $conn->query("UPDATE $user SET Status_To_Friends $status_to_friends WHERE Username = '".$user."'");
            if($conn->query($sql)===TRUE)
            {
                echo "posted status for friends to $user table!";
                $conn->close();
                exit();
            }
            else    
            {
                echo "posting status for friends to $user table failed!";
                $conn->close();
                exit();
            }
    
            //Post User Status To Friends in "users" table.
        
            $conn->query("UPDATE users SET Status_To_Friends $status_to_friends WHERE Username = '".$user."'");
            if($conn->query($sql)===TRUE)
            {
                echo "posted status for friends to users table!";
                $conn->close();
                exit();
            }
            else    
            {
                echo "posting status for friends to users table failed!";
                $conn->close();
                exit();
            }
        
            //Display User Status To Friends. Search for User's data with $user.
            
            $query = "SELECT * FROM $user WHERE Username = '".$user."'";
            $result = mysqli_query($conn,$query);
            $numrows = mysqli_num_rows($result);
            if($numrows = 0)
            {        
                echo "No data!";
                $conn->close();
                exit();
            }
            else 
            {
                while($row = mysqli_fetch_assoc($result)) 
                {      
                    $db_status_to_friends = $row["Status_To_Friends"];
                }
                echo "<br>$user Status To Friends:<br>
                $db_status_to_friends";?><br>
                <br>
            }
    
        <?php
        //Post User Status To Public in $user table.
    
        if  (isset($_POST['post_status_to_public']))
        {
            $status_to_public = trim($_POST["post_status_to_public"]);
            $status_to_public = mysqli_real_escape_string($conn,$status_to_public);
        
            $conn->query("UPDATE $user SET Status_To_Public $status_to_public WHERE Username = '".$user."'");
            if($conn->query($sql)===TRUE)
            {
                echo "posted status for public to $user table!";
                $conn->close();
                exit();
            }
            else    
            {
                echo "posting status for public to $user table failed!";
                $conn->close();
                exit();
            }
    
            //Post User Status To Public in users table.
            $conn->query("UPDATE users SET Status_To_Public $status_to_public WHERE Username = '".$user."'");
            if($conn->query($sql)===TRUE)
            {
                echo "posted status for public to users table!";
                $conn->close();
                exit();
            }
            else    
            {
                echo "posting status for public to users table failed!";
                $conn->close();
                exit();
            }
    
            //Display User Status To Public. Search for User's data with $user.
            
            $query = "SELECT * FROM $user WHERE Username = '".$user."'";
            $result = mysqli_query($conn,$query);
            $numrows = mysqli_num_rows($result);
            if($numrows = 0)
            {        
                echo "No data!";
                $conn->close();
                exit();
            }
            else 
            {
                while($row = mysqli_fetch_assoc($result)) 
                {      
                    $db_status_to_public = $row["Status_To_Public"];
                }
            echo "<br>$user Status To Public:<br>
            $db_status_to_public";?><br>
            <br>
            <?php 
            }
        }
        
        //Display User Bio.
        echo "<br>Bio:<br>";
        echo "$db_bio";?><br>
        <br>
        
        <?php 
        //Display User's Latest View.
        echo "<br>Latest View:<br>";
        echo "$db_latest_view";?><br>
        <br>

        <?php 
        //Display User's Latest Viewed Url in iFrame.?>
        <iframe src="<?php $db_latest_view;?>"></iframe>
        <?php     
    }
}
?>
</body>
</html>


Что я уже пробовал:

Пробовал менять код разными способами, но безуспешно!

Bryian Tan

не уверен, что это проблема с копией вставки, но похоже, что в коде отсутствует закрывающий тег php?

else 
            {
                while($row = mysqli_fetch_assoc($result)) 
                {      
                    $db_status_to_friends = $row["Status_To_Friends"];
                }
                echo "<br>$user Status To Friends:<br>
                $db_status_to_friends";?><br>
                <br>
            }
?> 
 <?php
        //Post User Status To Public in $user table.
...
...

Member 12956789

- Вы уверены ?
Я уже добавил сюда закрывающую скобку:

$db_status_to_friends";?&ГТ;

2 Ответов

Рейтинг:
5

Peter Leow

Вы должны быть очень дотошны в отношении сопряжения открывающих и закрывающих тегов, скобок и т. д., Например, этот блок кода должен быть:

<?php
session_start();
require "conn.php";

/*Check if user is logged-in or not by checking if session is set or not. 
If user is not logged-in then redirect to login page. Else, show user's account homepage.*/

if(!isset($_SESSION["user"])) 
{
    header("location:login.php");
}
else 
{
    $user = $_SESSION["user"];
    $sql = "SELECT * FROM users WHERE Username = '".$user."'";
    $result = $conn->query($sql);
    while($row = mysqli_fetch_assoc($result)) 
    {
        $db_id = $row["Id"];
        $db_username = $row["Username"];
        $db_forename = $row["Forename"];
        $db_surname = $row["Surname"];
        $db_email = $row["Email"];
        $db_bio = $row["Bio"];
        $db_status = $row["Status"];
    
    
        //Welcome user by name.
		echo "<center>Welcome <h2>$db_forename $db_surname!</center></h2>";

         //Display log-out link.
		echo "<p align='right'><a href='logout.php'>$user Log Out</a></p><br>"; 
	
	}
}
?>
Вы должны выяснить все остальное, если таковые имеются. И последнее, но не менее важное: вы должны использовать PHP подготовленные заявления[^] для предотвращения риска SQL-инъекция[^]


Member 12956789

Можете ли вы показать пример, чтобы никто не мог SQL inject ? Вы можете изменить мой код. Другие новички могут учиться на вашем примере в будущем, кто проверит эту тему.

Спасибо!

Рейтинг:
16

Patrice T

Вы уверены насчет двойной метки ?

<body>
<body background=".png">

[Обновление]
Цитата:
Позже я добавлю туда файл img.

Что бы вы ни планировали сделать, у вас не может быть 2 <body> теги.


Member 12956789

Позже я добавлю туда файл img.