[RESOLU] Echo un texte dans colonne sql

Eléphanteau du PHP | 29 Messages

14 déc. 2015, 16:59

Bonjour à tous!
Je suis débutant dans le monde de php et voudrais, pour m'entrainer, créer un site en local.
Ce site sera très simple et n'aura aucune réelle utilité.
Cependant j'ai rencontré une erreur surprenante...
Sur la page "membre" figurera les informations relatives à l'utilisateur connecté.
J'arrive sans soucis à echo $username, qui est une colonne de ma table sql.
Mais je n'arrive pas à $echo la ville de l'utilisateur...
Cette colonne username est du type VARCHAR. J'ai essayé de la passer en text, avec toujours le même résultat...
J'arrive à echo l'id de l'utilsateur, son username mais ni sa ville, ni son password...
Quelques idées?
Merci d'avance! :D

Mammouth du PHP | 2703 Messages

14 déc. 2015, 17:10

avec le code, ce serait plus simple.
les données sont bien remplies dans la table ?

Eléphanteau du PHP | 29 Messages

14 déc. 2015, 17:15

avec le code, ce serait plus simple.
les données sont bien remplies dans la table ?
Bonjour,
Voici le code de la page membre:
<?php
error_reporting(E_ALL & ~E_NOTICE);
session_start();

if(isset($_SESSION['id'])){
$userID = $_SESSION['id'];
$username = $_SESSION['username'];
$ville = $_SESSION['ville'];
}else{
header('Location: index.php');
die();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Page</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php
include("header.php");
?>
<div class="content">
<p>Votre ville: </p>
<?php
echo $ville;
?>
</div>

<aside class="side">
<?php
if(isset($_SESSION['id'])){
include("sidebar_members.php");
}else{
include("sidebar.php");
}
?>
<form action="logout.php" style="margin:2%;">
<input type = "submit" value="Se d&eacute;connecter" class="bouton2"/>
</form>
</aside>
</body>
</html>

Et oui, la colonne est bien remplie.

Mammouth du PHP | 2703 Messages

14 déc. 2015, 17:18

il faut aussi le code qui remplit $_SESSION['ville']

Eléphanteau du PHP | 29 Messages

14 déc. 2015, 17:21

il faut aussi le code qui remplit $_SESSION['ville']
C'est à dire?
Le code de register?

Mammouth du PHP | 2703 Messages

14 déc. 2015, 17:22

le code où il y a :
$_SESSION['ville'] = ...;

Eléphanteau du PHP | 29 Messages

14 déc. 2015, 17:25

le code où il y a :
$_SESSION['ville'] = ...;
<?php
error_reporting(E_ALL & ~E_NOTICE);
session_start();
if($_POST['submit']){
include_once("connexion.php");
$username = strip_tags($_POST['username']);
$password = strip_tags($_POST['password']);
$sql = "SELECT id, username, password FROM members WHERE username ='$username' AND activated = '1' LIMIT 1";
$query = mysqli_query($dbCon, $sql);

if($query){
$row = mysqli_fetch_row($query);
$userId = $row[0];
$dbUsername = $row[1];
$dbPassword = $row[2];

}

if($username == $dbUsername && $password == $dbPassword){
$_SESSION['username'] = $username;
$_SESSION['id'] = $userId;
$_SESSION['ville'] = $ville;
header('Location: user_page.php');

}else{
echo "<center style='color:white;font-size:30px;'>Incorrect username or password</center>";
}
}
?>

C'est le code pour se login...

Mammouth du PHP | 2703 Messages

14 déc. 2015, 17:31

$ville n'est pas définie donc $_SESSION['ville'] n'aura pas la valeur escomptée.

Eléphanteau du PHP | 29 Messages

14 déc. 2015, 17:39

Donc faudrait que je rajoute dans la query
$ville = $row[3];
?

Mammouth du PHP | 1967 Messages

14 déc. 2015, 17:51

ET aussi modifier ceci
$sql = "SELECT id, username, password FROM members WHERE username ='$username' AND activated = '1' LIMIT 1";
en ceci
$sql = "SELECT id, username, password, ville FROM members WHERE username ='$username' AND activated = '1' LIMIT 1";

Pour autant que ton champs ville s'appel comme cela et qu'il soit sur ta table members
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 29 Messages

14 déc. 2015, 17:57

ET aussi modifier ceci
$sql = "SELECT id, username, password FROM members WHERE username ='$username' AND activated = '1' LIMIT 1";
en ceci
$sql = "SELECT id, username, password, ville FROM members WHERE username ='$username' AND activated = '1' LIMIT 1";

Pour autant que ton champs ville s'appel comme cela et qu'il soit sur ta table members
Merci beaucoup! ça marche!
Merci beaucoup pour votre réponse rapide et votre efficacité! :D