Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Variable

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit Variable

    Hallo habe ein Problem in einem Script.
    Also der User loggt sich ein und anschliessend wird mittels der user id daten des users aus der Datenbank ausgelesen. Allerdings wird die User Id nicht übergeben.

    Hier die login php
    PHP-Code:
    <?
    include ("config.php");
    session_start ();
         $username = $_POST["username"];
         $pw = $_POST["pw"];
    $anz = mysql_query("SELECT * FROM user1 WHERE username = '$username' AND pw = '$pw' AND frei = 'ja'") or die(mysql_error());

    if (mysql_num_rows ($anz) > 0)
        {

        //Benutzerdaten in ein Array auslesen
        $data = mysql_fetch_array ($anz);

        // Sessionvariablen erstellen und registrieren
        $_SESSION["user_id"] = $data["id"];
        $_SESSION["username"] = $data["username"];
        $_SESSION["pwdb"] = $data["pw"];


        $abfrage="SELECT * FROM net_config WHERE id = '1' ";
        $ergebnis = mysql_query($abfrage) or die (mysql_error());
        while($row = mysql_fetch_object($ergebnis))
        {
        $loginver = $row->loginver;
        }



        if ($loginver == '1')
        {
         header ("Location: loginver.php");
        }else{
        header ("Location: members.php");
        }




        }
        else
        {
        header ("Location: index.php?grund=loginfehler");
        }
    ?>
    Und dann eine von mehreren Dateien in der ich aufgrund fehlender User Id nichts auslesen kann.
    PHP-Code:
    <?php
    include("header.php");
    include (
    "config.php");
    include (
    "checkuser.php");
    $lv $_GET["lv"];

    if (!isset (
    $_SESSION["user_id"]))
      {

      }else{
    $abfrage="SELECT * FROM user1 WHERE id = $user_id";
    $ergebnis mysql_query($abfrage)
        OR die(
    "Error: $abfrage <br>".mysql_error());
    while(
    $row mysql_fetch_object($ergebnis))
      {
    $username=$row->username;
    $punkte $row->punkte;
    $bonuserhalt $row->bonuserhalt;
    $werber $row->ref;
    }
    echo 
    "<center><br><br>Du hast dich erfolgreich eingeloggt $username";

    if (
    $lv == '1')
    {
    echo 
    "<br><br>F&uuml;r diesen Login wurden dir $loginpun $wahru gutgeschrieben.<br>Du hast jetzt $punkte $wahru";
    }

    if (
    $lv == '2')
    {
    echo 
    "<br><br>Reloadsperre aktiv. Login wurde <b>nicht</b> verg&uuml;tet.";
    }


    if (
    $bonuserhalt != '99999')
    {

    if (
    $punkte >= '$anmelde2')
    {
    $query "UPDATE user1 SET punkte = (punkte+$anmeldung) , werberverd = (werberverd+$anmeldung) , bonuserhalt = '99999' WHERE id = '$user_id' ";
    $ok=mysql_query($query) or die (mysql_error());
    echo 
    "<br><br><b>Du hast $anmelde2 eigene $wahru gesammelt, Dein Anmeldebonus in h&ouml;he von $anmeldung $wahru wurde soeben gutgeschrieben.</b>";

    if (
    $werber != '')
    {
    $query "UPDATE user1 SET punkte = (punkte+$refbonus) , refbonus = (refbonus+1) , verd = (verd+$refbonus) WHERE username = '$werber' ";
    $ok=mysql_query($query) or die (mysql_error());
    }


    }

    }


    echo 
    "</center>";
    }
    include(
    "footer.php");
    ?>
    Die Fehlermeldung die ich bekomme:
    PHP-Code:
    ErrorSELECT FROM user1 WHERE id 
    You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 
    Hoffe ich habe mich verständlich ausgedrückt und schonmal vielen Dank für Hilfe.
    mfg Mark

  • #2
    1. ist $user_id auch nicht gesetzt
    2. sollteste das auch in '' schreiben.

    Kommentar


    • #3
      Aber wieso wird diese anfrage dann überhaupt ausgeführt?
      PHP-Code:
      if (!isset ($_SESSION["user_id"])) 
        { 

        }else{ 
      $abfrage="SELECT * FROM user1 WHERE id = $user_id"
      $ergebnis mysql_query($abfrage
          OR die(
      "Error: $abfrage <br>".mysql_error()); 
      while(
      $row mysql_fetch_object($ergebnis)) 
        { 
      $username=$row->username
      $punkte $row->punkte
      $bonuserhalt $row->bonuserhalt
      $werber $row->ref

      echo 
      "<center><br><br>Du hast dich erfolgreich eingeloggt $username"

      Kommentar


      • #4
        1. session_start (); kommt ganz oben hin.

        2. bei den anderen Dateien fehlt session_start();

        3. error_reporting(E_ALL) fehlt

        5. Du prüfst nicht ob das Formular überhaupt abgesschickt wurde
        (if(isset($_POST['submit'])){ ....

        5. Du hälst Dich nicht an das EVA-Prinzip und mischst Verarbeitung und Ausgabe.

        6. Dein Code ist nicht kommentiert.

        7. Dein Code ist nicht vernünftig eingerückt.

        8. mysql_real_escape_string fehlt - Dein Code ist somit anfällig für mysql-Injections.

        9. Das center-Tag ist veraltet, benutz CSS.

        10. echo Ausgaben wichtiger Variableninhalte um zu Debuggen fehlen.

        to be continued ...




        Kommentar

        Lädt...
        X