christian181005
Goto Top

Php mysql abfrage

Kann mir jemand Helfen?
Ich mächte diese Daten von meiner Datenbank ausgeben lassen aber es wird nichts angezeigt.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>
<head>
 
 <?php
$pdo = new PDO('mysql:host=localhost;dbname=users', '******', '*****');  

session_start();
if(!isset($_SESSION['userid'])) {  
    die('Bitte zuerst <a href="login.php">einloggen</a>');  
}
//Abfrage der Nutzer ID vom Login
$userid = $_SESSION['userid'];  
$username = $_POST['username'];  

echo($username);

?>
 
  <meta content="text/html; charset=ISO-8859-1"  
 http-equiv="content-type">  
  <title>Geschuetzter Bereich</title>

</head>
<body>
<br>
<br>
<br>
Sie sind eingeloggt!
</body>
</html>

Content-ID: 462687

Url: https://administrator.de/contentid/462687

Ausgedruckt am: 16.11.2024 um 16:11 Uhr

GNULinux
GNULinux 15.06.2019 um 13:41:30 Uhr
Goto Top
session_start();
sollte vor jeglicher Ausgabe stehen. Sobald du nämlich irgendwas ausgibst, wird das in den Body geschrieben. Dafür ist es notwendig, zunächst die Header zum Client zu senden. Das kollidiert aber mit der Session, weil die im Regelfall Sitzungscookies im Cookie-Header setzt. Beachte, dass dies nicht nur für dich sichtbare/gewollte Ausgaben betrifft. Ein Leerzeichen oder ggf. sogar BOM kann da schon ausreichen.

Grundsätzlich sollte man bei einer weißen Seite immer die Logs aktivieren. Dann siehst du eine Fehlermeldung. Im obigen Falle solltest du irgendwas mit "Cannot send headers/headers already send" erhalten. Auf einem Testsystem kannst du die wie auf SO beschrieben einfach anzeigen lassen. Produktiv ist davon abzuraten, in diesem Falle lieber mit docker logs/kubectl logs auf die Logs des Docker-Containers oder Kubernetes Pods schauen. Falls du noch klassisch auf VMs oder Webspace deployst, kann PHP auch in eine Datei loggen.

Bei einem klassischen Webspace besteht meist kein direkter Zugriff auf den PHP-Server, da muss man dann im Verwaltungspanel schauen. Teils liegen die Logs dort auch eine Ebene über den www/pub_html Ordner. Das variiert stark je nach Anbieter und eingesetzter Software. Falls nichts passendes gefunden wird im Zweifel bei denen im Hilfebereich nachschauen oder den Support kontaktieren.
Christian181005
Christian181005 15.06.2019 um 14:13:58 Uhr
Goto Top
Kannst du mir nen code schicken wie ich den username ausgebe
kim88267373
kim88267373 15.06.2019 um 16:27:48 Uhr
Goto Top
Den Tipp mit dem "session_start()" am Anfang hast Du schon bekommen.

Weiterhin SEHR wichtig:
Niemals (und wirklich niemals !) die POST Variable als richtig gegeben ansehen:

$username = $_POST['username'];  

Das ist (gerade bei direkten Datenbankvebindungen) ein offenes Tor für Angriffe (z.Bsp: SQL Injections).
Diese Angaben immer filtern und validieren (HTML entfernen, Sonderzeichen entfernen, usw. usw.

Bei diesem Probrlm würde ich vorne mit dem Debuggen anfangen:
Werden überhaupt Daten per POST Request übergeben ?

Für mal folgenden Code am Anfang ein:
var_dump($_POST);die();

Wenn Dir jetzt keine Daten angezeigt werden (Username, ...), dann stimmt schon was mit dem Aufruf bzw. der POST Übergabe der Daten nicht. Was wird denn nach diesem Schnipsel angezeigt ?
139920
139920 15.06.2019 aktualisiert um 17:39:16 Uhr
Goto Top
Zitat von @Christian181005:

Kannst du mir nen code schicken wie ich den username ausgebe
Man könnte ja auch einfach zuerst die zwei Dinger da über der Nase benutzen anstatt sowas wirklich banales in einem Admin-Forum zu erfragen...
https://www.php-einfach.de/mysql-tutorial/crashkurs-pdo/