CARIA.1.0.0
Restruct all repositories Add : - Files UserWebSite - IA openCV Tuto - Alphabot docs for first maquette
BIN
AlphaBot-CARIA/AlphaBot-Assembly-Diagram.pdf
Normal file
BIN
AlphaBot-CARIA/AlphaBot-User-Manual.pdf
Normal file
BIN
AlphaBot-CARIA/AlphaBot_Schematic.pdf
Normal file
82
AlphaBot-CARIA/Pi-python/AlphaBot.py
Normal file
@@ -0,0 +1,82 @@
|
||||
import RPi.GPIO as GPIO
|
||||
import time
|
||||
|
||||
class AlphaBot(object):
|
||||
|
||||
def __init__(self,in1=12,in2=13,ena=6,in3=20,in4=21,enb=26):
|
||||
self.IN1 = in1
|
||||
self.IN2 = in2
|
||||
self.IN3 = in3
|
||||
self.IN4 = in4
|
||||
self.ENA = ena
|
||||
self.ENB = enb
|
||||
|
||||
GPIO.setmode(GPIO.BCM)
|
||||
GPIO.setwarnings(False)
|
||||
GPIO.setup(self.IN1,GPIO.OUT)
|
||||
GPIO.setup(self.IN2,GPIO.OUT)
|
||||
GPIO.setup(self.IN3,GPIO.OUT)
|
||||
GPIO.setup(self.IN4,GPIO.OUT)
|
||||
GPIO.setup(self.ENA,GPIO.OUT)
|
||||
GPIO.setup(self.ENB,GPIO.OUT)
|
||||
self.forward()
|
||||
self.PWMA = GPIO.PWM(self.ENA,500)
|
||||
self.PWMB = GPIO.PWM(self.ENB,500)
|
||||
self.PWMA.start(50)
|
||||
self.PWMB.start(50)
|
||||
|
||||
def forward(self):
|
||||
GPIO.output(self.IN1,GPIO.HIGH)
|
||||
GPIO.output(self.IN2,GPIO.LOW)
|
||||
GPIO.output(self.IN3,GPIO.LOW)
|
||||
GPIO.output(self.IN4,GPIO.HIGH)
|
||||
|
||||
def stop(self):
|
||||
GPIO.output(self.IN1,GPIO.LOW)
|
||||
GPIO.output(self.IN2,GPIO.LOW)
|
||||
GPIO.output(self.IN3,GPIO.LOW)
|
||||
GPIO.output(self.IN4,GPIO.LOW)
|
||||
|
||||
def backward(self):
|
||||
GPIO.output(self.IN1,GPIO.LOW)
|
||||
GPIO.output(self.IN2,GPIO.HIGH)
|
||||
GPIO.output(self.IN3,GPIO.HIGH)
|
||||
GPIO.output(self.IN4,GPIO.LOW)
|
||||
|
||||
def left(self):
|
||||
GPIO.output(self.IN1,GPIO.LOW)
|
||||
GPIO.output(self.IN2,GPIO.LOW)
|
||||
GPIO.output(self.IN3,GPIO.LOW)
|
||||
GPIO.output(self.IN4,GPIO.HIGH)
|
||||
|
||||
def right(self):
|
||||
GPIO.output(self.IN1,GPIO.HIGH)
|
||||
GPIO.output(self.IN2,GPIO.LOW)
|
||||
GPIO.output(self.IN3,GPIO.LOW)
|
||||
GPIO.output(self.IN4,GPIO.LOW)
|
||||
|
||||
def setPWMA(self,value):
|
||||
self.PWMA.ChangeDutyCycle(value)
|
||||
|
||||
def setPWMB(self,value):
|
||||
self.PWMB.ChangeDutyCycle(value)
|
||||
|
||||
def setMotor(self, left, right):
|
||||
if((right >= 0) and (right <= 100)):
|
||||
GPIO.output(self.IN1,GPIO.HIGH)
|
||||
GPIO.output(self.IN2,GPIO.LOW)
|
||||
self.PWMA.ChangeDutyCycle(right)
|
||||
elif((right < 0) and (right >= -100)):
|
||||
GPIO.output(self.IN1,GPIO.LOW)
|
||||
GPIO.output(self.IN2,GPIO.HIGH)
|
||||
self.PWMA.ChangeDutyCycle(0 - right)
|
||||
if((left >= 0) and (left <= 100)):
|
||||
GPIO.output(self.IN3,GPIO.HIGH)
|
||||
GPIO.output(self.IN4,GPIO.LOW)
|
||||
self.PWMB.ChangeDutyCycle(left)
|
||||
elif((left < 0) and (left >= -100)):
|
||||
GPIO.output(self.IN3,GPIO.LOW)
|
||||
GPIO.output(self.IN4,GPIO.HIGH)
|
||||
self.PWMB.ChangeDutyCycle(0 - left)
|
||||
|
||||
|
||||
239
AlphaBot-CARIA/Pi-python/Infrared_Line_Tracking.py
Normal file
@@ -0,0 +1,239 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding:utf-8 -*-
|
||||
import RPi.GPIO as GPIO
|
||||
import time
|
||||
|
||||
CS = 5
|
||||
Clock = 25
|
||||
Address = 24
|
||||
DataOut = 23
|
||||
|
||||
class TRSensor(object):
|
||||
def __init__(self,numSensors = 5):
|
||||
self.numSensors = numSensors
|
||||
self.calibratedMin = [0] * self.numSensors
|
||||
self.calibratedMax = [1023] * self.numSensors
|
||||
self.last_value = 0
|
||||
|
||||
"""
|
||||
Reads the sensor values into an array. There *MUST* be space
|
||||
for as many values as there were sensors specified in the constructor.
|
||||
Example usage:
|
||||
unsigned int sensor_values[8];
|
||||
sensors.read(sensor_values);
|
||||
The values returned are a measure of the reflectance in abstract units,
|
||||
with higher values corresponding to lower reflectance (e.g. a black
|
||||
surface or a void).
|
||||
"""
|
||||
def AnalogRead(self):
|
||||
value = [0,0,0,0,0,0]
|
||||
#Read Channel0~channel4 AD value
|
||||
for j in range(0,6):
|
||||
GPIO.output(CS, GPIO.LOW)
|
||||
for i in range(0,4):
|
||||
#sent 4-bit Address
|
||||
if(((j) >> (3 - i)) & 0x01):
|
||||
GPIO.output(Address,GPIO.HIGH)
|
||||
else:
|
||||
GPIO.output(Address,GPIO.LOW)
|
||||
#read MSB 4-bit data
|
||||
value[j] <<= 1
|
||||
if(GPIO.input(DataOut)):
|
||||
value[j] |= 0x01
|
||||
GPIO.output(Clock,GPIO.HIGH)
|
||||
GPIO.output(Clock,GPIO.LOW)
|
||||
for i in range(0,6):
|
||||
#read LSB 8-bit data
|
||||
value[j] <<= 1
|
||||
if(GPIO.input(DataOut)):
|
||||
value[j] |= 0x01
|
||||
GPIO.output(Clock,GPIO.HIGH)
|
||||
GPIO.output(Clock,GPIO.LOW)
|
||||
#no mean ,just delay
|
||||
for i in range(0,6):
|
||||
GPIO.output(Clock,GPIO.HIGH)
|
||||
GPIO.output(Clock,GPIO.LOW)
|
||||
# time.sleep(0.0001)
|
||||
GPIO.output(CS,GPIO.HIGH)
|
||||
return value[1:]
|
||||
|
||||
"""
|
||||
Reads the sensors 10 times and uses the results for
|
||||
calibration. The sensor values are not returned; instead, the
|
||||
maximum and minimum values found over time are stored internally
|
||||
and used for the readCalibrated() method.
|
||||
"""
|
||||
def calibrate(self):
|
||||
max_sensor_values = [0]*self.numSensors
|
||||
min_sensor_values = [0]*self.numSensors
|
||||
for j in range(0,10):
|
||||
|
||||
sensor_values = self.AnalogRead();
|
||||
|
||||
for i in range(0,self.numSensors):
|
||||
|
||||
# set the max we found THIS time
|
||||
if((j == 0) or max_sensor_values[i] < sensor_values[i]):
|
||||
max_sensor_values[i] = sensor_values[i]
|
||||
|
||||
# set the min we found THIS time
|
||||
if((j == 0) or min_sensor_values[i] > sensor_values[i]):
|
||||
min_sensor_values[i] = sensor_values[i]
|
||||
|
||||
# record the min and max calibration values
|
||||
for i in range(0,self.numSensors):
|
||||
if(min_sensor_values[i] > self.calibratedMin[i]):
|
||||
self.calibratedMin[i] = min_sensor_values[i]
|
||||
if(max_sensor_values[i] < self.calibratedMax[i]):
|
||||
self.calibratedMax[i] = max_sensor_values[i]
|
||||
|
||||
"""
|
||||
Returns values calibrated to a value between 0 and 1000, where
|
||||
0 corresponds to the minimum value read by calibrate() and 1000
|
||||
corresponds to the maximum value. Calibration values are
|
||||
stored separately for each sensor, so that differences in the
|
||||
sensors are accounted for automatically.
|
||||
"""
|
||||
def readCalibrated(self):
|
||||
value = 0
|
||||
#read the needed values
|
||||
sensor_values = self.AnalogRead();
|
||||
|
||||
for i in range (0,self.numSensors):
|
||||
|
||||
denominator = self.calibratedMax[i] - self.calibratedMin[i]
|
||||
|
||||
if(denominator != 0):
|
||||
value = (sensor_values[i] - self.calibratedMin[i])* 1000 / denominator
|
||||
|
||||
if(value < 0):
|
||||
value = 0
|
||||
elif(value > 1000):
|
||||
value = 1000
|
||||
|
||||
sensor_values[i] = value
|
||||
|
||||
print("readCalibrated",sensor_values)
|
||||
return sensor_values
|
||||
|
||||
"""
|
||||
Operates the same as read calibrated, but also returns an
|
||||
estimated position of the robot with respect to a line. The
|
||||
estimate is made using a weighted average of the sensor indices
|
||||
multiplied by 1000, so that a return value of 0 indicates that
|
||||
the line is directly below sensor 0, a return value of 1000
|
||||
indicates that the line is directly below sensor 1, 2000
|
||||
indicates that it's below sensor 2000, etc. Intermediate
|
||||
values indicate that the line is between two sensors. The
|
||||
formula is:
|
||||
|
||||
0*value0 + 1000*value1 + 2000*value2 + ...
|
||||
--------------------------------------------
|
||||
value0 + value1 + value2 + ...
|
||||
|
||||
By default, this function assumes a dark line (high values)
|
||||
surrounded by white (low values). If your line is light on
|
||||
black, set the optional second argument white_line to true. In
|
||||
this case, each sensor value will be replaced by (1000-value)
|
||||
before the averaging.
|
||||
"""
|
||||
def readLine(self, white_line = 0):
|
||||
|
||||
sensor_values = self.readCalibrated()
|
||||
avg = 0
|
||||
sum = 0
|
||||
on_line = 0
|
||||
for i in range(0,self.numSensors):
|
||||
value = sensor_values[i]
|
||||
if(white_line):
|
||||
value = 1000-value
|
||||
# keep track of whether we see the line at all
|
||||
if(value > 200):
|
||||
on_line = 1
|
||||
|
||||
# only average in values that are above a noise threshold
|
||||
if(value > 50):
|
||||
avg += value * (i * 1000); # this is for the weighted total,
|
||||
sum += value; #this is for the denominator
|
||||
|
||||
if(on_line != 1):
|
||||
# If it last read to the left of center, return 0.
|
||||
if(self.last_value < (self.numSensors - 1)*1000/2):
|
||||
#print("left")
|
||||
return 0;
|
||||
|
||||
# If it last read to the right of center, return the max.
|
||||
else:
|
||||
#print("right")
|
||||
return (self.numSensors - 1)*1000
|
||||
|
||||
self.last_value = avg/sum
|
||||
|
||||
return self.last_value
|
||||
|
||||
GPIO.setmode(GPIO.BCM)
|
||||
GPIO.setwarnings(False)
|
||||
GPIO.setup(Clock,GPIO.OUT)
|
||||
GPIO.setup(Address,GPIO.OUT)
|
||||
GPIO.setup(CS,GPIO.OUT)
|
||||
GPIO.setup(DataOut,GPIO.IN,GPIO.PUD_UP)
|
||||
|
||||
# Simple example prints accel/mag data once per second:
|
||||
if __name__ == '__main__':
|
||||
|
||||
from AlphaBot import AlphaBot
|
||||
|
||||
maximum = 35;
|
||||
integral = 0;
|
||||
last_proportional = 0
|
||||
|
||||
TR = TRSensor()
|
||||
Ab = AlphaBot()
|
||||
Ab.stop()
|
||||
print("Line follow Example")
|
||||
time.sleep(0.5)
|
||||
for i in range(0,400):
|
||||
TR.calibrate()
|
||||
print(i)
|
||||
print(TR.calibratedMin)
|
||||
print(TR.calibratedMax)
|
||||
time.sleep(0.5)
|
||||
Ab.backward()
|
||||
while True:
|
||||
position = TR.readLine()
|
||||
#print(position)
|
||||
|
||||
# The "proportional" term should be 0 when we are on the line.
|
||||
proportional = position - 2000
|
||||
|
||||
# Compute the derivative (change) and integral (sum) of the position.
|
||||
derivative = proportional - last_proportional
|
||||
integral += proportional
|
||||
|
||||
# Remember the last position.
|
||||
last_proportional = proportional
|
||||
|
||||
'''
|
||||
// Compute the difference between the two motor power settings,
|
||||
// m1 - m2. If this is a positive number the robot will turn
|
||||
// to the right. If it is a negative number, the robot will
|
||||
// turn to the left, and the magnitude of the number determines
|
||||
// the sharpness of the turn. You can adjust the constants by which
|
||||
// the proportional, integral, and derivative terms are multiplied to
|
||||
// improve performance.
|
||||
'''
|
||||
power_difference = proportional/25 + derivative/100 #+ integral/1000;
|
||||
|
||||
if (power_difference > maximum):
|
||||
power_difference = maximum
|
||||
if (power_difference < - maximum):
|
||||
power_difference = - maximum
|
||||
print(position,power_difference)
|
||||
if (power_difference < 0):
|
||||
Ab.setPWMB(maximum + power_difference)
|
||||
Ab.setPWMA(maximum);
|
||||
else:
|
||||
Ab.setPWMB(maximum);
|
||||
Ab.setPWMA(maximum - power_difference)
|
||||
|
||||
|
||||
38
AlphaBot-CARIA/Pi-python/Infrared_Obstacle_Avoidance.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import RPi.GPIO as GPIO
|
||||
import time
|
||||
from AlphaBot import AlphaBot
|
||||
|
||||
Ab = AlphaBot()
|
||||
|
||||
DR = 16
|
||||
DL = 19
|
||||
|
||||
GPIO.setmode(GPIO.BCM)
|
||||
GPIO.setwarnings(False)
|
||||
GPIO.setup(DR,GPIO.IN,GPIO.PUD_UP)
|
||||
GPIO.setup(DL,GPIO.IN,GPIO.PUD_UP)
|
||||
|
||||
try:
|
||||
while True:
|
||||
DR_status = GPIO.input(DR)
|
||||
DL_status = GPIO.input(DL)
|
||||
if((DL_status == 1) and (DR_status == 1)):
|
||||
Ab.forward()
|
||||
print("forward")
|
||||
elif((DL_status == 1) and (DR_status == 0)):
|
||||
Ab.left()
|
||||
print("left")
|
||||
elif((DL_status == 0) and (DR_status == 1)):
|
||||
Ab.right()
|
||||
print("right")
|
||||
else:
|
||||
Ab.backward()
|
||||
time.sleep(0.2)
|
||||
Ab.left()
|
||||
time.sleep(0.2)
|
||||
Ab.stop()
|
||||
print("backward")
|
||||
|
||||
except KeyboardInterrupt:
|
||||
GPIO.cleanup();
|
||||
|
||||
99
AlphaBot-CARIA/Pi-python/Infrared_Remote_Control.py
Normal file
@@ -0,0 +1,99 @@
|
||||
import RPi.GPIO as GPIO
|
||||
import time
|
||||
from AlphaBot import AlphaBot
|
||||
|
||||
Ab = AlphaBot()
|
||||
|
||||
IR = 18
|
||||
PWM = 50
|
||||
n=0
|
||||
|
||||
GPIO.setmode(GPIO.BCM)
|
||||
GPIO.setwarnings(False)
|
||||
GPIO.setup(IR,GPIO.IN,GPIO.PUD_UP)
|
||||
|
||||
|
||||
def getkey():
|
||||
if GPIO.input(IR) == 0:
|
||||
count = 0
|
||||
while GPIO.input(IR) == 0 and count < 200: #9ms
|
||||
count += 1
|
||||
time.sleep(0.00006)
|
||||
|
||||
count = 0
|
||||
while GPIO.input(IR) == 1 and count < 80: #4.5ms
|
||||
count += 1
|
||||
time.sleep(0.00006)
|
||||
|
||||
idx = 0
|
||||
cnt = 0
|
||||
data = [0,0,0,0]
|
||||
for i in range(0,32):
|
||||
count = 0
|
||||
while GPIO.input(IR) == 0 and count < 15: #0.56ms
|
||||
count += 1
|
||||
time.sleep(0.00006)
|
||||
|
||||
count = 0
|
||||
while GPIO.input(IR) == 1 and count < 40: #0: 0.56mx
|
||||
count += 1 #1: 1.69ms
|
||||
time.sleep(0.00006)
|
||||
|
||||
if count > 8:
|
||||
data[idx] |= 1<<cnt
|
||||
if cnt == 7:
|
||||
cnt = 0
|
||||
idx += 1
|
||||
else:
|
||||
cnt += 1
|
||||
print(data)
|
||||
if data[0]+data[1] == 0xFF and data[2]+data[3] == 0xFF: #check
|
||||
return data[2]
|
||||
|
||||
if data[0] == 255 and data[1] == 255 and data[2] == 15 and data[3] == 255:
|
||||
return "repeat"
|
||||
|
||||
|
||||
print('IRremote Test Start ...')
|
||||
Ab.stop()
|
||||
try:
|
||||
while True:
|
||||
key = getkey()
|
||||
if(key != None):
|
||||
if key == "repeat":
|
||||
n = 0
|
||||
if key == 0x18:
|
||||
Ab.forward()
|
||||
# print("forward")
|
||||
if key == 0x08:
|
||||
Ab.left()
|
||||
# print("left")
|
||||
if key == 0x1c:
|
||||
Ab.stop()
|
||||
# print("stop")
|
||||
if key == 0x5a:
|
||||
Ab.right()
|
||||
# print("right")
|
||||
if key == 0x52:
|
||||
Ab.backward()
|
||||
# print("backward")
|
||||
if key == 0x15:
|
||||
if(PWM + 10 < 101):
|
||||
PWM = PWM + 10
|
||||
Ab.setPWMA(PWM)
|
||||
Ab.setPWMB(PWM)
|
||||
print(PWM)
|
||||
if key == 0x07:
|
||||
if(PWM - 10 > -1):
|
||||
PWM = PWM - 10
|
||||
Ab.setPWMA(PWM)
|
||||
Ab.setPWMB(PWM)
|
||||
print(PWM)
|
||||
else:
|
||||
n += 1
|
||||
if n > 20000:
|
||||
n = 0
|
||||
Ab.stop()
|
||||
except KeyboardInterrupt:
|
||||
GPIO.cleanup();
|
||||
|
||||
38
AlphaBot-CARIA/Pi-python/Infrared_Tracking_Objects.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import RPi.GPIO as GPIO
|
||||
import time
|
||||
from AlphaBot import AlphaBot
|
||||
import smbus
|
||||
|
||||
Ab = AlphaBot()
|
||||
|
||||
DR = 16
|
||||
DL = 19
|
||||
|
||||
|
||||
GPIO.setmode(GPIO.BCM)
|
||||
GPIO.setwarnings(False)
|
||||
GPIO.setup(DR,GPIO.IN,GPIO.PUD_UP)
|
||||
GPIO.setup(DL,GPIO.IN,GPIO.PUD_UP)
|
||||
|
||||
Ab.stop()
|
||||
try:
|
||||
while True:
|
||||
|
||||
DR_status = GPIO.input(DR)
|
||||
DL_status = GPIO.input(DL)
|
||||
if((DL_status == 0) and (DR_status == 0)):
|
||||
Ab.forward()
|
||||
print("forward")
|
||||
elif((DL_status == 1) and (DR_status == 0)):
|
||||
Ab.right()
|
||||
print("right")
|
||||
elif((DL_status == 0) and (DR_status == 1)):
|
||||
Ab.left()
|
||||
print("left")
|
||||
else:
|
||||
Ab.stop()
|
||||
print("stop")
|
||||
|
||||
except KeyboardInterrupt:
|
||||
GPIO.cleanup();
|
||||
|
||||
73
AlphaBot-CARIA/Pi-python/Ultrasonic_Obstacle_Avoidance.py
Normal file
@@ -0,0 +1,73 @@
|
||||
import RPi.GPIO as GPIO
|
||||
import time
|
||||
from AlphaBot import AlphaBot
|
||||
|
||||
SERVO = 27
|
||||
TRIG = 17
|
||||
ECHO = 5
|
||||
|
||||
Ab = AlphaBot()
|
||||
|
||||
GPIO.setmode(GPIO.BCM)
|
||||
GPIO.setwarnings(False)
|
||||
GPIO.setup(SERVO, GPIO.OUT, initial=GPIO.LOW)
|
||||
GPIO.setup(TRIG,GPIO.OUT,initial=GPIO.LOW)
|
||||
GPIO.setup(ECHO,GPIO.IN)
|
||||
p = GPIO.PWM(SERVO,50)
|
||||
p.start(0)
|
||||
|
||||
def ServoAngle(angle):
|
||||
p.ChangeDutyCycle(2.5 + 10.0 * angle / 180)
|
||||
|
||||
def Distance():
|
||||
GPIO.output(TRIG,GPIO.HIGH)
|
||||
time.sleep(0.000015)
|
||||
GPIO.output(TRIG,GPIO.LOW)
|
||||
while not GPIO.input(ECHO):
|
||||
pass
|
||||
t1 = time.time()
|
||||
while GPIO.input(ECHO):
|
||||
pass
|
||||
t2 = time.time()
|
||||
return (t2-t1)*34000/2
|
||||
|
||||
ServoAngle(90)
|
||||
print("Ultrasonic_Obstacle_Avoidance")
|
||||
try:
|
||||
while True:
|
||||
middleDistance = Distance()
|
||||
print("MiddleDistance = %0.2f cm"%middleDistance)
|
||||
if middleDistance <= 20:
|
||||
Ab.stop()
|
||||
# time.sleep(0.5)
|
||||
ServoAngle(5)
|
||||
time.sleep(1)
|
||||
rightDistance = Distance()
|
||||
print("RightDistance = %0.2f cm"%rightDistance)
|
||||
# time.sleep(0.5)
|
||||
ServoAngle(180)
|
||||
time.sleep(1)
|
||||
leftDistance = Distance()
|
||||
print("LeftDistance = %0.2f cm"%leftDistance)
|
||||
# time.sleep(0.5)
|
||||
ServoAngle(90)
|
||||
time.sleep(1)
|
||||
if rightDistance <20 and leftDistance < 20:
|
||||
Ab.backward()
|
||||
time.sleep(0.3)
|
||||
Ab.stop()
|
||||
elif rightDistance >= leftDistance:
|
||||
Ab.right()
|
||||
time.sleep(0.3)
|
||||
Ab.stop()
|
||||
else:
|
||||
Ab.left()
|
||||
time.sleep(0.3)
|
||||
Ab.stop()
|
||||
time.sleep(0.3)
|
||||
else:
|
||||
Ab.forward()
|
||||
time.sleep(0.02)
|
||||
|
||||
except KeyboardInterrupt:
|
||||
GPIO.cleanup();
|
||||
30
AlphaBot-CARIA/Pi-python/Ultrasonic_Ranging.py
Normal file
@@ -0,0 +1,30 @@
|
||||
import RPi.GPIO as GPIO
|
||||
import time
|
||||
|
||||
TRIG = 17
|
||||
ECHO = 5
|
||||
|
||||
GPIO.setmode(GPIO.BCM)
|
||||
GPIO.setwarnings(False)
|
||||
GPIO.setup(TRIG,GPIO.OUT,initial=GPIO.LOW)
|
||||
GPIO.setup(ECHO,GPIO.IN)
|
||||
|
||||
def dist():
|
||||
GPIO.output(TRIG,GPIO.HIGH)
|
||||
time.sleep(0.000015)
|
||||
GPIO.output(TRIG,GPIO.LOW)
|
||||
while not GPIO.input(ECHO):
|
||||
pass
|
||||
t1 = time.time()
|
||||
while GPIO.input(ECHO):
|
||||
pass
|
||||
t2 = time.time()
|
||||
return (t2-t1)*34000/2
|
||||
|
||||
try:
|
||||
while True:
|
||||
print("HELLO")
|
||||
print("Distance:%0.2f cm" % dist())
|
||||
time.sleep(1)
|
||||
except KeyboardInterrupt:
|
||||
GPIO.cleanup()
|
||||
@@ -1,41 +1,41 @@
|
||||
use CARIA;
|
||||
#------------------------------------------------------------
|
||||
# Insertions de Données
|
||||
#------------------------------------------------------------
|
||||
|
||||
INSERT INTO Client (dateenregistre,privilege,pseudo, prenom, nom, sexe, age, adresse, mdp, adressemail, permis,imageclient)
|
||||
VALUES
|
||||
('2016-09-12' ,'1', 'sa' , 'sa' , 'pc' , 'HOMME','20' , 'sa' , '382e0360e4eb7b70034fbaa69bec5786' , 'sa@gmail.com' ,'0', '/images/avatars/img_user.jpg'),
|
||||
('2016-09-12' ,'1', 'PAPI91' , 'FLORIAN' , 'ARBITA' , 'HOMME','17' , '3 RUE PITI' , '83ea007bfdd589f29b820552b3f94260' , 'PAPI@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
|
||||
('2016-10-05' ,'2', 'TATA85' , 'JANNE' , 'MORINA' , 'FEMME','5' , '78 RUE PARI' , '01750feaaf112c40293ac49b658b12ab' , 'TATA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
|
||||
('2016-11-03' ,'2', 'MODR4' , 'DAVID' , 'DAROP' , 'HOMME','45' , '65 RUE PIORI' , '81df18ab2fce0c63561642e298347e5b' , 'MODR@gmail.com' ,'4', '/images/avatars/img_user1.jpg'),
|
||||
('2016-06-25' ,'2', 'ALLOO6' , 'GEREMY' , 'MILES' , 'HOMME','14' , '6 RUE NIOLO' , '83ea007bfdd589f29b820552b3f94260' , 'ALLO@gmail.com' ,'2', '/images/avatars/img_user1.jpg'),
|
||||
('2016-05-10' ,'2', 'MAMA23' , 'FLORIANE', 'BOLON' , 'FEMME','25' , '1 RUE ROB' , '01750feaaf112c40293ac49b658b12ab' , 'MAMA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
|
||||
('2016-07-01' ,'2', 'BIBI' , 'EMILIE' , 'SIRANY' , 'FEMME','6' , 'MAISON DU CLOS' , 'd74c404f01c1e3c127118a8c1fc81212' , 'BIBI@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
|
||||
('2016-09-11' ,'2', 'PIOUPIOU' , 'FLORA' , 'CERINA' , 'FEMME','15' , 'ALLE DU RUIS' , '7b5550eae68b75c98a58881cb968c6ff' , 'PIOU@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
|
||||
('2016-09-05' ,'2', 'BANANA987', 'LUCY' , 'CARELI' , 'FEMME','18' , '9 MER DU CIEL' , '01750feaaf112c40293ac49b658b12ab' , 'BANA@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
|
||||
('2016-09-30' ,'2', 'RARA' , 'SOPHIE' , 'BENIC' , 'FEMME','26' , 'CREUX DE L''HIRONDELLE' , 'dc6accf0ee16c9dbf4daf2b81c1e7fd4' , 'RARA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
|
||||
('2017-05-29' ,'2', 'DARKY91' , 'JONHATAN' , 'MOITILE' , 'HOMME','5' , '198 AVENUE DU GENERAL' , 'b54637201175346cc78ec20fa2718b2f' , 'darky@gmail.com' ,'2', '/images/avatars/img_user1.jpg'),
|
||||
('2017-04-05' ,'2', 'DAMI85' , 'THOMAS' , 'NIGOLE' , 'HOMME','5' , '35 RUE DE LA RIVIIERE' , 'b2ac9acf20fa3711eb6c8b00734adbde' , 'darky@gmail.com' ,'1', DEFAULT),
|
||||
('2017-02-25' ,'2', 'FOFO36' , 'REMY' , 'MINONY' , 'HOMME','5' , '01 AVENUE DE L''IMPASSE DU CREUX' , '71b14f0cefc1b25455c3ca7c22a80473' , 'FOFO@gmail.com' ,'3', '/images/avatars/img_user1.jpg'),
|
||||
('2017-03-14' ,'2', 'MIBO466' , 'OLIVIA' , 'MOITILE' , 'FEMME','5' , '36 BIS ALLEE DE L''ETANG DE MILLE LIEUX' , '857692b439598675d6f89db000a1dc0a' , 'MIBO@gmail.com' ,'4', '/images/avatars/img_user1.jpg'),
|
||||
('2017-01-09' ,'2', 'BIIIBBBBOOPOPIL' , 'SAMADOUDOURELIE' , 'KILOPANAPONIKAT' , 'HOMME','100' , '325 RUE DE PARIS, 3 EME ARRONDISSEMENT , BRUXELLE' , '52b5dd8f28c934b7a4a3fd3d67835cd8' , 'BIIIBBBBOOPOPIL@yahoo.com' ,'7', DEFAULT);
|
||||
|
||||
|
||||
INSERT INTO Voiture (privilege, prenom, nom, age, galop, sexe, adressemail,mdp)
|
||||
VALUES
|
||||
('1' , 'sa' , 'sa' ,'20', '2' , 'HOMME' , 'sa@gmail.com' , 'P@ssword'),
|
||||
('1' , 'FLORIAN' , 'ARBITA' ,'18', '3' , 'HOMME' , 'farbita@gmail.com' , 'AZERTY' ),
|
||||
('2' , 'JEAN' , 'DURILE' ,'25', '7' , 'HOMME' ,'jdurile@gmail.com' , '123' ),
|
||||
('2' , 'REMY' , 'LIBY' ,'43', '6' , 'HOMME' ,'rliby@gmail.com' , '321' ),
|
||||
('2' , 'SOPHIA' , 'CERIA' ,'29', '8' , 'FEMME' ,'sceria@gmail.com' , 'qwerty' ),
|
||||
('2' , 'FLORA' , 'DUPUIS' ,'36', '4' , 'FEMME' ,'fdupuis@gmail.com' , 'aqwzsx' ),
|
||||
('2' , 'MEGANE' , 'CERIA' ,'29', '5' , 'FEMME' ,'sceria@gmail.com' , 'wxcvbn' ),
|
||||
('2' , 'DOMINIQUE' , 'PLUTIE' ,'64', '7' , 'HOMME' ,'dplutie@gmail.com' , '2017' ),
|
||||
('2' , 'KEVIN' , 'LOPIT' ,'35', '4' , 'HOMME' ,'klopit@gmail.com' , 'azerty123' ),
|
||||
('2' , 'JONATHAN' , 'LIKY' ,'29', '8' , 'HOMME' ,'mimi@gmail.com' , 'tyu4u566' ),
|
||||
('1' , 'BENJAMIN' , 'DOMINAK' ,'36', '4' , 'HOMME' ,'pilix@gmail.com' , 'gs12sfg' ),
|
||||
('2' , 'OLIVIA' , 'XIJIRA' ,'29', '8' , 'FEMME' ,'nathalia@gmail.com' , 'bvc9d65er' ),
|
||||
('2' , 'DOMINIQUE' , 'MANAPLA' ,'64', '7' , 'FEMME' ,'titineau@gmail.com' , '78hyh789' ),
|
||||
('1' , 'JEAN-PIERE' , 'JUDUKI' ,'35', '9' , 'HOMME' ,'mimome@gmail.com' , 'vf54vfdv' ),
|
||||
use CARIA;
|
||||
#------------------------------------------------------------
|
||||
# Insertions de Données
|
||||
#------------------------------------------------------------
|
||||
|
||||
INSERT INTO Client (dateenregistre,privilege,pseudo, prenom, nom, sexe, age, adresse, mdp, adressemail, permis,imageclient)
|
||||
VALUES
|
||||
('2016-09-12' ,'1', 'sa' , 'sa' , 'pc' , 'HOMME','20' , 'sa' , '382e0360e4eb7b70034fbaa69bec5786' , 'sa@gmail.com' ,'0', '/images/avatars/img_user.jpg'),
|
||||
('2016-09-12' ,'1', 'PAPI91' , 'FLORIAN' , 'ARBITA' , 'HOMME','17' , '3 RUE PITI' , '83ea007bfdd589f29b820552b3f94260' , 'PAPI@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
|
||||
('2016-10-05' ,'2', 'TATA85' , 'JANNE' , 'MORINA' , 'FEMME','5' , '78 RUE PARI' , '01750feaaf112c40293ac49b658b12ab' , 'TATA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
|
||||
('2016-11-03' ,'2', 'MODR4' , 'DAVID' , 'DAROP' , 'HOMME','45' , '65 RUE PIORI' , '81df18ab2fce0c63561642e298347e5b' , 'MODR@gmail.com' ,'4', '/images/avatars/img_user1.jpg'),
|
||||
('2016-06-25' ,'2', 'ALLOO6' , 'GEREMY' , 'MILES' , 'HOMME','14' , '6 RUE NIOLO' , '83ea007bfdd589f29b820552b3f94260' , 'ALLO@gmail.com' ,'2', '/images/avatars/img_user1.jpg'),
|
||||
('2016-05-10' ,'2', 'MAMA23' , 'FLORIANE', 'BOLON' , 'FEMME','25' , '1 RUE ROB' , '01750feaaf112c40293ac49b658b12ab' , 'MAMA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
|
||||
('2016-07-01' ,'2', 'BIBI' , 'EMILIE' , 'SIRANY' , 'FEMME','6' , 'MAISON DU CLOS' , 'd74c404f01c1e3c127118a8c1fc81212' , 'BIBI@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
|
||||
('2016-09-11' ,'2', 'PIOUPIOU' , 'FLORA' , 'CERINA' , 'FEMME','15' , 'ALLE DU RUIS' , '7b5550eae68b75c98a58881cb968c6ff' , 'PIOU@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
|
||||
('2016-09-05' ,'2', 'BANANA987', 'LUCY' , 'CARELI' , 'FEMME','18' , '9 MER DU CIEL' , '01750feaaf112c40293ac49b658b12ab' , 'BANA@gmail.com' ,'0', '/images/avatars/img_user1.jpg'),
|
||||
('2016-09-30' ,'2', 'RARA' , 'SOPHIE' , 'BENIC' , 'FEMME','26' , 'CREUX DE L''HIRONDELLE' , 'dc6accf0ee16c9dbf4daf2b81c1e7fd4' , 'RARA@gmail.com' ,'1', '/images/avatars/img_user1.jpg'),
|
||||
('2017-05-29' ,'2', 'DARKY91' , 'JONHATAN' , 'MOITILE' , 'HOMME','5' , '198 AVENUE DU GENERAL' , 'b54637201175346cc78ec20fa2718b2f' , 'darky@gmail.com' ,'2', '/images/avatars/img_user1.jpg'),
|
||||
('2017-04-05' ,'2', 'DAMI85' , 'THOMAS' , 'NIGOLE' , 'HOMME','5' , '35 RUE DE LA RIVIIERE' , 'b2ac9acf20fa3711eb6c8b00734adbde' , 'darky@gmail.com' ,'1', DEFAULT),
|
||||
('2017-02-25' ,'2', 'FOFO36' , 'REMY' , 'MINONY' , 'HOMME','5' , '01 AVENUE DE L''IMPASSE DU CREUX' , '71b14f0cefc1b25455c3ca7c22a80473' , 'FOFO@gmail.com' ,'3', '/images/avatars/img_user1.jpg'),
|
||||
('2017-03-14' ,'2', 'MIBO466' , 'OLIVIA' , 'MOITILE' , 'FEMME','5' , '36 BIS ALLEE DE L''ETANG DE MILLE LIEUX' , '857692b439598675d6f89db000a1dc0a' , 'MIBO@gmail.com' ,'4', '/images/avatars/img_user1.jpg'),
|
||||
('2017-01-09' ,'2', 'BIIIBBBBOOPOPIL' , 'SAMADOUDOURELIE' , 'KILOPANAPONIKAT' , 'HOMME','100' , '325 RUE DE PARIS, 3 EME ARRONDISSEMENT , BRUXELLE' , '52b5dd8f28c934b7a4a3fd3d67835cd8' , 'BIIIBBBBOOPOPIL@yahoo.com' ,'7', DEFAULT);
|
||||
|
||||
|
||||
INSERT INTO Voiture (privilege, prenom, nom, age, galop, sexe, adressemail,mdp)
|
||||
VALUES
|
||||
('1' , 'sa' , 'sa' ,'20', '2' , 'HOMME' , 'sa@gmail.com' , 'P@ssword'),
|
||||
('1' , 'FLORIAN' , 'ARBITA' ,'18', '3' , 'HOMME' , 'farbita@gmail.com' , 'AZERTY' ),
|
||||
('2' , 'JEAN' , 'DURILE' ,'25', '7' , 'HOMME' ,'jdurile@gmail.com' , '123' ),
|
||||
('2' , 'REMY' , 'LIBY' ,'43', '6' , 'HOMME' ,'rliby@gmail.com' , '321' ),
|
||||
('2' , 'SOPHIA' , 'CERIA' ,'29', '8' , 'FEMME' ,'sceria@gmail.com' , 'qwerty' ),
|
||||
('2' , 'FLORA' , 'DUPUIS' ,'36', '4' , 'FEMME' ,'fdupuis@gmail.com' , 'aqwzsx' ),
|
||||
('2' , 'MEGANE' , 'CERIA' ,'29', '5' , 'FEMME' ,'sceria@gmail.com' , 'wxcvbn' ),
|
||||
('2' , 'DOMINIQUE' , 'PLUTIE' ,'64', '7' , 'HOMME' ,'dplutie@gmail.com' , '2017' ),
|
||||
('2' , 'KEVIN' , 'LOPIT' ,'35', '4' , 'HOMME' ,'klopit@gmail.com' , 'azerty123' ),
|
||||
('2' , 'JONATHAN' , 'LIKY' ,'29', '8' , 'HOMME' ,'mimi@gmail.com' , 'tyu4u566' ),
|
||||
('1' , 'BENJAMIN' , 'DOMINAK' ,'36', '4' , 'HOMME' ,'pilix@gmail.com' , 'gs12sfg' ),
|
||||
('2' , 'OLIVIA' , 'XIJIRA' ,'29', '8' , 'FEMME' ,'nathalia@gmail.com' , 'bvc9d65er' ),
|
||||
('2' , 'DOMINIQUE' , 'MANAPLA' ,'64', '7' , 'FEMME' ,'titineau@gmail.com' , '78hyh789' ),
|
||||
('1' , 'JEAN-PIERE' , 'JUDUKI' ,'35', '9' , 'HOMME' ,'mimome@gmail.com' , 'vf54vfdv' ),
|
||||
('2', 'SAMADOULOURELIE', 'KILOFANAPONIKAE' ,'100', '9' , 'FEMME' ,'BARIBOULBOPOPIL@yahoo.com' , 'F%F53&D96DF!FDS' );
|
||||
5
IA/IA-Tuto-YT.url
Normal file
@@ -0,0 +1,5 @@
|
||||
[{000214A0-0000-0000-C000-000000000046}]
|
||||
Prop3=19,11
|
||||
[InternetShortcut]
|
||||
IDList=
|
||||
URL=https://www.youtube.com/watch?v=-3xbAkCWJCc&list=PLALfJegMRGp2dJh-n1EVw2ESAUY-Et9KE
|
||||
5
IA/Tuto.url
Normal file
@@ -0,0 +1,5 @@
|
||||
[{000214A0-0000-0000-C000-000000000046}]
|
||||
Prop3=19,11
|
||||
[InternetShortcut]
|
||||
IDList=
|
||||
URL=https://github.com/L42Project/Tutoriels
|
||||
BIN
IA/Tutoriels-master.zip
Normal file
5
IA/haarcascades.url
Normal file
@@ -0,0 +1,5 @@
|
||||
[{000214A0-0000-0000-C000-000000000046}]
|
||||
Prop3=19,11
|
||||
[InternetShortcut]
|
||||
IDList=
|
||||
URL=https://github.com/opencv/opencv/tree/master/data/haarcascades
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/connexion/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/connexion/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
define('VISITEUR',1);
|
||||
define('INSCRIT',2);
|
||||
define('MODO',3);
|
||||
define('ADMIN',4);
|
||||
define('ERR_IS_CO','Vous ne pouvez pas accéder à cette page si vous n\'êtes pas connecté');
|
||||
?>
|
||||
|
||||
|
||||
<?php
|
||||
define('VISITEUR',1);
|
||||
define('INSCRIT',2);
|
||||
define('MODO',3);
|
||||
define('ADMIN',4);
|
||||
define('ERR_IS_CO','Vous ne pouvez pas accéder à cette page si vous n\'êtes pas connecté');
|
||||
?>
|
||||
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<?php
|
||||
function erreur($err='')
|
||||
{
|
||||
$mess=($err!='')? $err:'Une erreur inconnue s\'est produite';
|
||||
exit('
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Vous êtes pas autorisé a passer ici</h2><br>
|
||||
<p> '.$mess.' </p>
|
||||
<p>Cliquez <a href="./espace_membre.php">ici</a> pour revenir à la page d\'accueil</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>');
|
||||
}
|
||||
function move_avatar($avatar)
|
||||
{
|
||||
$extension_upload = strtolower(substr( strrchr($avatar['name'], '.') ,1));
|
||||
$name = time();
|
||||
$nomavatar = str_replace(' ','',$name).".".$extension_upload;
|
||||
$name = "./images/avatars/".str_replace(' ','',$name).".".$extension_upload;
|
||||
move_uploaded_file($avatar['tmp_name'],$name);
|
||||
return $nomavatar;
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
function erreur($err='')
|
||||
{
|
||||
$mess=($err!='')? $err:'Une erreur inconnue s\'est produite';
|
||||
exit('
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Vous êtes pas autorisé a passer ici</h2><br>
|
||||
<p> '.$mess.' </p>
|
||||
<p>Cliquez <a href="./espace_membre.php">ici</a> pour revenir à la page d\'accueil</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>');
|
||||
}
|
||||
function move_avatar($avatar)
|
||||
{
|
||||
$extension_upload = strtolower(substr( strrchr($avatar['name'], '.') ,1));
|
||||
$name = time();
|
||||
$nomavatar = str_replace(' ','',$name).".".$extension_upload;
|
||||
$name = "./images/avatars/".str_replace(' ','',$name).".".$extension_upload;
|
||||
move_uploaded_file($avatar['tmp_name'],$name);
|
||||
return $nomavatar;
|
||||
}
|
||||
?>
|
||||
@@ -1,238 +1,238 @@
|
||||
<script>
|
||||
function bbcode(bbdebut, bbfin)
|
||||
{
|
||||
var input = window.document.formulaire.message;
|
||||
input.focus();
|
||||
if(typeof document.selection != 'undefined')
|
||||
{
|
||||
var range = document.selection.createRange();
|
||||
var insText = range.text;
|
||||
range.text = bbdebut + insText + bbfin;
|
||||
range = document.selection.createRange();
|
||||
if (insText.length == 0)
|
||||
{
|
||||
range.move('character', -bbfin.length);
|
||||
}
|
||||
else
|
||||
{
|
||||
range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
|
||||
}
|
||||
range.select();
|
||||
}
|
||||
else if(typeof input.selectionStart != 'undefined')
|
||||
{
|
||||
var start = input.selectionStart;
|
||||
var end = input.selectionEnd;
|
||||
var insText = input.value.substring(start, end);
|
||||
input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
|
||||
var pos;
|
||||
if (insText.length == 0)
|
||||
{
|
||||
pos = start + bbdebut.length;
|
||||
}
|
||||
else
|
||||
{
|
||||
pos = start + bbdebut.length + insText.length + bbfin.length;
|
||||
}
|
||||
input.selectionStart = pos;
|
||||
input.selectionEnd = pos;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
var pos;
|
||||
var re = new RegExp('^[0-9]{0,3}$');
|
||||
while(!re.test(pos))
|
||||
{
|
||||
pos = prompt("insertion (0.." + input.value.length + "):", "0");
|
||||
}
|
||||
if(pos > input.value.length)
|
||||
{
|
||||
pos = input.value.length;
|
||||
}
|
||||
var insText = prompt("Veuillez taper le texte");
|
||||
input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos);
|
||||
}
|
||||
}
|
||||
function smilies(img)
|
||||
{
|
||||
window.document.formulaire.message.value += '' + img + '';
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
session_start();
|
||||
$titre="Poster";
|
||||
$balises = true;
|
||||
include("./modele/connexion_sql.php");
|
||||
include("./debut.php");
|
||||
include("./menu.php");
|
||||
?>
|
||||
<?php
|
||||
//Qu'est ce qu'on veut faire ? poster, répondre ou éditer ?
|
||||
$action = (isset($_GET['action']))?htmlspecialchars($_GET['action']):'';
|
||||
|
||||
//Il faut être connecté pour poster !
|
||||
if ($id==0) erreur(ERR_IS_CO);
|
||||
|
||||
//Si on veut poster un nouveau topic, la variable f se trouve dans l'url,
|
||||
//On récupère certaines valeurs
|
||||
if (isset($_GET['f']))
|
||||
{
|
||||
$forum = (int) $_GET['f'];
|
||||
$query= $bdd->prepare('SELECT forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
|
||||
FROM forum_forum WHERE forum_id =:forum');
|
||||
$query->bindValue(':forum',$forum,PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$data=$query->fetch();
|
||||
echo '<p><i>Vous êtes ici</i> : <a href="./members_area.php">Index du forum</a> -->
|
||||
<a href="./voirforum.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
|
||||
--> Nouveau topic</p>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
//Sinon c'est un nouveau message, on a la variable t et
|
||||
//On récupère f grâce à une requête
|
||||
elseif (isset($_GET['t']))
|
||||
{
|
||||
$topic = (int) $_GET['t'];
|
||||
$query=$bdd->prepare('SELECT topic_titre, forum_topic.forum_id,
|
||||
forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
|
||||
FROM forum_topic
|
||||
LEFT JOIN forum_forum ON forum_forum.forum_id = forum_topic.forum_id
|
||||
WHERE topic_id =:topic');
|
||||
$query->bindValue(':topic',$topic,PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$data=$query->fetch();
|
||||
$forum = $data['forum_id'];
|
||||
|
||||
echo '<p><i>Vous êtes ici</i> : <a href="./members_area.php">Index du forum</a> -->
|
||||
<a href="./voirforum.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
|
||||
--> <a href="./voirtopic.php?t='.$topic.'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a>
|
||||
--> Répondre</p>';
|
||||
}
|
||||
|
||||
//Enfin sinon c'est au sujet de la modération(on verra plus tard en détail)
|
||||
//On ne connait que le post, il faut chercher le reste
|
||||
elseif (isset ($_GET['p']))
|
||||
{
|
||||
$post = (int) $_GET['p'];
|
||||
$query=$bdd->prepare('SELECT post_createur, forum_post.topic_id, topic_titre, forum_topic.forum_id,
|
||||
forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
|
||||
FROM forum_post
|
||||
LEFT JOIN forum_topic ON forum_topic.topic_id = forum_post.topic_id
|
||||
LEFT JOIN forum_forum ON forum_forum.forum_id = forum_topic.forum_id
|
||||
WHERE forum_post.post_id =:post');
|
||||
$query->bindValue(':post',$post,PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$data=$query->fetch();
|
||||
|
||||
$topic = $data['topic_id'];
|
||||
$forum = $data['forum_id'];
|
||||
|
||||
echo '<p><i>Vous êtes ici</i> : <a href="./members_area.php">Index du forum</a> -->
|
||||
<a href="./voirforum.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
|
||||
--> <a href="./voirtopic.php?t='.$topic.'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a>
|
||||
--> Modérer un message</p>';
|
||||
}
|
||||
$query->CloseCursor();
|
||||
?>
|
||||
<?php
|
||||
switch($action)
|
||||
{
|
||||
case "repondre": //Premier cas : on souhaite répondre
|
||||
//Ici, on affiche le formulaire de réponse
|
||||
break;
|
||||
|
||||
case "nouveautopic": //Deuxième cas : on souhaite créer un nouveau topic
|
||||
//Ici, on affiche le formulaire de nouveau topic
|
||||
break;
|
||||
|
||||
//D'autres cas viendront s'ajouter là plus tard :p
|
||||
|
||||
default: //Si jamais c'est aucun de ceux-là, c'est qu'il y a eu un problème :o
|
||||
echo'<h2>Cette action est impossible</h2>';
|
||||
|
||||
} //Fin du switch
|
||||
?>
|
||||
<?php
|
||||
switch($action)
|
||||
{
|
||||
case "repondre": //Premier cas on souhaite répondre
|
||||
?>
|
||||
<h1>Poster une réponse</h1>
|
||||
|
||||
<form method="post" action="postok.php?action=repondre&t=<?php echo $topic ?>" name="formulaire">
|
||||
|
||||
<fieldset><legend>Mise en forme</legend>
|
||||
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
|
||||
<input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '[/i]');return(false)" />
|
||||
<input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '[/s]');return(false)" />
|
||||
<input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '[/url]');return(false)" />
|
||||
<br><br>
|
||||
<img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(' :D ');return(false)" />
|
||||
<img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(' :lol: ');return(false)" />
|
||||
<img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(' :triste: ');return(false)" />
|
||||
<img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(' :frime: ');return(false)" />
|
||||
<img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies(' XD ');return(false)" />
|
||||
<img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(' :s ');return(false)" />
|
||||
<img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(' :o ');return(false)" />
|
||||
<img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(' :interrogation: ');return(false)" />
|
||||
<img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(' :exclamation: ');return(false)" />
|
||||
</fieldset>
|
||||
|
||||
<fieldset><legend>Message</legend><textarea cols="80" rows="8" id="message" name="message"></textarea></fieldset>
|
||||
|
||||
<input type="submit" name="submit" value="Envoyer" />
|
||||
<input type="reset" name = "Effacer" value = "Effacer"/>
|
||||
</p></form>
|
||||
<?php
|
||||
break;
|
||||
|
||||
case "nouveautopic":
|
||||
?>
|
||||
|
||||
<h1>Nouveau topic</h1>
|
||||
<form method="post" action="postok.php?action=nouveautopic&f=<?php echo $forum ?>" name="formulaire">
|
||||
|
||||
<fieldset><legend>Titre</legend>
|
||||
<input type="text" size="80" id="titre" name="titre" /></fieldset>
|
||||
|
||||
<fieldset><legend>Mise en forme</legend>
|
||||
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
|
||||
<input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '[/i]');return(false)" />
|
||||
<input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '[/s]');return(false)" />
|
||||
<input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '[/url]');return(false)" />
|
||||
<br><br>
|
||||
<img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(':D');return(false)" />
|
||||
<img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(':lol:');return(false)" />
|
||||
<img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(':triste:');return(false)" />
|
||||
<img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(':frime:');return(false)" />
|
||||
<img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies('XD');return(false)" />
|
||||
<img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(':s');return(false)" />
|
||||
<img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(':O');return(false)" />
|
||||
<img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(':interrogation:');return(false)" />
|
||||
<img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(':exclamation:');return(false)" /></fieldset>
|
||||
|
||||
<fieldset><legend>Message</legend>
|
||||
<textarea cols="80" rows="8" id="message" name="message"></textarea>
|
||||
<label><input type="radio" name="mess" value="Annonce" />Annonce</label>
|
||||
<label><input type="radio" name="mess" value="Message" checked="checked" />Topic</label>
|
||||
</fieldset>
|
||||
<p>
|
||||
<input type="submit" name="submit" value="Envoyer" />
|
||||
<input type="reset" name = "Effacer" value = "Effacer" /></p>
|
||||
</form>
|
||||
<?php
|
||||
break;
|
||||
|
||||
//D'autres cas viendront s'ajouter ici par la suite
|
||||
?>
|
||||
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
|
||||
<?php
|
||||
default: //Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
|
||||
echo'<p>Cette action est impossible</p>';
|
||||
} //Fin du switch
|
||||
?>
|
||||
</div>
|
||||
</html>
|
||||
<script>
|
||||
function bbcode(bbdebut, bbfin)
|
||||
{
|
||||
var input = window.document.formulaire.message;
|
||||
input.focus();
|
||||
if(typeof document.selection != 'undefined')
|
||||
{
|
||||
var range = document.selection.createRange();
|
||||
var insText = range.text;
|
||||
range.text = bbdebut + insText + bbfin;
|
||||
range = document.selection.createRange();
|
||||
if (insText.length == 0)
|
||||
{
|
||||
range.move('character', -bbfin.length);
|
||||
}
|
||||
else
|
||||
{
|
||||
range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
|
||||
}
|
||||
range.select();
|
||||
}
|
||||
else if(typeof input.selectionStart != 'undefined')
|
||||
{
|
||||
var start = input.selectionStart;
|
||||
var end = input.selectionEnd;
|
||||
var insText = input.value.substring(start, end);
|
||||
input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
|
||||
var pos;
|
||||
if (insText.length == 0)
|
||||
{
|
||||
pos = start + bbdebut.length;
|
||||
}
|
||||
else
|
||||
{
|
||||
pos = start + bbdebut.length + insText.length + bbfin.length;
|
||||
}
|
||||
input.selectionStart = pos;
|
||||
input.selectionEnd = pos;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
var pos;
|
||||
var re = new RegExp('^[0-9]{0,3}$');
|
||||
while(!re.test(pos))
|
||||
{
|
||||
pos = prompt("insertion (0.." + input.value.length + "):", "0");
|
||||
}
|
||||
if(pos > input.value.length)
|
||||
{
|
||||
pos = input.value.length;
|
||||
}
|
||||
var insText = prompt("Veuillez taper le texte");
|
||||
input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos);
|
||||
}
|
||||
}
|
||||
function smilies(img)
|
||||
{
|
||||
window.document.formulaire.message.value += '' + img + '';
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
session_start();
|
||||
$titre="Poster";
|
||||
$balises = true;
|
||||
include("./modele/connexion_sql.php");
|
||||
include("./debut.php");
|
||||
include("./menu.php");
|
||||
?>
|
||||
<?php
|
||||
//Qu'est ce qu'on veut faire ? poster, répondre ou éditer ?
|
||||
$action = (isset($_GET['action']))?htmlspecialchars($_GET['action']):'';
|
||||
|
||||
//Il faut être connecté pour poster !
|
||||
if ($id==0) erreur(ERR_IS_CO);
|
||||
|
||||
//Si on veut poster un nouveau topic, la variable f se trouve dans l'url,
|
||||
//On récupère certaines valeurs
|
||||
if (isset($_GET['f']))
|
||||
{
|
||||
$forum = (int) $_GET['f'];
|
||||
$query= $bdd->prepare('SELECT forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
|
||||
FROM forum_forum WHERE forum_id =:forum');
|
||||
$query->bindValue(':forum',$forum,PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$data=$query->fetch();
|
||||
echo '<p><i>Vous êtes ici</i> : <a href="./members_area.php">Index du forum</a> -->
|
||||
<a href="./voirforum.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
|
||||
--> Nouveau topic</p>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
//Sinon c'est un nouveau message, on a la variable t et
|
||||
//On récupère f grâce à une requête
|
||||
elseif (isset($_GET['t']))
|
||||
{
|
||||
$topic = (int) $_GET['t'];
|
||||
$query=$bdd->prepare('SELECT topic_titre, forum_topic.forum_id,
|
||||
forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
|
||||
FROM forum_topic
|
||||
LEFT JOIN forum_forum ON forum_forum.forum_id = forum_topic.forum_id
|
||||
WHERE topic_id =:topic');
|
||||
$query->bindValue(':topic',$topic,PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$data=$query->fetch();
|
||||
$forum = $data['forum_id'];
|
||||
|
||||
echo '<p><i>Vous êtes ici</i> : <a href="./members_area.php">Index du forum</a> -->
|
||||
<a href="./voirforum.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
|
||||
--> <a href="./voirtopic.php?t='.$topic.'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a>
|
||||
--> Répondre</p>';
|
||||
}
|
||||
|
||||
//Enfin sinon c'est au sujet de la modération(on verra plus tard en détail)
|
||||
//On ne connait que le post, il faut chercher le reste
|
||||
elseif (isset ($_GET['p']))
|
||||
{
|
||||
$post = (int) $_GET['p'];
|
||||
$query=$bdd->prepare('SELECT post_createur, forum_post.topic_id, topic_titre, forum_topic.forum_id,
|
||||
forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
|
||||
FROM forum_post
|
||||
LEFT JOIN forum_topic ON forum_topic.topic_id = forum_post.topic_id
|
||||
LEFT JOIN forum_forum ON forum_forum.forum_id = forum_topic.forum_id
|
||||
WHERE forum_post.post_id =:post');
|
||||
$query->bindValue(':post',$post,PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$data=$query->fetch();
|
||||
|
||||
$topic = $data['topic_id'];
|
||||
$forum = $data['forum_id'];
|
||||
|
||||
echo '<p><i>Vous êtes ici</i> : <a href="./members_area.php">Index du forum</a> -->
|
||||
<a href="./voirforum.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
|
||||
--> <a href="./voirtopic.php?t='.$topic.'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a>
|
||||
--> Modérer un message</p>';
|
||||
}
|
||||
$query->CloseCursor();
|
||||
?>
|
||||
<?php
|
||||
switch($action)
|
||||
{
|
||||
case "repondre": //Premier cas : on souhaite répondre
|
||||
//Ici, on affiche le formulaire de réponse
|
||||
break;
|
||||
|
||||
case "nouveautopic": //Deuxième cas : on souhaite créer un nouveau topic
|
||||
//Ici, on affiche le formulaire de nouveau topic
|
||||
break;
|
||||
|
||||
//D'autres cas viendront s'ajouter là plus tard :p
|
||||
|
||||
default: //Si jamais c'est aucun de ceux-là, c'est qu'il y a eu un problème :o
|
||||
echo'<h2>Cette action est impossible</h2>';
|
||||
|
||||
} //Fin du switch
|
||||
?>
|
||||
<?php
|
||||
switch($action)
|
||||
{
|
||||
case "repondre": //Premier cas on souhaite répondre
|
||||
?>
|
||||
<h1>Poster une réponse</h1>
|
||||
|
||||
<form method="post" action="postok.php?action=repondre&t=<?php echo $topic ?>" name="formulaire">
|
||||
|
||||
<fieldset><legend>Mise en forme</legend>
|
||||
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
|
||||
<input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '[/i]');return(false)" />
|
||||
<input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '[/s]');return(false)" />
|
||||
<input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '[/url]');return(false)" />
|
||||
<br><br>
|
||||
<img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(' :D ');return(false)" />
|
||||
<img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(' :lol: ');return(false)" />
|
||||
<img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(' :triste: ');return(false)" />
|
||||
<img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(' :frime: ');return(false)" />
|
||||
<img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies(' XD ');return(false)" />
|
||||
<img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(' :s ');return(false)" />
|
||||
<img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(' :o ');return(false)" />
|
||||
<img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(' :interrogation: ');return(false)" />
|
||||
<img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(' :exclamation: ');return(false)" />
|
||||
</fieldset>
|
||||
|
||||
<fieldset><legend>Message</legend><textarea cols="80" rows="8" id="message" name="message"></textarea></fieldset>
|
||||
|
||||
<input type="submit" name="submit" value="Envoyer" />
|
||||
<input type="reset" name = "Effacer" value = "Effacer"/>
|
||||
</p></form>
|
||||
<?php
|
||||
break;
|
||||
|
||||
case "nouveautopic":
|
||||
?>
|
||||
|
||||
<h1>Nouveau topic</h1>
|
||||
<form method="post" action="postok.php?action=nouveautopic&f=<?php echo $forum ?>" name="formulaire">
|
||||
|
||||
<fieldset><legend>Titre</legend>
|
||||
<input type="text" size="80" id="titre" name="titre" /></fieldset>
|
||||
|
||||
<fieldset><legend>Mise en forme</legend>
|
||||
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
|
||||
<input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '[/i]');return(false)" />
|
||||
<input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '[/s]');return(false)" />
|
||||
<input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '[/url]');return(false)" />
|
||||
<br><br>
|
||||
<img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(':D');return(false)" />
|
||||
<img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(':lol:');return(false)" />
|
||||
<img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(':triste:');return(false)" />
|
||||
<img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(':frime:');return(false)" />
|
||||
<img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies('XD');return(false)" />
|
||||
<img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(':s');return(false)" />
|
||||
<img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(':O');return(false)" />
|
||||
<img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(':interrogation:');return(false)" />
|
||||
<img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(':exclamation:');return(false)" /></fieldset>
|
||||
|
||||
<fieldset><legend>Message</legend>
|
||||
<textarea cols="80" rows="8" id="message" name="message"></textarea>
|
||||
<label><input type="radio" name="mess" value="Annonce" />Annonce</label>
|
||||
<label><input type="radio" name="mess" value="Message" checked="checked" />Topic</label>
|
||||
</fieldset>
|
||||
<p>
|
||||
<input type="submit" name="submit" value="Envoyer" />
|
||||
<input type="reset" name = "Effacer" value = "Effacer" /></p>
|
||||
</form>
|
||||
<?php
|
||||
break;
|
||||
|
||||
//D'autres cas viendront s'ajouter ici par la suite
|
||||
?>
|
||||
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
|
||||
<?php
|
||||
default: //Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
|
||||
echo'<p>Cette action est impossible</p>';
|
||||
} //Fin du switch
|
||||
?>
|
||||
</div>
|
||||
</html>
|
||||
@@ -1,23 +1,23 @@
|
||||
<?php
|
||||
session_start();
|
||||
session_destroy();
|
||||
$titre="Déconnexion";
|
||||
include("./vue/header.html");
|
||||
if ($id==0) erreur(ERR_IS_NOT_CO);
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Déconnexion réussie!</h2><br>
|
||||
<h4>A Bientôt</h4><br>
|
||||
<p>Vous êtes à présent déconnecté <br/>
|
||||
<!--Cliquez <a href="'.htmlspecialchars($_SERVER['HTTP_REFERER']).'">ici</a> pour revenir à la page précédente.<br>-->
|
||||
Cliquez <a href="./espace_membre.php">ici</a> pour revenir à la page principale</p><br>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<?php
|
||||
include("./vue/footer.html");
|
||||
<?php
|
||||
session_start();
|
||||
session_destroy();
|
||||
$titre="Déconnexion";
|
||||
include("./vue/header.html");
|
||||
if ($id==0) erreur(ERR_IS_NOT_CO);
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Déconnexion réussie!</h2><br>
|
||||
<h4>A Bientôt</h4><br>
|
||||
<p>Vous êtes à présent déconnecté <br/>
|
||||
<!--Cliquez <a href="'.htmlspecialchars($_SERVER['HTTP_REFERER']).'">ici</a> pour revenir à la page précédente.<br>-->
|
||||
Cliquez <a href="./espace_membre.php">ici</a> pour revenir à la page principale</p><br>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<?php
|
||||
include("./vue/footer.html");
|
||||
?>
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/espace/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/espace/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 163 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./vue/home/index.html');
|
||||
include_once('./vue/footer.html');
|
||||
?>
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./vue/home/index.html');
|
||||
include_once('./vue/footer.html');
|
||||
?>
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/inscription/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/inscription/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/profil/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/profil/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||