Php 使用fwrite显示sql查询

Php 使用fwrite显示sql查询,php,sql,fwrite,Php,Sql,Fwrite,我正试图从sql数据库中提取一个用户名以放置在其上。我的数据库结构如下所示。无论我做什么,它都不起作用,我似乎不明白这一点,因为我能够通过这样做来回应人们的用户名。$user_info['username']。然而,当我把它放在fwrite函数中时,什么都没有显示。 我遗漏了什么,为什么用户名没有显示在fwrite函数中 看起来您的fwrite很好,但是您的在用户名输出之后,可能会被浏览器作为标记的结尾弄糊涂 试试这个: fwrite($fp, "<div class='msgln'&g

我正试图从sql数据库中提取一个用户名以放置在其上。我的数据库结构如下所示。无论我做什么,它都不起作用,我似乎不明白这一点,因为我能够通过这样做来回应人们的用户名。$user_info['username']。然而,当我把它放在fwrite函数中时,什么都没有显示。 我遗漏了什么,为什么用户名没有显示在fwrite函数中


看起来您的
fwrite
很好,但是您的
在用户名输出之后,可能会被浏览器作为标记的结尾弄糊涂

试试这个:

fwrite($fp, "<div class='msgln'> ".$user_info['username']."&gt;".stripslashes(htmlspecialchars($text))."</div>");
fwrite($fp,“$user\u info['username']”。条带斜杠(htmlspecialchars($text))。”;

您需要定义$user\u信息:

<?
mysql_connect("localhost", "root", "password") or die(mysql_error());
mysql_select_db("root_members") or die(mysql_error());

session_start();
if(isset($_SESSION['name'])){

// select from database
$result = mysql_query('SELECT * FROM users WHERE username="' . $_SESSION['name'] . '"'); 
// retrieve row
$user_info = mysql_fetch_assoc($result); // fixed this from mysql_fetch_row to mysql_fetch_assoc

$text = $_POST['text']; 
$fp = fopen("log.html", 'a');
fwrite($fp, "<div class='msgln'> ".$user_info['username']." &gt;".stripslashes(htmlspecialchars($text))."</div>");
fclose($fp);
}
?>


在哪里填充
$user\u info
?看起来这是拼图中缺失的部分。我还修复了大于符号,它需要一个实体代码才能在HTML中正确呈现

<?php
mysql_connect("localhost", "root", "password") or die(mysql_error());
mysql_select_db("root_members") or die(mysql_error());

session_start();
if (isset($_SESSION['name'])) {
    $sql = sprintf("SELECT username FROM root_members WHERE querygoeshere='%s'",
                   mysql_real_escape_string($querygoeshere));

    $result = mysql_query($sql);
    if (!$result) {
        die('Could not execute query: ' . mysql_error());
    }
    $row = mysql_fetch_row($result);
    $username = $result[0];

    $text = $_POST['text'];
    $fp = fopen("log.html", 'a');
    fwrite($fp, "<div class='msgln'>" . $username . " &gt; " . stripslashes(htmlspecialchars($text)) ."</div>");
    fclose($fp);
}

哪里定义了
$user\u info['username']
?如果使用
var\u dump()
it会发生什么?我还看到了一些针对缺少的
$user\u info['username']
变量的其他答案。很高兴你成功了!文件中没有显示任何内容吗?或者页面当用户名放在fwrite中时,它不会显示在文件或页面的任何地方。
$user\u info['username']
在哪里定义?因为它似乎没有在任何地方定义……那么我如何正确地定义它,因为我以为我已经在index.php页面中定义了它。对不起。现在试试看。mysql_fetch_行无法工作,需要mysql_fetch_assoccare-此脚本存在漏洞。有关转义SQL查询的一种方法,请参见我的答案。另外,如果您不需要整行,我建议您只拉
username
,因为拉所有内容会带来不必要的负担。
<?php
mysql_connect("localhost", "root", "password") or die(mysql_error());
mysql_select_db("root_members") or die(mysql_error());

session_start();
if (isset($_SESSION['name'])) {
    $sql = sprintf("SELECT username FROM root_members WHERE querygoeshere='%s'",
                   mysql_real_escape_string($querygoeshere));

    $result = mysql_query($sql);
    if (!$result) {
        die('Could not execute query: ' . mysql_error());
    }
    $row = mysql_fetch_row($result);
    $username = $result[0];

    $text = $_POST['text'];
    $fp = fopen("log.html", 'a');
    fwrite($fp, "<div class='msgln'>" . $username . " &gt; " . stripslashes(htmlspecialchars($text)) ."</div>");
    fclose($fp);
}