Probleme lors de l'insertion des donnée sur mon site
Résolu
arcadenaker
Messages postés
61
Date d'inscription
Statut
Membre
Dernière intervention
-
arcadenaker Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
arcadenaker Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
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:
fonctions:
html:
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:
- Probleme lors de l'insertion des donnée sur mon site
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Site pour vendre des objets d'occasion - Guide
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site pour partager des photos - Guide
2 réponses
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 :
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 :
Mais le problème que tu décris est :
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")
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")
Puis reviens nous montrer ton code modifié....
Là on regardera plus précisément. ..