Prb avec mon code php

sanaa2200 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
sanaa2200 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
mon prb c'est que a chaque fois je teste ma page un message s'affiche " Apache http sever a cessé de fonctionner..."

et voila mon code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Mini-chat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<style type="text/css">
form
{
text-align:center;
}
</style>
<body>


<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
{
// D'abord, on se connecte à MySQL
mysql_connect("localhost", "sdz", "mot_de_passe");
mysql_select_db("coursphp");

// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));

// Ensuite on enregistre le message
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");

// On se déconnecte de MySQL
mysql_close();
}
}


// Que l'on ait enregistré des données ou pas...
// On affiche le formulaire puis les 10 derniers messages

// Tout d'abord le formulaire :
?>



<form action="minichat.php" method="post">

<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message : <input type="text" name="message" /><br />

<input type="submit" value="Envoyer" />
</p>

</form>



<?php

// Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "root", "");
mysql_select_db("coursphp");

// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat WHILE id=1 ORDER BY ID DESC LIMIT 0,10");
$donnees = mysql_fetch_array($reponse);
echo $donnees['pseudo'];
echo $donnees['message'];
// On se déconnecte de MySQL
mysql_close();
?>
A voir également:

18 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Si Apache ne marche pas ce n'est pas lié à ton script php

si tu es en local Wamp ou Easyphp verifie que celui ci est bien lancé et actif

ensuite une remarque:

// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat WHILE id=1 ORDER BY ID DESC LIMIT 0,10");
$donnees = mysql_fetch_array($reponse);
echo $donnees['pseudo'];
echo $donnees['message'];


la requette n'est pas bonne il ne faut pas WHILE
mais WHERE pour faire une condition

ensuite pour afficher 10 reponses il faut faire une boucle while sur la reponse de la requette:

while($donnees = mysql_fetch_array($reponse)){;
echo $donnees['pseudo'];
echo $donnees['message'];
echo "<br />";

}
0
sanaa2200 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
merci c corrigé mais j'ai toujours le même prb et j'utilise wampserver et il parait qu'il marche tres bien
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
il parait qu'il marche tres bien

il faut pas qu'il paraisse mais que tu vérifies qu'il soit bien lancé sur ton PC

un petit est:

tapes dans la barre d'adresse de ton navigateur: http://localhost

tu devrait avoir une réponse du serveur genre "Bienvenue .....

si ce n'est pas le cas tu cherches dans démarer tous les programmes tu dois avoir Wamp tu cliques pour le lancer
0
sanaa2200 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
oui j'ai deja fait tt ca et ca marche mais en testant ma page c'est la ou le msg deja cité s'affiche
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
php_master
 
Essai de demarrer le service d'apache pour voir
0
sanaa2200 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
le service apache est déjà démarré :S
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
fais un essai avec ce petit script suivant:

<?php
echo "Essai: configuration de php<br />";
echo phpinfo();
?>
0
sanaa2200 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai essayé ton script et une page ou il y tt les info sur php et apache mais la vérité j'ai po compris grandes choses
0
antoine
 
Slt,

remplace

mysql_connect("localhost", "sdz", "mot_de_passe"); par

mysql_connect("localhost", "root", "");

je pense que ca devrait marcher.

@+
0
sanaa2200 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
oui oui c'est fait mais ça change rien :S
0
antoine
 
Tu l'as changé aux 2 endroits ? Au debut quand tu te connectes a ta BDD et après quand tu veux afficher les messages ?

Dailleurs t'as pas besoin de te connecter 2 fois a ta BDD, et un seul mysql_close(); a la fin suffit.

Et quand t'essaies en réel ca fonctionne ?
0
sanaa2200 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai eneleve la commande mysql_close(); et je n'ai laissé qu'une seule mais un message s'affiche disant que

"Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) "
0
antoine
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Mini-chat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<style type="text/css">
form
{
text-align:center;
}
</style>
<body>


<?php
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
{

mysql_connect("localhost", "root", "");
mysql_select_db("coursphp");

$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));


mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");



}
}

?>

<form action="minichat.php" method="post">

<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message : <input type="text" name="message" /><br />

<input type="submit" value="Envoyer" />
</p>

</form>



<?php



$reponse = mysql_query("SELECT * FROM minichat WHILE id=1 ORDER BY ID DESC LIMIT 0,10");
$donnees = mysql_fetch_array($reponse);
echo $donnees['pseudo'];
echo $donnees['message'];

mysql_close();
?>




Il faut aussi que tu remplace "COURSPHP" par le nom de ta table
0
sanaa2200 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
faut il pas metre le nom de la base donnee mais pas celle de la table?
0
antoine
 
Reprenons :

mysql_connect("localhost", "root", "");
mysql_select_db("coursphp");

Quand tu testes en local t'as juste a changer "coursphp" par le nom de ta table (et non de ta base).

Quand t'es en réél tu remplaces "localhost" par le nom de ta bdd, root par ton nom d'utilisateur et tu mets ton mot de passe entre les guillemets qui sont vides. Et tu changes "coursphp" par le nom de ta table.
0
sanaa2200 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
ok
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
mysql_select_db("coursphp");

Quand tu testes en local t'as juste a changer "coursphp" par le nom de ta table (et non de ta base).
.

NON

il faut bien mettre le nom de la base

mysql_select_db("nom_de_ta_base")

ça veut dire selectionner la database
0
sanaa2200 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
merci tt le monde j'ai trouvé les erreurs et je les corriger et mnt ca marche très bien
voila le script corrigé

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Mini-chat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<style type="text/css">
form
{
text-align:center;
}
</style>
<body>


<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
{
// D'abord, on se connecte à MySQL
$base=mysql_connect('localhost', 'root', '');
mysql_select_db('coursphp',$base);

// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));

// Ensuite on enregistre le message
$sql='INSERT INTO minichat VALUES("", "'.$pseudo.'", "'.$message.'")';
mysql_query($sql);

// On se déconnecte de MySQL

}
}


// Que l'on ait enregistré des données ou pas...
// On affiche le formulaire puis les 10 derniers messages

// Tout d'abord le formulaire :
?>



<form action="minichat.php" method="post">

<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message : <input type="text" name="message" /><br />

<input type="submit" value="Envoyer" />
</p>

</form>



<?php

// Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :

//mysql_select_db("minichat");
$sql1='SELECT * FROM minichat ';
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$base=mysql_connect('localhost', 'root', '');
mysql_select_db('coursphp',$base);
$reponse = mysql_query($sql1,$base);
$donnees = mysql_fetch_array($reponse);
echo $donnees['pseudo'];
echo $donnees['message'];
// On se déconnecte de MySQL
mysql_close($base);

// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p><strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p>



<?php
}
// Fin de la boucle, le script est terminé !*/
?>


</body>
</html>
PS: le probleme c'etais ke je dois remplacer les guillemets avec des apostrophes
0