Probleme lors de l'insertion des donnée sur mon site

Résolu/Fermé
arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019 - Modifié le 2 août 2017 à 00:03
arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019 - 2 août 2017 à 11:12
Je voudrais reprendre des donnée a la base de données pour voir les profiles des autres avec l'id de la personne!
Mais cela ne marche pas je sais pas pourquoi ?
image :
https://img-19.ccm2.net/qwje9onfIj8YFFpLhspJO4DgkHE=/246c417291144456ba305e68ccefa407/ccm-ugc/profile.png
que l'on puisse grace a l'url voir le profile d'un autre utilisateur!
j'ai un php, un autre fichier(fonctions), html;
php:

<?php
session_start();
include('filters/auth_filter.php');
require('includes/function.php');
require('config/database.php');
if(!empty($_GET['id'])){
echo "hello";
$user = find_user_by_id($_GET['id']);
if(!user){
redirect('index.php');
}
}else{
redirect('profile.php?id='.get_session('id'));
}
if(isset($_POST['update'])){
if(not_empty(['name', 'city', 'country', 'sex', 'bio'])){
extract($_POST);
$use = $db->prepare("UPDATE users SET name = :name, city = :city, country = :country, sex = :sex, twitter = :twitter, github = :github, available_for_hire = :available_for_hire, bio = :bio WHERE id = :id ");
$use->execute(['name' => $name, 'city' => $city, 'country' => $country, 'sex' => $sex, 'twitter' => $twitter, 'github' => $github, 'available_for_hire' => !empty($available_for_hire) ? '1' : '0', 'bio' => $bio, 'id' => get_session('id')]);
set_flash('Profile mis à jour, reconnectez-vous pour voir les modifications', 'info');
redirect('profile.php');
}else{set_flash('Erreur, veuillez remplir tout les champs');}
}
?>
<?php
require("views/profile.view.php");
?>

fonctions:

<?php
if(!function_exists('get_session')){
function get_session($key){
if($key){
return !empty($_SESSION[$key])
? e($_SESSION[$key])
: null;

}
}
}
if(!function_exists('find_user_by_id')){
function find_user_by_id($id){
global $db;
$q = $db->prepare('SELECT name, pseudo, city, available_for_hire, country, email, github, twitter, sex, bio FROM users WHERE id = ?');
$q->execute([$id]);
$data = $q->fetch(PDO::FETCH_OBJ);
$q->closeCursor();
return $data;
}
}
if(!function_exists('set_active')){
function set_active($file, $class = 'active'){
$page = array_pop(explode('/', $_SERVEUR['SCRIPT_NAME']));
if($page == $file.'.php'){
return $class;

}else{
return "";
}
}
}

//verifie si l'utilisateur est connecté
if(!function_exists('connecte')){
function connecte(){
return isset($_SESSION['email']);
}
}

if(!function_exists('e')){
function e($string){
if($string){
return htmlspecialchars($string);

}
}
}
if(!function_exists('get_avatar_url')){
function get_avatar_url($email){
return "http://gravatar.com/avatar/".md5(strtolower(trim(e($_SESSION['email']))));
}
}


if(!function_exists('not_empty')){
function not_empty($fields = []){
if(count($fields != 0)){
foreach ($fields as $field){
if(empty($_POST[$field]) || trim($_POST[$field]) == ""){
return false;
}
}
return true;
}
}
}
if(!function_exists('is_already_in_use')){
function is_already_in_use($field, $value, $table){
global $db;
$q = $db->prepare("SELECT id FROM $table WHERE $field = ?");
$q->execute([$value]);
$count = $q->rowCount();
$q->closeCursor();
return $count;
}
}
if(!function_exists('set_flash')){
function set_flash($message, $type = 'warning'){
$_SESSION['notification']['message'] = $message;
$_SESSION['notification']['type'] = $type;
}
}
if(!function_exists('redirect')){
function redirect($page){
header('Location: ' . $page);
exit();
}
}
?>

html:

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<style type="text/css">
input.parsley-success,
select.parsley-success,
textarea.parsley-success {
color: #468847;
background-color: #DFF0D8;
border: 1px solid #D6E9C6;
}

input.parsley-error,
select.parsley-error,
textarea.parsley-error {
color: #B94A48;
background-color: #F2DEDE;
border: 1px solid #EED3D7;
}

.parsley-errors-list {
margin: 2px 0 3px;
padding: 0;
list-style-type: none;
font-size: 0.9em;
line-height: 0.9em;
opacity: 0;
color: darkred;

transition: all .3s ease-in;
-o-transition: all .3s ease-in;
-moz-transition: all .3s ease-in;
-webkit-transition: all .3s ease-in;
}

.parsley-errors-list.filled {
opacity: 1;
}
</style>

<title>Profile de <?php echo($_SESSION['pseudo']); ?></title>

<link href="assets/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="assets/css/main.css">

<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>

</head>
<body>

<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.php" rel="nofollow noopener noreferrer" target="_blank">ProGRamme</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="index.php" rel="nofollow noopener noreferrer" target="_blank">Acceuil</a></li>
<?php if(isset($_SESSION['email'])): ?>
<li class="active"><a href="profile.php" rel="nofollow noopener noreferrer" target="_blank">Mon profile</a></li>
<li><a href="share_code.php" rel="nofollow noopener noreferrer" target="_blank">Partager</a></li>
<li><a href="logout.php" rel="nofollow noopener noreferrer" target="_blank">Déconnexion</a></li>
<?php else: ?>
<li><a href="connexion.php" rel="nofollow noopener noreferrer" target="_blank">Connexion</a></li>
<li><a href="inscription.php" rel="nofollow noopener noreferrer" target="_blank">Inscription</a></li>
<?php endif; ?>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="main-content">
<div class="container">
<?php if(isset($_SESSION['notification']['message'])): ?>
<div class="alert alert-<?= $_SESSION['notification']['type'] ?>">
<button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</button>
<h4><?= $_SESSION['notification']['message'] ?></h4>
</div>
<?php $_SESSION['notification'] = []; ?>
<?php endif; ?>
<br/>
<div class="row">
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Profil de <?= e($_SESSION['pseudo']); ?></h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-5">
<img class="img-circle" src="<?= get_avatar_url($user->email); ?>" alt="Image de profil de <?= e($user->pseudo) ?>">
<br/>
</div>
</div>
<div class="row">
<div class="col-sn-6">
<strong><?= e($_SESSION['pseudo']) ?></strong><br/>
<a href="mailto:<?= e($_SESSION['email']) ?>"><?= e($_SESSION['email']) ?></a>
</div>
<div class="col-md-6">
<?=
($_SESSION['twitter']) ? 'Twitter : <a href="//twitter.com/'.e($_SESSION['twitter']).'" rel="nofollow noopener noreferrer" target="_blank">@'.e($_SESSION['twitter']).'</a>' : '';
?>
</div>
</div>
<div class="col-md-6">
<?=
($_SESSION['github']) ? 'Github : <a href="//gihub.com/'.e($_SESSION['github']).'" rel="nofollow noopener noreferrer" target="_blank">'.e($_SESSION['github']).'</a><br/>' : '';
?>
</div>
<div class="col-sn-6">
<?=
($_SESSION['available_for_hire']) ? '<a href="https://www.indeed.fr/" rel="nofollow noopener noreferrer" target="_blank">Recherche job international</a>' : '';
?>
</div>
<div class="col-md-6">
<?=
($_SESSION['country']) && ($_SESSION['city']) ? 'Pays - Ville : '.e($_SESSION['country']). ' - ' .e($_SESSION['city']) : '';
?><br/>
<a href="https://www.google.com/maps?q=<?= e($_SESSION['city']) .''. e($_SESSION['country']) ?>" target="_blank">Voir sur google map</a>
</div>
<div class="col-sn-6">
<?=
($_SESSION['available_for_hire']) ? '#==> Disponible pour emploi' : '#==> Non Disponible pour emploi';
?>
</div>
</div>
<div class="row">
<div class="col-md-12 well">
<h5><strong>Biographie de <?= e($_SESSION['pseudo']) ?>:</strong></h5>
<?= ($_SESSION['bio']) ? nl2br(e($_SESSION['bio'])) : "Aucune biographie, J'écris ma biographie? Ma catégorie d'emploi, ma description..."; ?>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Je complète mon profil</h3>
</div>

<div class="panel-body">
<div class="row">
<form data-parsley-validate method="POST" autocomplete="off">
<div class="form-group">
<label for="name">Nom<span class="text-danger">*</span></label>
<input type="text" name="name" placeholder="Jean" id="name" value="<?= e($_SESSION['name']) ?>" class="form-control" required="required">
</div>
</div>

<div class="col-md-6">
<div class="form-group">
<label for="city">Ville<span class="text-danger">*</span></label>
<input type="text" value="<?= e($_SESSION['city']) ?>" name="city" id="city" class="form-control" required="required">
</div>
</div>


<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="country">Pays<span class="text-danger">*</span></label>
<input type="text" name="country" id="country" value="<?= e($_SESSION['country']) ?>" class="form-control" required="required">
</div>
</div>

<div class="col-md-6">
<div class="form-group">
<label for="sex">Sexe<span class="text-danger">*</span></label>
<select required="required" name="sex" id="sex" class="form-control">
<option value="H">
Homme
</option>
<option value="F">
Femme
</option>
</select>
</div>
</div>
</div>

<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="twitter">Twitter<span class="text-danger">*</span></label>
<input type="text" value="<?= e($_SESSION['twitter']) ?>" name="twitter" id="twitter" class="form-control" required="required">
</div>
</div>

<div class="col-md-6">
<div class="form-group">
<label for="github">Github<span class="text-danger">*</span></label>
<input value="<?= e($_SESSION['github']) ?>" type="text" name="github" id="github" class="form-control" required="required">
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label for="available_for_hire">
<input type="checkbox" name="available_for_hire" <?= e($_SESSION['available_for_hire']) ? "checked" : ""; ?>>
Disponible pour emploi?
</label>
</div>
</div>

<div class="col-md-12">
<div class="form-group">
<label for="bio">Biographie<span class="text-danger">*</span></label>
<textarea name="bio" id="bio" cols="30" rows="10" class="form-control" required="required" placeholder="J'écris ma biographie, ma catégorie d'emploi..."><?= e($_SESSION['bio']) ?></textarea>
</div>
</div>
</div>
<input type="submit" value="Valider" class="btn btn-info btn-lg active" name="update" />
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<form data-parsley-validate method="POST">
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="assets/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
<script src="libraries/parsley/parsley.min.js"></script>
<script src="libraries/parsley/i18n/fr.js"></script>
<script src="libraries/parsley/i18n/fr.extra.js"></script>
</body>
</html>
merci de votre réponce

A voir également:

2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
2 août 2017 à 08:49
Bonjour,
if(!user){

Il ne manquerait pas un $ ici, par hasard ?

Xavier
1
arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019 1
2 août 2017 à 08:57
Ah oui tu viens de m'intriguer, je vais essayer et on verra...
0
arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019 1 > arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019
2 août 2017 à 09:00
C'est vrai mais cela ne marche quand même pas :(
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019
2 août 2017 à 09:02
Commence par appliquer ce que je t'ai donné. ...
Puis reviens nous montrer ton code modifié....
Là on regardera plus précisément. ..
0
arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019 1 > jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
2 août 2017 à 09:33
Les modifications sont en bas...
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
2 août 2017 à 00:40
Bonjour,

Déjà... lorsque tu postes du code sur le forum..il serait bien d'y préciser le langage afin d'avoir la coloration syntaxique.
Regarde ceci : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Ca rendrait ton code plus lisible...
Par exemple :
 <?php echo "sans couleur" ; ?>

 <?php echo "AVEC couleur" ; ?>


Ensuite...
Il serait bien de commenter ton code... là on est obligé de tout lire pour savoir ce qu'il est "sensé" faire...


Puis... tu sembles utiliser PDO.
Dans ce cas... active la gestion des erreurs pdo ET place tes requêtes dans des blocs TRY/CATCH (voir ceci : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs )

Et enfin (le plus important...)

Le titre de ta question est :
Probleme lors de l'insertion des donnée sur mon site

Mais le problème que tu décris est :

Je voudrais reprendre des donnée a la base de données pour voir les profiles des autres avec l'id de la personne!


Donc... ma question est : Quel est le souci exactement ???
Insérer des données comme ton titre semble le laisser présager..... ou les"reprendre" (je comprend "récupérer", "lister".... via un "SELECT")
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
2 août 2017 à 00:44
Au fait.;.
Ta question concernant le PHP .... je déplace la question dans le bon forum.
Et également... pense qu'ici.. on commence ses questions par un "bonjour".
certains modos auraient supprimés ta question sans même la lire à cause de cet oubli....
0
arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019 1 > jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
2 août 2017 à 08:08
À oui pardon, j'étais assez pressé.
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019
2 août 2017 à 08:28
Pense a repindre à mon précédent message également. ..
0
arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019 1 > jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
Modifié le 2 août 2017 à 08:44
Moi de base je voudrais que les gens puisse regarder le profil des gens grâce à l'id qu'ils mettent dans l'URL
0
arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019 1 > arcadenaker Messages postés 61 Date d'inscription dimanche 30 juillet 2017 Statut Membre Dernière intervention 22 avril 2019
2 août 2017 à 08:47
Mais bien sûr quand je change l'ID qui est dans l'url il ne fait rien donc ma question est l'a pourquoi il fait rien et n'affiche pas le profile de l'autre personne ayant cet id ?
0