0

データベースからユーザー名のリストを取得して、メッセージに@usernameが含まれているかどうかを確認しようとしていますが、現在、次のコードがあります。

if (strpos($data[3], '@') !== false) {
    $user_array_thing = array();
    $user_query = mysql_query("SELECT username FROM users");
    while($user_username = mysql_fetch_array($user_query) && in_array($data[4],$user_array_thing) === false){
        if(strpos($data[3],'@'.$user_username['username']) !== false){
            //echo a message to somebody
            echo '<li class="qn"><a href="/status/index.php?user='.$prof_user.'&status='.$data[4].'" class="qn_vis"><font color="#007a00"><b><< '.$data[2].':</b>&nbsp;&nbsp;'.$data[3].'</font> - <font size="1" color="#a3a3a3">'.Timesince(strtotime($time)).' ago</font></a></a><!--<div id="delete'.$data[4].'" style="display:none; margin:0px;" class="qn_div"><form method="post" action=""><input type="hidden" name="messageid" id="messageid" value="'.$data[4].'" /><input class="button small red" type="submit" id="delete" name="delete" value="Delete" /></form><br></div>-->';
            $user_array_thing[] = $data[4];
        }
    }
} else { 
    $data[3] = preg_replace('|\B#([\d\w_]+)|i', '<font color="#8020E0">$0</font>', $data[3]);
    $data[3] = preg_replace('|\B\@([\d\w_]+)|i', '<font color="#1378E0">$0</font>', $data[3]);
    echo '<li class="qn"><a href="/status/index.php?user='.$prof_user.'&status='.$data[4].'" class="qn_vis"><img src="/images/icons/web/Bubble3.png" /><font color="#147CE6"><b>'.$data[2].' said</font>:</b>&nbsp;&nbsp;'.$data[3].'<font size="1" color="#a3a3a3"> - '.$commentcount.''.Timesince(strtotime($time)).' ago</font></a></a>';
}

'someone@gmail.com'のように、電子メールアドレスを含むものを投稿するまでは完全に機能します

gmail.comはデータベースにありませんが、まだ緑色になっています。何が間違っているのかわかりません。何日もの間、これを修正しようとしてきましたが、役に立ちませんでした。どんな提案でもいいでしょう

4

1 に答える 1

1

データベースを使用してこの作業を行ってみませんか?

<?php
$username = mysql_real_escape_string ($data['username']); // or wherever you're getting the username from 
$query    = mysql_query ("SELECT id FROM users WHERE username='$username'");

if (mysql_num_rows($query) > 0) {
    // that username sure does exist in the database!
}
else {
    // poo!
}

また、これext/mysqlは正式に非推奨になっており(PHP 5.5.0以降)、使用しないでください。MySQLへの接続に は、 MySQLiまたはPDOMySQLのいずれかを使用することをお勧めします。

お役に立てれば

于 2013-01-13T16:29:39.467 に答える