Page 1 sur 1

Erreur 500

Posté : 20 juin 2024, 20:27
par angus42
Bonjour,

J'ai une page d'accueil avec un bouton "connexion" qui ouvre la page "connexion.php".
Quand je clique sur le bouton "Connexion", j'obtiens une page vide avec "erreur 500".
J'ai positionné des "echo" pour voir jusqu'où allait le traitement mais les messages ne s'affichent pas.

Je pense que j'ai un problème de connexion à la base de données.
J'accède à la base de données sur localhost:8888 et je peux créer tables/enregistrements sans problème.

Savez-vous ce qui ne va pas svp ?

Merci pour votre indulgence, je débute :wink:

Page "accueil.php" :

<body>
<form action="connexion.php" method="post">
login&nbsp;&nbsp;=======><input type="text" name="login" value=""><br />
mot de passe&nbsp;==><input type="password" name="pwd" value=""><br />
<input type="submit" name="connexion" value="Connexion">
</form>
</body>

Fichier "connect.php" :

define ('SERVEUR', "localhost:8888");
define ('LOGIN', "root");
define ('MDP', "");
define ('BDD', "auth_systeme");

Page "connexion.php" :

<?php

//on inclue un fichier contenant nom_de_serveur, nom_bdd, login et password d'accès à la bdd mysql
include ("connect.php");

//on vérifie que le visiteur a correctement saisi puis envoyé le formulaire
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion')
{
	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pwd']) && !empty($_POST['pwd'])))
	{

		//on se connecte à la base
		$connexion = mysql_connect (SERVEUR, LOGIN, MDP);

		if (!$connexion)
		{
			echo "LA CONNEXION AU SERVEUR MYSQL A ECHOUE\n"; exit;
		}

		mysql_select_db (BDD); print "Connexion BDD reussie puis";echo "<br/>"; 

		//on parcourt la base pour chercher l'existence du login mot et du mot de passe saisis
		//et on range le résultat dans le tableau $data
		$sql = 'SELECT count(*) FROM membres WHERE id="'.mysql_escape_string($_POST['login']).'" 
		AND md5="'.mysql_escape_string(md5($_POST['pwd'])).'"';
		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
		$data = mysql_fetch_array($req);
		mysql_free_result($req);mysql_close();
	
		// si on obtient une réponse, alors l'utilisateur est un membre
		//on ouvre une session pour cet utilisateur et on le connecte à l'espace membre
		if ($data[0] == 1)
		{
			session_start();
			$_SESSION['login'] = $_POST['login'];
			header('Location: espace-membre.php');
			exit();
		}
	
		//si le visiteur a saisi un mauvais login ou mot de passe
		else
		{
			$erreur = 'Login ou mot de passe inconnu !';echo $erreur; 
			echo"<br/><a href=\"accueil.php\">Accueil</a>";exit();
		}
	}
	else
	{
		$erreur = 'Erreur de saisie !<br/>Au moins un des champs est vide !'; echo $erreur; 
		echo"<br/><a href=\"accueil.php\">Accueil</a>";exit();
	}
}
?>

Re: Erreur 500

Posté : 20 juin 2024, 20:50
par or 1
indenter correctement son code est toujours utile.

Re: Erreur 500

Posté : 20 juin 2024, 20:56
par angus42
Merci pour ce conseil. Est-ce la raison de l'erreur ?

Re: Erreur 500

Posté : 20 juin 2024, 21:00
par or 1
non, mais cela va permettre de la trouver immédiatement.

Re: Erreur 500

Posté : 21 juin 2024, 08:26
par angus42
non, mais cela va permettre de la trouver immédiatement.
Voilà qui est corrigé ! :wink:

Re: Erreur 500

Posté : 21 juin 2024, 09:37
par angus42
J'ai simplifié le code de "connexion.php"

include ("connect.php");
mysqli_connect(SERVEUR,LOGIN,MDP) or die("Connexion à la base impossible");
mysqli_select_db(BDD) or die("Base introuvable");

Et j'obtiens bien le message "Connexion à la base impossible"

Dans la console MAMP, le port MySQL est 8889 mais pour me connecter à la base sur mon navigateur je dois saisir localhost:8888 sinon ça ne fonctionne pas.

Dans "connect.php", quel que soit le nom du serveur que je mette (localhost ou localhost:8888 ou localhost:8889), ça ne fonctionne pas. Je pense que c'est la source du problème.

Des idées ?

Re: Erreur 500

Posté : 22 juin 2024, 15:44
par angus42
J'avais donc un problème de mot de passe sur le compte root.
C'était ni vide ni root. Mot de passe inconnu.
J'ai créé un nouveau compte avec tous les privilèges et ça fonctionne.