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
Link gekopieerd
Ariën
17-03-2015 17:11
gewijzigd op 17-03-2015 17:11
Sluit je PHP ook af binnen je codeblokken, anders dan krijg je [co de]-tags in je codeblokken ;).
Link gekopieerd
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;
}
?>
Link gekopieerd
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.
Link gekopieerd
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.
Link gekopieerd
@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.
Link gekopieerd
- SanThe -
17-03-2015 18:06
gewijzigd op 17-03-2015 18:08
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.
Link gekopieerd
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);
?>
Link gekopieerd
Op de plaats van de echo 'o' is dus bekend dat $_GET['id'] NIET bestaat.
Link gekopieerd