Показывать имя человека, который является присоединенным к системе

Я делаю систему военных санкций с нуля. с PHP и MYSQL

Уже установите систему LOGIN пользователя

Мое сомнение:

Как мне удается показать сообщение желанного с именем пользователя, которое я присоединяюсь?

У МЕНЯ ВЫХОДИТ СЛЕДУЮЩАЯ ОШИБКА:

Warning: Missing argument 1 for bd_usuario (), called in C:\xampp\htdocs\Sistema de Sanciones\home.php он-лайн 24 and defined in C:\xampp\htdocs\Sistema de Sanciones\funciones.php он-лайн 8

Notice: Изменчивый Undefined: user_id in C:\xampp\htdocs\Sistema de Sanciones\funciones.php он-лайн 10

Я использую следующие формуляры:

ФОРМУЛЯР LOGIN:

<?php session_start(); ?>
<html>
<head>
    <title>Formulario de Registro</title>
    <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css">
</head>
<body>
<?php include "php/navbar.php"; ?>
<div class="container">
<div class="row">
<div class="col-md-6">
    <h2>Login</h2>

    <form role="form" name="login" action="php/login.php" method="post">
      <div class="form-group">
        <label for="username">Nombre de usuario o email</label>
        <input type="text" class="form-control" id="username" name="username" placeholder="Nombre de usuario">
      </div>
      <div class="form-group">
        <label for="password">Contrase&ntilde;a</label>
        <input type="password" class="form-control" id="password" name="password" placeholder="Contrase&ntilde;a">
      </div>

      <button type="submit" class="btn btn-default">Acceder</button>
    </form>
</div>
</div>
</div>
    <script src="js/valida_login.js"></script>
</body>
</html>

ФУНКЦИЯ LOGEO:

<?php

if(!empty($_POST)){
if(isset($_POST["username"]) &&isset($_POST["password"])){
    if($_POST["username"]!=""&&$_POST["password"]!=""){
        include "conexion.php";

        $user_id=null;
        $sql1= "select * from user where (username=\"$_POST[username]\" or email=\"$_POST[username]\") and password=\"$_POST[password]\" ";
        $query = $con->query($sql1);
        while ($r=$query->fetch_array()) {
            $user_id=$r["id"];
            break;
        }
        if($user_id==null){
            print "<script>alert(\"Acceso invalido.\");window.location='../login.php';</script>";
        }else{
            session_start();
            $_SESSION["user_id"]=$user_id;
            print "<script>window.location='../home.php';</script>";                
        }
    }
}
}

?>

ФУНКЦИЯ ПОКАЗЫВАНИЯ ИМЕНИ ПОЛЬЗОВАТЕЛЯ:

function bd_usuario($user_id)
{
$sql = "SELECT fullname FROM user WHERE id = '$user_id' LIMIT 1";
return $sql;
}

ФОРМУЛЯР БЛАГОПОЛУЧНОГО ПРИБЫТИЯ, КОГДА ПРИСОЕДИНЯЕТСЯ ПОЛЬЗОВАТЕЛЬ:

<?php
session_start();
if(!isset($_SESSION["user_id"]) || $_SESSION["user_id"]==null){
    print "<script>alert(\"Acceso invalido!\");window.location='login.php';     </script>";
}
$user_id=$_SESSION["user_id"];

?>
<?php include "php/navbar.php"; ?>
<?php include "funciones.php"; ?>

<html>
<head>
    <title>.: HOME :.</title>
    <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css">
</head>
<body>

<div class="container">
<div class="row">
<div class="col-md-6">
    <h2>Bienvenido</h2>
<?php
$usuario = bd_usuario();
echo "";
?>
</div>
</div>
<    /div>
</body>
</html>

БОЛЬШОЕ СПАСИБО ИЗ-ЗА ВАШЕЙ ПОМОЩИ

1
задан 16.01.2017, 05:08
0 ответов

В призыв к функции на странице home.php ты не включаешь признак user_id, должен перемещать это как аргумент.

Доказательство помещая следующий код внутри функции bd_usuario:

include "conexion.php";

$sql = "SELECT fullname FROM user WHERE id = '$user_id' LIMIT 1";
$fullname = null;

$query = $con->query($sql);
while ($r=$query->fetch_array()) {
    $fullname=$r["fullname"];
    break;
}

return $fullname;
1
ответ дан 03.12.2019, 17:40
  • 1
    уже он не дает ошибку, но происходит со мной является этим: SELECT fullname FROM user WHERE пойдите = ' 1' LIMIT 1 –  16.01.2017, 05:36
  • 2
    Мира ла funció n в этом случае ты должен выполнять SQL: $query = $con->query($sql); while ($r=$query->fetch_array()) { $user_id=$r["id"]; break; } –  16.01.2017, 05:49
  • 3
    Notice: Изменчивый Undefined: с in C:\xampp\htdocs\Sistema de Sanciones\funciones.php он-лайн 11 Фатальная ошибка: Uncaught Ошибка: Call to в member function query () on null in C:\xampp\htdocs\Sistema de Sanciones\funciones.php:11 Stack наметил: #0 C:\xampp\htdocs\Sistema de Sanciones\home.php(24): bd_usuario (' 1') #1 {main} thrown in C:\xampp\htdocs\Sistema de Sanciones\funciones.php он-лайн 11 дает мне эту ошибку, если я прикрепляю ее внутри функции –  16.01.2017, 05:53
  • 4
    Привет @AndresSanchez. ¡ Желанный в Стакк Оверфлов в espaГ±ol и спасибо за твой вклад! ¿ Podrí схвати показывать с немного má s детали có mo estarí эксперт отвечая на вопрос? Quizá s convendrí чтобы подробно описывать немного мотивов и показывать có я говорю в твоем ответе (продолжая, что объясняется в CГіmo отвечать ). Идея состоит в том, чтобы складывать ответы с самым большим возможным качеством в сайте. –  16.01.2017, 05:55
  • 5
    @VictorAlejandroAlvaradoVilo - Я Предполагаю, что $user_id - nú простые целые числа... сними кавычки просто в query... id = $user_id –  16.01.2017, 13:54