Erreur mini reseau social
Fermé
irin1
Messages postés
35
Date d'inscription
samedi 22 novembre 2014
Statut
Membre
Dernière intervention
8 mars 2023
-
8 déc. 2014 à 13:15
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 26 févr. 2015 à 09:13
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 26 févr. 2015 à 09:13
A voir également:
- Erreur mini reseau social
- Erreur 0x80070643 - Accueil - Windows
- Meilleur mini pc - Accueil - Guide ordinateurs
- Opera mini pc - Télécharger - Navigateurs
- Nous n'avons pas pu nous connecter à ce réseau - Forum Windows 10
- Geekom mini it11 - Accueil - Guide ordinateurs
2 réponses
kangourouxxx
Messages postés
71
Date d'inscription
jeudi 31 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2015
2
13 févr. 2015 à 10:35
13 févr. 2015 à 10:35
plusieurs erreurs:
1) Impossible d'ouvrir une session si elle existe déjà dans ce cas :
2) Impossible de modifier le header si il est déjà en modification par une autre page. Dans ce cas, ne pas modifier le header dans plusieurs pages tout simplement.
3) tes includes sont vides, donc impossible de les inclure ;) $_GET['page'] n'est pas renseigné dans l'URL. Donc impossible de trouver 'pages/'.$_GET['page'].".php" ou 'functions/'.$page.'.func.php'.
Bon courage ;)
1) Impossible d'ouvrir une session si elle existe déjà dans ce cas :
if(!is_set($_SESSION)) session_start();
2) Impossible de modifier le header si il est déjà en modification par une autre page. Dans ce cas, ne pas modifier le header dans plusieurs pages tout simplement.
3) tes includes sont vides, donc impossible de les inclure ;) $_GET['page'] n'est pas renseigné dans l'URL. Donc impossible de trouver 'pages/'.$_GET['page'].".php" ou 'functions/'.$page.'.func.php'.
Bon courage ;)
mpmp93
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 339
26 févr. 2015 à 09:13
26 févr. 2015 à 09:13
Bonjour,
Dans votre source:
c'est un risque d'injection de code...
Voici comment sécuriser parfaitement:
A+
Dans votre source:
$page=htmlentities($_GET['page']);
c'est un risque d'injection de code...
Voici comment sécuriser parfaitement:
if (isset($_GET['page']])) { $page = $_GET['page']; $template = 'templates/'.$page.'.phtml'; if (file_exists($template)) { include $template; } else { include 'templates/accueil.phtml'; } }
A+
16 févr. 2015 à 01:57
16 févr. 2015 à 07:58
Par :
Cette condition permet simplement de vérifier que la session n'existe pas avant de la créer.
16 févr. 2015 à 08:06
Cela signifie que dans l'url de ta page tu lui passe un paramètre "page" comme ci-dessous :
Dans l'URL exemple au dessus, le paramètre "page" est égal à "test" et dans ce cas dans ton code il cherchera à inclure la page "test.php" qui se trouve dans le dossier pages de ton site :
Il va également inclure la page "test.func.php" qui est dans le dossier "functions" de ton site web :
16 févr. 2015 à 08:06
26 févr. 2015 à 04:45
INDEX.PHP
<?php
include('functions/connect.php');
$page=htmlentities($_GET['page']);
include('functions/login.func.php');
include('functions/membre.func.php');
include('functions/register.func.php');
$pages=scandir('pages');
if(!empty($page)&& in_array($_GET['page'].".php",$pages))
{
$content='pages/'.$_GET['page'].".php";
}else{
header("Location:index.php?page=login");
}
?>
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='css/style.css'>
</head>
<body>
<div id='content'>
<?php
include($content);
?>
</div>
</body>
</html>
STYLE.CSS
*
{
padding:0;
margin:0;
}
body
{
background-color:#000;
font-family:Times New Roman;
}
#content
{width:960px;
background-color:#FFF;
margin:50px auto;
text-align:center;
border-radius:10px;
-webkit-border-radius:10px;
-moz-border-radius:10px;
position:relative;
}
#content h1
{
text-decoration:underline;
padding-bottem:20px;
}
#content form label
{
display:block;
float:left;
width:200px;
position:absolute;
left:100px
}
#content form input,texarea
{
border:1px solid #000;
border-radius:10px;
-webkit-border-radius:5px;
-moz-border-radius:5px;
width:200px;
margin:5px;
}
#content form input[type=submit]
{
width:100px;
background-color:#000;
color:#FFF;
cursor:pointer;
}
#content .error
{
color:red;
border-radius:10px;
-webkit-border-radius;5px;
-moz-border-radius;5px;
margin:2px auto;
width:300px;
background-color:#CCC;
}
CONNECT.PHP
<?php
session_start();
//connexion à la base des données
mysql_connect('localhost','root','') or die(error);
mysql_select_db('rs') or die('Bdd introuvable');
mysql_query('SET NAMES ANSI');
?>
REGISTER.FUNC.PHP
<?php
//function qui va charger d'inscrire l'utilisateur
function inscrire_utilisateur($pseudo,$password,$email,$sexe,$situation,$apropos)
{
$password = sha1($password);
mysql_query("INSERT INTO utilisateurs(id,pseudo,password,email,sexe,situation,apropos)
VALUES('','$pseudo','$password','$email','$sexe','$situation','$apropos')
")or die(mysql_error());
}
//la fonction qui va verifier si l'emeil existe
function pseudo_existe($pseudo)
{
$query=mysql_query("SELECT COUNT(id)FROM utilisateurs WHERE pseudo='$pseudo'");
return mysql_result($query,0);
}
//la fonction qui va verifier si l'emeil existe
function email_existe($email)
{
$query=mysql_query("SELECT COUNT(id)FROM utilisateurs WHERE email='$email'");
return mysql_result($query,0);
}
?>
MEMBRE.FUNC.PHP
<?php
//utilisateur connecté
function infos_membre_connecte()
{
$infos=array();
$pseudo=$_SESSION['pseudo'];
$query=mysql_query("SELECT * FROM utilisateurs WHERE pseudo='$pseudo'");
while($row = mysql_fetch_assoc($query))
{
$infos[] = $row;
}
return $infos;
}
?>
LOGIN.FUNC.PHP
<?php
//combinaison password et pseudo
function verifier_combinaison_pseudo_password($pseudo,$password)
{
$pseudo=mysql_real_escape_string(htmlentities($_POST['pseudo']));
$password=mysql_real_escape_string(htmlentities($_POST['password']));
$password=sha1($password);
$query=mysql_query("SELECT pseudo,password FROM utilisateurs
WHERE pseudo='$pseudo' AND password='$password'
");
$rows = mysql_num_rows($query);
return $rows;
}
?>
REGISTER.PHP
<?php
if(isset($_POST['submit']))
{
$sexe = mysql_real_escape_string(trim(htmlentities($_POST['sexe'])));
$pseudo = mysql_real_escape_string(trim(htmlentities($_POST['pseudo'])));
$password = mysql_real_escape_string(trim(htmlentities($_POST['password'])));
$repeatpassword = mysql_real_escape_string(trim(htmlentities($_POST['repeatpassword'])));
$email = mysql_real_escape_string(trim(htmlentities($_POST['email'])));
$apropos = mysql_real_escape_string(trim(htmlentities($_POST['apropos'])));
$situation = mysql_real_escape_string(trim(htmlentities($_POST['situation'])));
if(empty($pseudo))
{
$errors[]="veuillez saisir un pseudo";
}
if(empty($password))
{
$errors[]="Veuillez saisir un password";
}
if($password !=$repeatpassword)
{
$errors[] ="Vos deux password doivent étre identiques";
}
if(!filter_var($email,FILTER_VALIDATE_EMAIL))
{
$errors[] ="Votre adresse email n'est pas correcte";
}
if(empty($apropos))
{
$errors[] ="Veuillez vous décrire en quelques lignes";
}
if(pseudo_existe($pseudo)==1)
{
$errors[]="Ce pseudo n'est pas disponible";
}
if(email_existe($email)==1)
{
$errors[]="Cette adresse email existe deja <br> avez vous oublié votre <a href='#'>mot de passe</a>?";
}
if(!empty($errors))
{
foreach($errors as $error)
{
echo "<div class='error'>".$error."</div>";
}
}else{
inscrire_utilisateur($pseudo,$password,$email,$sexe,$situation,$apropos);
header("Location:index.php?page=login");
}
}
?>
<form method='POST' action=''>
<label for='sexe'>Sexe</label>
<select name="sexe">
<?php echo isset($sexe)?'<option value='.$sexe.'>'.$sexe.'</option>':'';?>
<?php echo $sexe !='Homme'?'<option value="Homme">Homme</option>':'';?>
<?php echo $sexe != 'Femme'?'<option value="Femme">Femme</option>':'';?>
</select><br/><br/>
<label for='situation'>Situation</label>
<select name="situation">
<?php echo isset($situation)?'<option value='.$situation.'>'.$situation.'</option>':'';?>
<?php echo $situation != 'Célibataire'?'<option value="Célibataire">Célibataire</option>':'';?>
<?php echo $situation != 'En couple'?'<option value="En couple">En couple</option>':'';?>
<?php echo $situation != 'Divorcé(e)'?'<option value="Divorcé(e)">Divorcé(e)</option>':'';?>
<?php echo $situation != 'veuf(ve)'?'<option value="Veuf(ve)">Veuf(ve)</option>':'';?>
</select><br/><br/>
<label for="pseudo">Votre pseudo : </label>
<input type="text" name="pseudo"value='<?php echo isset($pseudo)? $pseudo:'';?>'><br/>
<label for="password">Votre password : </label>
<input type="password" name="password"><br/>
<label for="repeatpassword">Repetez Votre password : </label>
<input type="password" name="repeatpassword"><br/>
<label for="email">Veuillez saisir votre email : </label>
<input type="text" name="email"value='<?php echo isset($email)? $email:'';?>'><br/>
<label for="apropos">A propos de vous </label>
<textarea rows="6" cols="30" name="apropos"><?php echo isset($apropos)? $apropos:'';?></textarea><br/><br/>
<input type="submit" value="S'inscrire" name="submit">
</form>
<a href='index.php?page=login'>Page de connexion</a>
MEMBRE.PHP
<div class='header'>
<?php
$infos=infos_membre_connecte();
foreach($infos as $info)
{
echo"Bienvenue ".$info['pseudo'];
}
?>
<p><a href='index.php?page=logout'>Se déconnecter</a></p>
</div>
LOGIN.PHP
<?php
if(isset($_POST['submit']))
{
if(empty($_POST['pseudo']))
{
$errors[]="Veuillez saisir votre pseudo";
}
if(empty($_POST['password']))
{
$errors[]="Veuillez saisir votre password";
}
if(!empty($errors))
{
foreach($errors as $error)
{
echo"<div class='error'>".$error."</div>";
}
}else{
if(verifier_combinaison_pseudo_password($pseudo,$password)==0)
{
echo"<div class='error'>Pseudo ou password incorrect</div>";
}else{
$_SESSION['pseudo']=$_POST['pseudo'];
header("Location:index.php?page=membre");
}
}
}
?>
<form method="POST" action="">
<label for="pseudo">Votre pseudo :</label>
<input type="text" name="pseudo"><br/>
<label for="password">Votre password :</label>
<input type="password" name="password"><br/><br/>
<input type="submit"value="Se connecter"name="submit">
</form>
<a href='index.php?page=register'>Pas encore membre</a>
NB: Toute les funtions et connect.php dans un meme dossier "FUNCTIONS"; index à la racine, style.css dans le dossier "CSS" et les autres dans le dossier PAGE.
pardon aide moi