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?
ik zag dat er naast "if(isset($_GET['id']))" ook "if(isset($_GET['get']))" stond. Toen ik dit aanpaste gaf hij aan Failed to connect to Mysql
Sluit je PHP ook af binnen je codeblokken, anders dan krijg je [code]-tags in je codeblokken ;).
Kan iemand vinden waarom ik niet kan connecten met de Mysql database con.?

Index1.php:

<?php session_start(); // Start a new session
$con=mysqli_connect("localhost","root","superbart","minimail");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ajax Chat Script [User 1]</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript" src="functions.js"></script>
<script type="text/javascript">
</script>
<link href="styles.css" rel="stylesheet" type="text/css"></link>	
<script language="JavaScript">
<!--
if (document.layers)
  document.captureEvents(Event.KEYDOWN);
  document.onkeydown =
    function (evt) { 
      var keyCode = evt ? (evt.which ? evt.which : evt.keyCode) : event.keyCode;
      if (keyCode == 13)
       {
         send_message('output_div','text_content','1');
       }
    }
//-->
</script>
</head>
<body onload="get_message('output_div','1')">
<center>
 <div class="body-holder">
    <div class="window">
		<table cellspacing="0" cellpadding="0" border="0">
		<tr>
		  <td><img src='images/header_01.jpg' height="34"></td>
		  <td background="images/header_02.jpg" >
		  </td>
		  <td background="images/header_02.jpg" width="100%">
			<div id="window_title">MiniMail Chat</div>
		  </td>
		  <td background="images/header_02.jpg" >
			<img src="images/tipclose.gif" width="20" height="15" onclick="javascript:window.opener='x';window.close()";>
		  </td>
		  <td><img src='images/header_03.jpg'></td>
		</tr>
		</table>
	</div>
 	 <div id="tools">
	   <?php
	   $res_smilies = mysql_query("select * from smilies");
	   $count = 0;
	   echo "<table cellspacing=1 border=0 cellpadding=1>\n<tr>";
	   	while($row_smilies = mysql_fetch_array($res_smilies))
		{
			if($count == 4)
			{
				echo "</tr><tr>";
				$count=0;
			}
			echo "\n<td align='center' width='35'>\n <a href='#' alt='".$row_smilies['image_code']."' onclick=\"add_code('".($row_smilies['image_code'])."');\" border=\"0\"><img src=\"images/".$row_smilies['id'].".gif\" border=\"0\"></a>\n</td>";
			$count ++;
		}
		echo "</table>";
	  ?>
	 </div>
     <div class="main_container">
		<div class="output-div-container">
		   <div id="output_div" onclick="show_smilies()">
		   </div>
		</div>
		<table border="0" width="504" class="tool_table">
		 <tr>
		  <td width="20"><a href="#" onclick="show_smilies('tool')"><img src="images/1.gif" border="0"></a></td>
	      <td></td>	
		 </tr>
		</table>
		<div class="input-div">
		   <textarea type="text" id="text_content" onclick="show_smilies()" size="40" ></textarea>
		   <input type="submit" value="send" onclick="send_message('output_div','text_content','1')">
		</div>
	</div>
	</div>
 </center>
  <?php 
 $sql = "select * FROM users";
$result = mysqli_query($con, $sql) or die ( mysql_error() );

$nrOfRows = mysqli_num_rows($result);
if ($nrOfRows > 0)
{
while($row = mysqli_fetch_array($result))      {
	echo "<tr>";
	echo "<td><b><center>Alle gebruikers:</center></b></td>";
	echo "<td><b><center>" . $row['username'] . "</center></b></td>";
	echo "</tr>";
	}
	echo "</table>";
	}
	else
	{
    header("Location:NietIngelogd.php");
	}
	mysqli_close($con);?>
</body>
</html>


Script_page.php:

<?php
$con=mysqli_connect("localhost","root","superbart","minimail");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}if(isset($_GET['id']))
{ 
  $id = intval($_GET['id']);
  // getting info from db
}?>
<?php
    if(isset($_GET['id']))
    {
         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'];

           $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($con,$query);
		   while($row = mysqli_fetch_array($result))      {
           echo "<br><b>User" . $row['username'] . " </b>";}
			$result = mysqli_query($con,$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($con);
    }
    }
    else if(isset($_GET['id']))
    { 
           $query = "SELECT * FROM users WHERE user_id= $id";  
           $result = mysqli_query($con,$query) or die (mysql_error());
           $num_rows = mysqli_num_rows($result);
           if ($nrOfRows)
            {
               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($con);
    }

function add_smilies($str_msg)
{
 $get_smiles = mysqli_query("select * from smilies order by length(image_code) desc");
  while($row_smilies = mysqli_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;
}

?>

Waar gaat het fout?
Je gebruikt mysql_ en mysqli_ door elkaar.
Je zet $id (is GET) onbeveiligd in een query.
Ik zie header() middenin de html.

Begin eens met logica in je script te brengen.
script_page.php bevat op meerdere plaatsen een foutboodschap "Failed to connect to MySQL:", terwijl er op dat moment helemaal niets mis hoeft te zijn met de database-connectie.

<?php
if(isset($_GET['content'])) {
    // ...
} else {
    echo "Failed to connect to MySQL: " . mysqli_error($con);
}
?>

Het een heeft geen biet te maken met het ander. Daarom is je mysqli_error() naar alle waarschijnlijkheid ook leeg: er is helemaal geen database-fout aanwezig op dat moment.

Oplossing: geef toepasselijke foutmeldingen in plaats van deze nietszeggende (en foutieve) boodschappen.
@thomas, dat heb ik ook gecheckt door die error melding bij beide op een verschillende manier aan te passen.
Daaruit bleek dat de fout nog steeds hierin zit:
 <?php
    }
    }
    else if(isset($_GET['id']))
    { 
           $query = "SELECT * FROM users WHERE user_id= $id";  
           $result = mysqli_query($conn,$query) or die (mysli_error());
           $num_rows = mysqli_num_rows($result);
           if ($nrOfRows)
            {
               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($conn);
    }

function ?>
In de hele script_page.php pagina is dit regel 36 tot 56 a 57.
7 ..mysli_error() => onbekende function.
9 ..$nrOfRows => onbekende variabele.
11 ..mysqlifetch_array() => onbekende function.
14 ..$result => wordt overschreven, dus de while() faalt.
13..14.. zinloos.
totale code: Nu weergeeft hij geen error maar: o. dat komt door de echo "o". Wat zou ik op die plek moeten plaatsen.

<?php
$conn=mysqli_connect("localhost","root","superbart","minimail");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}if(isset($_GET['id']))
{ 
  $id = intval($_GET['id']);
  // getting info from db
}
    if(isset($_GET['id']))
    {
         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'];

           $insert1 = "INSERT INTO chat (user_id,msg,timestamp,displayed)
                     VALUES ('".$_GET['id']."', '".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><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 select users in chat: " . mysqli_error();
    }
    }
    else if(isset($_GET['id']))
    { 
           $query = "SELECT * FROM users WHERE user_id= $id and displayed=0";  
           $result = mysqli_query($conn,$query) or die ("Error in query: $query. ".mysqli_error());
           $num_rows = mysqli_num_rows($result);
           if ($num_rows)
            {
               while($new_msg = mysqli_fetch_array($result))
                    echo "<br><b>User ".$id." </b>[".$new_msg['timestamp']."] <b>: </b></font>".stripslashes($new_msg['msg']);
            }
    }
    else
    {
echo  "o";
    }

function add_smilies($str_msg)
{
 $get_smiles = mysqli_query("select * from smilies order by length(image_code) desc");
  while($row_smilies = mysqli_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 = mysli_query("select * from smilies where image_code='".$row_smilies['image_code']."'");
        $row = mysli_fetch_array($sel);        
        echo "<img src='images/".$row_smilies['id'].".gif'>";
      }*/

  }
  return $str_msg;
}
mysqli_close($conn);
?>
Op de plaats van de echo 'o' is dus bekend dat $_GET['id'] NIET bestaat.

Reageren