kostenloser Webspace werbefrei: lima-city


Alle User in einer Datei

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mylonky

    mylonky hat kostenlosen Webspace.

    Und ich schon wieder ^^"

    Ich versuche gerade alle User in eine Datei zu Stopfen, im Meinen Kopf klang es so wie ich es mache Richtig, da aber nichts angezeigt wird ist es das wohl doch nicht ^^"

    Also ich möchte das die User über:
    domain.tld/User/Index.php?uid=1
    domain.tld/User/Index.php?uid=2
    domain.tld/User/Index.php?uid=USW

    Abgerufen werden und habe das Script nun so aufgebaut:

    <?php
    									$pdo = new PDO('mysql:host=mylonky.lima-db.de;dbname=db_XXXXX_6', 'USER', 'PASS');
    									
    									$uid = checkinput(trim($_GET['uid'])); // UserID aus URL
    									$sql = 'SELECT * FROM users WHERE id = '.$uid.''; //SQL-Query: Name des Users auslesen
    									var_dump($_GET['uid']);
    									foreach ($pdo->query($sql) as $row) {
    									   echo "Benutzername:" .$row['username']."<br />";
    									   echo "E-Mail: ".$row['email']."<br />";
    									   echo "Name: " .$row['vorname']." ".$row['nachname']."<br />";
    									   echo "Registriert: " .$row['created_at']."<br />";
    									   echo "Premium status: " .$row['premium']."<br />";
    									   echo "Admin status: " .$row['admin']."<br />";
    									   echo "Gebannt?: ".$row['banned']."<br /><br />";
    									}
    									?>


    Fatal error: Call to undefined function checkinput() in /home/webpages/lima-city/moneyclicker/default-website/test/User/1.php on line 129

    Zeile 129 lautet
    $uid = checkinput(trim($_GET['uid'])); // UserID aus URL
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. pizzeriafalcone

    pizzeriafalcone hat kostenlosen Webspace.

    Hi!

    Laut der Fehlermeldung existiert die Funktion "checkinput()" gar nicht. Kannst Du mal den kompletten Quellcode posten?
  4. Autor dieses Themas

    mylonky

    mylonky hat kostenlosen Webspace.

    pizzeriafalcone schrieb:
    Hi!

    Laut der Fehlermeldung existiert die Funktion "checkinput()" gar nicht. Kannst Du mal den kompletten Quellcode posten?


    ahh, habe Vergessen eine Datei zu Includen, dadurch hat sich der Fehler jetzt geändert

    User.php
    http://pastebin.com/g5sShCSn

    functions.php

    http://pastebin.com/FTBLQMY8

    Der Aktuelle problem ist, anstadt des Inhaltes (Nutzername USW) zeigt er mir bei:

    User.php?uid=1
    string(1) "1"


    User.php?uid=2
    string(1) "2"


    an, ist also schonmal Fast richtig ^^"
  5. pizzeriafalcone

    pizzeriafalcone hat kostenlosen Webspace.

    Kommt die Ausgabe exakt so wie von dir gepostet?

    string(1) "1"


    Ich würde fast auf Zeile 96 tippen. Ersetz doch zum Testen einfach mal die Variable durch eine gültige User-ID und pack sie mit in die Anführungszeichen.

    Beitrag zuletzt geändert: 27.5.2016 18:09:15 von pizzeriafalcone
  6. Autor dieses Themas

    mylonky

    mylonky hat kostenlosen Webspace.

    pizzeriafalcone schrieb:
    Kommt die Ausgabe exakt so wie von dir gepostet?

    string(1) "1"


    Ich würde fast auf Zeile 96 tippen. Ersetz doch zum Testen einfach mal die Variable durch eine gültige User-ID und pack sie mit in die Anführungszeichen.


    Ja kommt Sie

    Habe das Script um Zeile 96 Auskommentiert, Problem bleibt.

    UserID 1 und auch 2 sind Gültig und vorhandene Benutzer
  7. Wäre schön wenn du das Error reporting auch mal anschalten würdest.

    In der functions.php wird dir dann nämlich für die Funktion checkinput() ein Fehler ausgeworfen.
    Denn erstens hast du zu dem Zeitpunkt noch gar keine Datenbankverbindung und zweitens verbindest du dich mittels PDO. Heisst mysqli_real_escape_string() kann nicht funktionieren.


    Da dein $_GET ja auf jedenfall eine Zahl sein muss, kannst du doch mittels PHP prüfen, ob es eine Zahl ist. Dafür gibt es z.B. die Funktion is_numeric()
    Das was bei mysqli_real_escape_string passiert, macht PDO alleine, wenn du die Prepared Statements verwendest.

    Habe noch was vergessen:
    Dein Fehler mit dem Kommentar am Anfang und mit session_start() ist ja auch noch immer vorhanden.

    Beitrag zuletzt geändert: 28.5.2016 8:28:12 von controlhu
  8. Autor dieses Themas

    mylonky

    mylonky hat kostenlosen Webspace.

    controlhu schrieb:
    Wäre schön wenn du das Error reporting auch mal anschalten würdest.

    In der functions.php wird dir dann nämlich für die Funktion checkinput() ein Fehler ausgeworfen.
    Denn erstens hast du zu dem Zeitpunkt noch gar keine Datenbankverbindung und zweitens verbindest du dich mittels PDO. Heisst mysqli_real_escape_string() kann nicht funktionieren.

    ehh, ja natürlich ^^" mein Fehler (Ich vergesse immer die Kaputten Glaskugeln)

    Aber bei z.b. Folgendem Code funktioniert PDO ja auch

    <?php
    									$pdo = new PDO('mysql:host=mylonky.lima-db.de;dbname=db_XXXXX_6', 'USER', 'PASS');
     
    									$sql = "SELECT * FROM users WHERE id = 10";
    									foreach ($pdo->query($sql) as $row) {
    									   echo "Benutzername:" .$row['username']."<br />";
    									   echo "E-Mail: ".$row['email']."<br />";
    									   echo "Name: " .$row['vorname']." ".$row['nachname']."<br />";
    									   echo "Registriert: " .$row['created_at']."<br />";
    									   echo "Premium status: " .$row['premium']."<br />";
    									   echo "Admin status: " .$row['admin']."<br />";
    									   echo "Gebannt?: ".$row['banned']."<br /><br />";
    									}
    									?>



    controlhu schrieb:
    Da dein $_GET ja auf jedenfall eine Zahl sein muss, kannst du doch mittels PHP prüfen, ob es eine Zahl ist. Dafür gibt es z.B. die Funktion is_numeric()

    Wo setze ich das am Besten zum Testen ein?

    controlhu schrieb:
    Das was bei mysqli_real_escape_string passiert, macht PDO alleine, wenn du die Prepared Statements verwendest.


    achso ok dann kann ich Theoretisch doch mysqli_real_escape_string wieder Entfernen oder?

    controlhu schrieb:
    Habe noch was vergessen:
    Dein Fehler mit dem Kommentar am Anfang und mit session_start() ist ja auch noch immer vorhanden.


    Hatte ich auf der Testseite nicht Korigiert gehabt, nur auf meinen von den Usern aufrufbaren seiten ^^"


    Habe jetzt das was ich Verstanden habe auch umgesetzt ohne Fehlerseite steht dort einfach NULL mit eingeschaltenen Fehlern nur string(1) "1" oder string(1) "2" oder string(1) "3" usw

    http://pastebin.com/CJzd5QpQ

    zum Selber gucken
    http://moneyclickererror.webspace.rocks/test/User/1.php?uid=2

    zum Einloggen
    http://moneyclickererror.webspace.rocks/login.php

    User: Testi
    Pass: Test123


    Beitrag zuletzt geändert: 28.5.2016 15:46:25 von mylonky
  9. Natürlich funktioniert PDO dort. Nur wenn du versuchst, ohne Datenbankverbindung einen Datenbankbefehl auszuführen, dann kann es nicht gehen.

    Dein Array ist ja $_GET['userid'], sagt ja nur aus, das $_GET gefüllt ist.

    Tausche mal
    $uid = checkinput(trim($_GET['uid']));


    gegen

    if(isset($_GET['uid']) && is_numeric($_GET['uid'])) $uid=$_GET['uid'];
    else echo "Entweder ist $GET keine Zahl oder nicht in der URL vorhanden\n";
  10. Autor dieses Themas

    mylonky

    mylonky hat kostenlosen Webspace.

    controlhu schrieb:
    Natürlich funktioniert PDO dort. Nur wenn du versuchst, ohne Datenbankverbindung einen Datenbankbefehl auszuführen, dann kann es nicht gehen.

    Dein Array ist ja $_GET['userid'], sagt ja nur aus, das $_GET gefüllt ist.

    Tausche mal
    $uid = checkinput(trim($_GET['uid']));


    gegen

    if(isset($_GET['uid']) && is_numeric($_GET['uid'])) $uid=$_GET['uid'];
    else echo "Entweder ist $GET keine Zahl oder nicht in der URL vorhanden\n";


    habe ich gemacht, jetzt Geht es aber ein Problem ist noch da ^^"

    Die Angaben sind alle vorhanden aber das string(1) "1" ist noch enthalten vorne dran :/
    string(1) "1" Benutzername:Wuppertaler93
    E-Mail: Wuppertaler93@mylonky.eu
    Name: Brandon Schmitz
    Registriert: 2016-04-23 12:27:18
    Premium status: Nein
    Admin status: Owner
    Gebannt?: Nein


    wie bekomme ich das jetzt weg? (Ja Fehlermeldungsanzeige ist aus)
  11. Hallo,

    Zeile 134
    var_dump($_GET['uid']);
    löschen oder auskommentieren...
  12. Autor dieses Themas

    mylonky

    mylonky hat kostenlosen Webspace.

    staymyfriend schrieb:
    Hallo,

    Zeile 134
    var_dump($_GET['uid']);
    löschen oder auskommentieren...


    Vielen Dank, jetzt passt alles wunderbar ^^
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!