Bonjour à tous,
je développe un petit intranet possédant un forum phpBB3.
Chaque utilisateur se connecte avec son login/password sur la page d'accueil du site (et pas du forum), et je contrôle sa validité via la gestion de session phpBB.
Ainsi l'utilisateur est directement connecté quand il va sur le forum.
Voici le formulaire d'authentification :
Cela marche bien mais voilà le problème : J'ai un autre groupe d'utilisateur qui n'a pas le droit de se connecter au forum mais doit pouvoir se connecter à l'intranet et, je voudrait n'avoir qu'un seul formulaire pour se loger quelque soit le groupe d'utilisateur....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <form name="login" id="login" method="post" action="./phpbb/site_ucp.php?mode=login"> <input name="username" type="text" id="username" /> <input name="password" type="password" id="password" /> <input type="hidden" name="redirect" value="../index.php" /> <input name="login" type="submit" value="ok" /> </form>
Ces utilisateurs du 2eme groupe sont contenue dans une table à part dans la DB. Donc me dis que je vais passer par un scripts qui va s'intercaler entre le formulaire d'authentification et la page de login de phpbb. Je pourrais ainsi verifier l'existense de l'utilisateur
Dans le principe cela donne cela:
-on entre le login/password dans le formulaire:
-la validation de ce formulaire va sur login.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <form name="login" id="login" method="post" action="login.php"> <input name="username" type="text" id="username" /> <input name="password" type="password" id="password" /> <input type="hidden" name="redirect" value="../index.php" /> <input name="login" type="submit" value="ok" /> </form>
Mon but est donc de simuler l'envoie du formulaire d'identification dans le script login.php mais cela ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 $username=$_POST['username']; $password=$_POST['password']; $redirect="../index.php"; /*test si l'utilisateur fais partie du 2eme groupe*/ . . . /*si l'utilisateur ne fait pas partie de 2groupe, on va sur la page de connexion de phpbb à l'aide d'une requête POST*/ $sock = fsockopen("ssl://192.168.100.253", 443, $errno, $errstr, 30); if (!$sock) die("$errstr ($errno)\n"); $data = "username=" . urlencode($username) . "&password=" . urlencode($password) . "&redirect=" . $redirect; fputs($sock, "POST /phpbb/site_ucp.php?mode=login HTTP/1.0\r\n"); fputs($sock, "Host: 192.168.100.253\r\n"); fputs($sock, "Content-type: application/x-www-form-urlencoded\r\n"); fputs($sock, "Content-length: " . strlen($data) . "\r\n"); fputs($sock, "Accept: */*\r\n"); fputs($sock, "\r\n"); fputs($sock, "$data\r\n"); fputs($sock, "\r\n"); $headers = ""; while ($str = trim(fgets($sock, 4096))) { $headers .= "$str\n"; } echo "\n"; $body = ""; while (!feof($sock)) { $body .= fgets($sock, 4096); } fclose($sock);
Je reste sur la page login.php qui n'affiche rien alors que je voudrai aller sur "phpbb/site_ucp.php?mode=login" en passant mes variables POST et ainsi être connecté au forum.
Voilà j'espère avoir été suffisamment clair.
Je m'arrache les cheveux depuis 3 jours sur ce problème sans trouver de solution.
Je précise que je veux éviter l'utilisation de CURL.
Quelqu'un aurait il une idée?
Merci.
Partager