voor mijn website wil ik een chatbox gaan maken.
Op de site kunnen alleen ingelogde mensen die chatbox gebruiken (en alleen bij hun word hij weergeven). De inlog&Registratie gegevens moeten opgeslagen kunnen worden in de database v/d site.
Hoe krijg ik dit voor elkaar/waar kan ik een soortgelijke downloadbare chatbox vinden?
<?php
session_start(); // Start a new session
if(isset($_GET['id']))
{ 
  $id = intval($_GET['id']);
  // getting info from db
}

$conn = mysqli_connect("localhost","root","superbart","blog") or die("could not connect to server");

    if(isset($_GET['set']))
    {
         if(isset($_GET['content']))
        {
           $str_msg = stripslashes($_GET['content']);
           $time = getdate();
           $str_msg = add_smilies($str_msg);
           $t_stamp = $time['hours'].":".$time['minutes'].":".$time['seconds'];

           ($_GET['uid']=='1')? $color ="red" : $color ="green";

           $insert1 = "INSERT INTO chat (user_id,msg,timestamp,displayed)
                     VALUES ('".$_GET['uid']."', '".addslashes($str_msg)."', '$t_stamp', '0')";
                     
           $query = "select * from users where user_id= 'id' and displayed=0";    
           $result = mysqli_query($conn,$query);
		   while($row = mysqli_fetch_array($result))      {
           echo "<br><font color=$color><b>User" . $row['username'] . " </b>";}
			$result = mysqli_query($conn,$insert1);
		   while($row = mysqli_fetch_array($result))      {          
		  mysqli_query($insert1);
           echo "[".$t_stamp."] <b>: </b></font>".$str_msg;}
        }
    }
    else if(isset($_GET['get']))
    { 
            $query = "select * from chat where user_id= 'id' and displayed=0";
             $result = mysqli_query($conn, $query);
           $num_rows = mysqli_num_rows($result);
           if($num_rows)
            {
               while($new_msg = mysqlifetch_array($res))
                    echo "<br><b>User ".$id." </b>[".$new_msg['timestamp']."] <b>: </b></font>".stripslashes($new_msg['msg']);
				$query = "select * from users where user_id= 'id' and displayed=0"; 
               $mark2 = mysqli_query($query);    
            }
        
    }
    else
    {
        echo "<font color=red><b><br>Error processing data...!</b></font>";
    }

function add_smilies($str_msg)
{
 $get_smiles = mysql_query("select * from smilies order by length(image_code) desc");
  while($row_smilies = mysql_fetch_array($get_smiles))
  {
    $str_msg = str_replace(''.$row_smilies['image_code'].''," <img src='images/".$row_smilies['id'].".gif'> ",$str_msg);
    
    //$str_msg = preg_match("/".$row_smilies['image_code']."/","<img src='images/".$row_smilies['id'].".gif'>");
    /*if(false !== strpos($row_smilies['image_code'],$str_msg))
      {
        $sel = mysql_query("select * from smilies where image_code='".$row_smilies['image_code']."'");
        $row = mysql_fetch_array($sel);        
        echo "<img src='images/".$row_smilies['id'].".gif'>";
      }*/

  }
  return $str_msg;
}

?>


[size=xsmall]Toevoeging op 16/03/2015 20:12:53:[/size]

laatste foutwarning tot nu toe:

"Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\Webwinkelcentrum\MMchat3\script_page.php on line 39"
Ik had ergens nog de source van deze chatbox ergens liggen.
Als je interesse hebt PM me maar dan kan ik deze zoeken voor je.
Bart de kinkelaar op 16/03/2015 20:08:21

laatste foutwarning tot nu toe:

"Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\Webwinkelcentrum\MMchat3\script_page.php on line 39"

je query wilt niet uitgevoerd worden omdat er foutafhandeling ontbreekt.
Kijk eens naar mysqli_error($con);


            $query = "select * from chat where user_id= 'id' and displayed=0";


Je vergelijkt in deze query de inhoud van de kolom user_id met de string 'id', dit moet vast de variabele $id zijn.

Dit zal geen foutmelding geven maar wel een leeg resultaat,

_______________
Op dit moment heb ik vooral deze error:
Notice: Undefined variable: id in C:\xampp\htdocs\Webwinkelcentrum\MMchat3\script_page.php on line 41


<?php
session_start(); // Start a new session?><?php
if(isset($_GET['id']))
{ 
  $id = intval($_GET['id']);
  // getting info from db
}
?><?php
$conn = mysqli_connect("localhost","root","superbart","minimail") or die("could not connect to server");

    if(isset($_GET['set']))
    {
         if(isset($_GET['content']))
        {
           $str_msg = stripslashes($_GET['content']);
           $time = getdate();
           $str_msg = add_smilies($str_msg);
           $t_stamp = $time['hours'].":".$time['minutes'].":".$time['seconds'];

           ($_GET['uid']=='1')? $color ="red" : $color ="green";

           $insert1 = "INSERT INTO chat (user_id,msg,timestamp,displayed)
                     VALUES ('".$_GET['uid']."', '".addslashes($str_msg)."', '$t_stamp', '0')";
                     
           $query = "select * from users where user_id= $id";    
           $result = mysqli_query($conn,$query);
		   while($row = mysqli_fetch_array($result))      {
           echo "<br><font color=$color><b>User" . $row['username'] . " </b>";}
			$result = mysqli_query($conn,$insert1);
		   while($row = mysqli_fetch_array($result))      {          
		  mysqli_query($insert1);
           echo "[".$t_stamp."] <b>: </b></font>".$str_msg;}
        }    
		else
    {
echo "Failed to connect to MySQL: " . mysqli_error();
    }
    }
    else if(isset($_GET['get']))
    { 
  $query2 = "select * FROM users WHERE user_id= $id";   
           $result2 = mysqli_query($conn,$query2) or die ( mysql_error() );
           $num_rows = mysqli_num_rows($result2);
           if ($nrOfRows > 0)
            {
               while($new_msg = mysqlifetch_array($result))
                    echo "<br><b>User ".$id." </b>[".$new_msg['timestamp']."] <b>: </b></font>".stripslashes($new_msg['msg']);
				$query = "select * from users where user_id= $id"; 
               $result = mysqli_query($query);    
            }
    }
    else
    {
   
echo "Failed to connect to MySQL: " . mysqli_error();
    }

function add_smilies($str_msg)
{
 $get_smiles = mysql_query("select * from smilies order by length(image_code) desc");
  while($row_smilies = mysql_fetch_array($get_smiles))
  {
    $str_msg = str_replace(''.$row_smilies['image_code'].''," <img src='images/".$row_smilies['id'].".gif'> ",$str_msg);
    
    //$str_msg = preg_match("/".$row_smilies['image_code']."/","<img src='images/".$row_smilies['id'].".gif'>");
    /*if(false !== strpos($row_smilies['image_code'],$str_msg))
      {
        $sel = mysql_query("select * from smilies where image_code='".$row_smilies['image_code']."'");
        $row = mysql_fetch_array($sel);        
        echo "<img src='images/".$row_smilies['id'].".gif'>";
      }*/

  }
  return $str_msg;
}

?>
Hint 1: de fout van regel 43 ontstaat omdat regel 42 niet het resultaat levert dat jij verwacht.
Hint 2: Kijk eens hier onder het kopje Return Values.
Ik heb gekeken, als ik bijv o.a. van mysql_error Mysqli_error (met tussen () $conn) maak, geeft hij aan:
Notice: Undefined variable: id in C:\xampp\htdocs\Webwinkelcentrum\MMchat3\script_page.php on line 40
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Laat ik mysql_error staan en is dit de code:
    if(isset($_GET['set']))
    {
         if(isset($_GET['content']))
        {
           $str_msg = stripslashes($_GET['content']);
           $time = getdate();
           $str_msg = add_smilies($str_msg);
           $t_stamp = $time['hours'].":".$time['minutes'].":".$time['seconds'];

           ($_GET['uid']=='1')? $color ="red" : $color ="green";

           $insert1 = "INSERT INTO chat (user_id,msg,timestamp,displayed)
                     VALUES ('".$_GET['uid']."', '".addslashes($str_msg)."', '$t_stamp', '0')";
                     
           $query = "select * from users where user_id= $id";    
           $result = mysqli_query($conn,$query);
		   while($row = mysqli_fetch_array($result))      {
           echo "<br><font color=$color><b>User" . $row['username'] . " </b>";}
			$result = mysqli_query($conn,$insert1);
		   while($row = mysqli_fetch_array($result))      {          
		  mysqli_query($insert1);
           echo "[".$t_stamp."] <b>: </b></font>".$str_msg;}
        }    
		else
    {
echo "Failed to connect to MySQL: " . mysqli_error();


dan weergeeft hij de oude error.

De conn klopt en het ophalen van het ID zou ook moeten kloppen. Achter de link staat ?id=1 en bovenaan de code staat:
<?php
session_start(); // Start a new session
if(isset($_GET['id']))
{ 
  $id = intval($_GET['id']);
  // getting info from db
}

Op het eerste ogenblik zie ik ook niet waarom die $id niet zou bestaan. Wel vallen me enkele dingen op:

- Uitlijning is niet netjes, als ik accolades boven recht boven elkaar zie, dan is het script al lastig te debuggen
- MQL-functies benoemen we met een hoofdletter, dus SELECT i.p.v. select
- Gebruik van addslashes() waarmee je je input kan verminken. Gebruik gewoon mysqli_real_escape_string() voor $_POST, $_GEt en $_COOKIE in een query.
- $insert1 zegt niet veel, zie jij straks het verschil nog met $insert3 en $insert8? Noem hem dan bijvoorbeeld $insert_message.
- <font> is verouderd, kijk eens naar CSS.
>> You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Als je dat krijgt doe dan even de query echo-en en kijk eens hoe dat er uit ziet
Aar C op 17/03/2015 16:31:45

Op het eerste ogenblik zie ik ook niet waarom die $id niet zou bestaan.


Als de GET niet bestaat ook geen $id.

Reageren