Tag.
hab grad ein User-Profile geschrieben und mir sind dann 2 Dinge aufgefallen die ich euch gerne Fragen möchte.
1. Wie überträgt Ihr die User-Id?
Also Startseite = index.php. In der Index.php sind alle POST's von Leuten zu sehen.
Jetzt soll jeder Post einen Link haben , dass wenn man drauf klickt ein User-Profile kommt wie z.b user-profile.php?user-id=10.
Da ich sowieso alles selektiert habe um die Posts anzeigen zu lassen habe ich die User-Id so ermittelt bzw übertragen.
$_SESSION['user-id'] = $row['u_id'];
Da ich bei meinem user-profile.php nicht wieder auf $row['u_id'] zugreifen kann habe ich es einfach zu SESSION['user-id'] übertragen. Ist es falsch oder iwie unsicher? Oder wie hättet ihr das gemacht?
2.
Ich habe jetzt bei meinem user-profile eine kleine simple Abfrage gemacht:
Wie kann ich jetzt $_GET sicher übergeben?
index.php (Habe jetzt $row['post'] usw weggelassen da es keine Rolle spielt bei der Frage)
$sql = "SELECT u_id, username, date FROM user";
$stmt = $pdo->prepare($sql);
if(!$stmt->execute()) {
print_r($stmt->errorInfo());
while($row = $stmt->fetch()) {
<?php $_SESSION['ident'] = $row['u_id']; ?>
<a href="profile.php?user-id=<?php echo $_SESSION['ident'];?>">Hallo</a>
<?php echo '' . $row['username'] . ''; ?>
<?php echo '<p>' . $row['date'] . '</p>'; ?>
<?php } ?>
Alles anzeigen
user-profile.php
if(isset($_GET["user-id"])) {
$uid = $_GET["user-id"];
$sql =
"SELECT * FROM user WHERE id = :u_id LIMIT 1";
$stmt = $pdo->prepare($sql);
if(!$stmt) {
print_r($stmt->errorInfo());
}
$stmt->BindParam(':u_id', $uid);
if(!$stmt->execute()) {
print_r($stmt->errorInfo());
}
$row = $stmt->fetch();
if($row > 0) {
echo '<img src="data:image/' . $row['im_type'] . ';base64,' . base64_encode($row['image']) . '"/>';
echo $row['username'];
}
}
?>
Alles anzeigen