J'ai commencé à construire des shoutbox \ Chat en PHP très basique. Il utilise simplement une table mysql de base avec (int) id comme index uniques et colonnes de message (texte). Cela fonctionne mais ne stocke que des nombres dans la base de données. J'ai cherché partout une solution mais je n'en trouve pas encore. Je suspecte que le problème réside dans la base de données mysql ou la requête, mais peut-être que quelque chose ne va pas avec le code.Je ne peux stocker des numéros dans la base de données, un simple shoutbox dans php
Voici le code:
<?php
// ****************
// Database Settings
// ****************
$sql_hst = "localhost";
$sql_db = "chatbox";
$sql_usr = "chatbox";
$sql_pwd = "chatbox";
// ****************
// Core Functions
// ****************
function connectdb()
{
//conection:
global $sql_srv,$sql_usr,$sql_pwd,$sql_db;
$link = mysqli_connect($sql_srv,$sql_usr,$sql_pwd,$sql_db) or die("Error " . mysqli_error($link));
return $link;
}
function getMessages()
{
$result = mysqli_query(connectdb(),"SELECT message FROM messages");
while($row = mysqli_fetch_array($result))
{
echo $row['message'];
echo "<br>";
}
}
function postMessage()
{
if (isset($_POST['message']))
{
mysqli_query(connectdb(), "INSERT INTO messages (message) VALUES (".$_POST['message'].")");
//echo $_POST['message']; //test post data
}
}
connectdb();
postMessage();
//END OF MAIN PHP
?>
<!DOCTYPE html>
<html>
<head><title>Chatbox</title>
<style>
body { background-color: gray; }
input{width:375px;display:block;border: 1px solid #999;height: 25px;--moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);}
.message_box{ background-color: white; height: 500px; width: 100%;}
.message_form{width: 100%;}
.message_input{width: 100%;}
.message_submit{}
</style>
</head>
<body>
<div class="message_box"><?php getMessages(); ?></div>
<form class="message_form" action="chatbox.php" method="post">
<input class="message_input" type="text" name="message">
<!-- <input type="submit"> -->
</form>
</body>
</html>
Pouvez-vous 'DESCRIBE messages'? Aussi, vous devriez préparer cela. –
Vous êtes vulnérable aux [attaques par injection SQL] (http://bobby-tables.com). N'UTILISEZ PAS CE CODE. Cela étant dit, ce code est "bien" (très vulnérable aux attaques, mais ... 'bien'). Quel est le type de votre champ 'message' dans la base de données? carboniser? varchar? int? –
Avant de faire quoi que ce soit ** else **, vous devez lire [escape SQL correct] (http://bobby-tables.com/php) pour éviter les [bogues d'injection SQL] sévères (http: // bobby- tables.com/) présente dans ce. Lorsque vous utilisez 'mysqli' vous devriez utiliser [' bind_param'] (http://php.net/manual/fr/mysqli-stmt.bind-param.php) pour ajouter des valeurs à votre requête. N'utilisez pas de concaténation de chaîne pour ajouter des valeurs '$ _POST' à votre chaîne de requête. – tadman