Ankündigung

Einklappen
Keine Ankündigung bisher.

Unerklärbarer MySQL Fehler

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Unerklärbarer MySQL Fehler

    Hallo Zusammen,

    ich mach mit einem Kollegen ein Projekt für die Schule, in welchem ein Punkt der ist, dass wir in der Datenbank schauen möchten, wann der Status bei der ID die wir haben auf "0" ist und dann ein anderes Feld in der gleichen Tabelle (Tabelle heißt: "userdb" Feld heißt: "IPv4") auslesen.

    Nun folgen unsere Skripte.
    Das 1. Skript (index.php) läuft und wenn man auf "senden" klickt landen die Daten auch in der Datenbank. Aber Wir bekommen anstelle der 2. Seite folgenden Fehler angezeigt: Parse error: syntax error, unexpected '[' in C:\inetpub\wwwroot\wartezimmer.php on line 35

    Hat da jemand eine Idee wo der Fehler liegt?

    index.php:
    PHP-Code:
    <head><link rel="stylesheet" type="text/css" href="FirmaWebshop.css"> </head>
    <body>
    <?php
    $host
    ="localhost";
    $usernameDB="root";
    $password="*********";                    //Daten zur Datenbankverbindung
    $db_name="firmaweb";
    $tbl_name="userdb";


    mysql_connect("$host""$usernameDB""$password")or die("cannot connect");        //Datenbankverbindung
    mysql_select_db("$db_name")or die("cannot select DB");

    Session_Start();

    $posts=array(0=>"emailadresse"1=>"pw1"2=>"username"3=>"Geburtsdatum"4=>"PLZ",5=>"Vorname"6=>"Nachname"7=>"Strasse"8=>"Ort",9=>"Passwort");
    for(
    $i=0;isset($posts[$i]);$i++)
    {
        if(!isset(
    $_POST[$posts[$i]]))
           {
            
    $_POST[$posts[$i]]="";
           }
    }


        
    $emailadresse="";
        
    $username="";
        
    $Passwort="";
        
    $pw1="";
        
    $pw2="";
        
    $Licherbier=false;

      if(isset(
    $_POST["username"])&& $_POST["username"]!="")
        {
           if(
    strlen($_POST['username'])>and strlen($_POST['username'])<=25)
            {
                if(
    preg_match('/^[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)*\@[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)+$/i'$_POST["emailadresse"]))
                {
                    if(
    $_POST['Passwort']==$_POST['pw1'] and strlen($_POST['pw1'])>0)
                    {

                                if(
    mysql_num_rows(mysql_query('select emailadresse from userdb where emailadresse="'.$_POST['emailadresse'].'"'))==0)
                                {
                                    if(
    mysql_num_rows(mysql_query('select ID from userdb where username="'.$_POST['username'].'"'))==0)
                                    {
                                       
    mysql_query('insert into userdb(emailadresse, pw1, Vorname, Nachname, Strasse, Ort, PLZ, username,Geburtsdatum) values ("'.$_POST['emailadresse'].'", "'.$_POST['pw1'].'", "'.$_POST['Vorname'].'","'.$_POST['Nachname'].'","'.$_POST['Strasse'].'","'.$_POST['Ort'].'","'.$_POST['PLZ'].'","'.$_POST['username'].'","'.$_POST['Jahr'].'-'.$_POST['Monat'].'-'.$_POST['Tag'].'")');
                                        echo 
    '<h2>Du hast dich erfolgreich Registriert, du kannst dich nun Einloggen</h2>';      // Eintragen der Daten in die Datenbank

                                        
    $Licherbier=true;

                                        
    $_SESSION['username'] = $_POST['username'];
                                    }else echo
    'Der username ist bereits vergeben!';

                                }else echo
    'Die emailadresse ist bereits vergeben!';

                    }else echo 
    'Deine Passw&ouml;rter sind nicht identisch!';

                }else echo
    'Bitte eine g&uuml;ltige emailadresse Adresse angeben!';
            }else echo
    'Der username muss zwischen 5 und 25 Zeichen lang sein!';

            echo 
    mysql_error();
        }
        if (!
    $Licherbier){
            
    ?>

            <form action="index.php" method="post">
            <table>
                <tr><td colspan="2"><?php echo $emailadresse?></td></tr>
                <tr>
                    <td>emailadresse:</td>
                    <td><input type="text" value="<?php echo $_POST['emailadresse']; ?>" name="emailadresse"/></td>
                </tr>

                <tr>
                    <td>username:</td>
                    <td><input type="text" value="<?php echo $_POST['username']; ?>" name="username"/></td>
                </tr>

                <tr>
                    <td>Passwort:</td>
                    <td><input type="password" value="<?php echo $_POST['Passwort']; ?>" name="Passwort"/></td>
                </tr>

                <tr>
                    <td>Passwort wiederholen:</td>
                    <td><input type="password" value="<?php echo $_POST['pw1']; ?>" name="pw1"/></td>
                </tr>

                <tr>
                    <td>Vorname:</td>
                    <td><input type="text" value="<?php echo $_POST['Vorname']; ?>" name="Vorname"/></td>
                </tr>
                <tr>
                    <td>Nachname:</td>
                    <td><input type="text" value="<?php echo $_POST['Nachname']; ?>" name="Nachname"/></td>
                </tr>

                <tr>
                    <td>Strasse, PLZ, Ort:</td>
                    <td><input type="text" value="<?php echo $_POST['Strasse']; ?>" name="Strasse"/>,</td>
                    <td><input type="text" value="<?php echo $_POST['PLZ']; ?>" name="PLZ"/>,</td>
                    <td><input type="text" value="<?php echo $_POST['Ort']; ?>" name="Ort"/></td>
                </tr>

                <tr>
                    <td>Geburtstdatum:</td>
                    <td><select name="Tag"> <?php for($i =1$i<32$i++){ ?> <option> <?php echo $i  ?> </option> <?php ?></select>
                     <select name="Monat"> <?php for($i =1$i<13$i++){ ?> <option> <?php echo  $i ?> </option> <?php ?></select>
                      <select name="Jahr"> <?php for($i =2014$i>1900$i--){ ?> <option> <?php echo $i  ?> </option> <?php ?></select> </td>
                </tr>

                <tr>

                   <td></td> <td colspan="2"><input type="submit" value="Registrieren"/></td>
                </tr>
            </table>
            </form>
                   <?php }
                    else {
    header("Location:wartezimmer.php",false,307);exit;      }   ?>





     </body>
    wartezimmer.php :
    PHP-Code:
    <head><link rel="stylesheet" type="text/css" href="FirmaWebshop.css"> </head>
    <?php
    $host
    ="localhost";
    $usernameDB="root";
    $password="**********";                    //Daten zur Datenbankverbindung
    $db_name="firmaweb";
    $tbl_name="userdb";


    mysql_connect("$host""$usernameDB""$password")or die("cannot connect");        //Datenbankverbindung
    mysql_select_db("$db_name")or die("cannot select DB");

    ?>

    <?php
    header
    ('Refresh:10"Location:wartezimmer.php"');
    ?>


    <?php                                     //<===== Zeile 20


    echo '<h2>Du hast dich erfolgreich Registriert, du kannst dich nun Einloggen</h2>';
    echo 
    '<h3>Der Server wird nun erstellt. Dies kann einige Minuten in anspruch nehmen.</h3>';
    Session_Start();                                                       //<===== Zeile 25
    echo"Sehr geehrter "$_SESSION['username'];

    if(isset(
    $_SESSION['username'])){
    $result mysql_query("Select IPv4 from userdb where username='".$_SESSION['username']."'");
    echo 
    mysql_result ($result);                                    //<===== Zeile 30
    echo $result;



    $ID mysql_query("Select * from userdb where username ='".$_SESSION['username']."'")['ID'];  //<==== Zeile 35
    //$status = 0;
    echo " bitte haben sie noch etwas Geduld...";
    $status mysql_query("Select * from userdb where ID='".$ID."'")['status'];
    if (
    $status==0){echo "Ihr Server wurde erstellt";}       }
    ?>                                                          //<==== Zeile 40
    <br> <input type="button" value="Aktualisieren"
     onClick="window.location.reload();"> </br>

    Wir freuen uns über jede hilfreiche Antwort

    Viele Grüße
    Sam


  • #2
    bitte gerne doch:
    http://www.php.de/trash/108331-selts...tml#post795537

    Kommentar


    • #3
      Das der Code nicht so toll ist weiß ich selber, ich habe auch erst damit angefangen und es ist nur ein Teil des Projekts

      Könntest du oder jemand anderes mir vielleicht trotzdem helfen?

      Ich freue mich auch über Kritik, solange diese mit Verbesserungsvorschlägen verbunden ist.

      Kommentar


      • #4
        Zitat von Mr.Server Beitrag anzeigen
        Das der Code nicht so toll ist weiß ich selber, ich habe auch erst damit angefangen und es ist nur ein Teil des Projekts

        Könntest du oder jemand anderes mir vielleicht trotzdem helfen?

        Ich freue mich auch über Kritik, solange diese mit Verbesserungsvorschlägen verbunden ist.
        Auf die Fehlerquellen habe ich dich schon im anderen Thread hingewiesen. Ich weiß nicht, was du hier zu bewerkstelligen versuchst:

        PHP-Code:
        $ID mysql_query("Select * from userdb where username ='".$_SESSION['username']."'")['ID'];
        // ...
        $status mysql_query("Select * from userdb where ID='".$ID."'")['status']; 
        Falls du versuchst ein Resultat eines Querys zu fetchen, dann soltest du dir nochmals die Grundlagen der Handhabung der "Ursprünglichen MySQL API" (Mehrere praktische Beispiele hier) zu Gemüte führen.

        Kommentar


        • #5
          Ich bin immernoch nicht bereit bis zu der genannten zeilennumer zu zählen.

          allerdings hat sich gezeigt, dass du meinen ersten kommentar nicht gelesen, oder nicht über ihn nachgedacht hast.

          Kommentar


          • #6
            sieht ja spannend aus...

            PHP-Code:
            //...
            if(!isset($_POST[$posts[$i]]))
            {
              
            $_POST[$posts[$i]]="";

            //... 
            Syntax prüfen + alles andere, was die kollegen bereits gepostet haben!

            mfg wolf29
            while (!asleep()) sheep++;

            Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

            Kommentar


            • #7
              Zitat von wolf29 Beitrag anzeigen
              sieht ja spannend aus...

              PHP-Code:
              //...
              if(!isset($_POST[$posts[$i]]))
              {
                
              $_POST[$posts[$i]]="";

              //... 
              Syntax prüfen + alles andere, was die kollegen bereits gepostet haben!

              mfg wolf29


              Ich kenne mich mit PHP halt überhaupt nicht aus.

              Und es ist auch nur 1% von unserem Projekt.
              Aber wir brauchen das halt


              Wenn jemand eine Idee hat, wie man das Ziel, was ich damit erreichen möchte, einfacher ereichen kann würde ich mich über Hilfe freuen.

              Kommentar


              • #8
                also, weil jetzt endlich mal die zeilen nummeriert sind:

                PHP-Code:
                if(isset($_SESSION['username'])){
                   
                $result mysqli_query("Select IPv4 from userdb where   username='".$_SESSION['username']."'");

                // mysql_result benütze ich nie
                //  echo mysql_result ($result);                                    //<===== Zeile 30

                //  sollte debugging sein? 
                //  echo $result;
                /*
                echo bringt hier gar nichts, zum debugen var_dump();
                */   
                  
                   
                $ID mysqli_query("Select * from userdb where username ='".$_SESSION['username']."'") ['ID'];  //<==== Zeile 35
                //$status = 0;
                   
                echo " bitte haben sie noch etwas Geduld...";
                   
                $status mysqli_query("Select * from userdb where ID='".$ID."'")['status'];

                /*
                *   wenn du die ID sichst, mach doch:
                *  $query = "Select ID from userdb where username ='".$_SESSION['username']."'";
                *  was du versuchst geht so nicht _ parser error
                *
                *   zudem kannste beide queries kombinieren:

                *    $query = "Select status from userdb where username ='".$_SESSION['username']."'";
                *
                *    du benützt die selbe tabelle rfragst einmal nach dem usernamen, der unique und dann abhängig davon nach status. 

                * brauchste alles mach doch:

                *  $query = "Select status, IPV4, ID from userdb where (...)
                */
                   
                if ($status==0){echo "Ihr Server wurde erstellt";}

                // die meldung verstehe ich nicht.
                // sollte session estellt heissen?


                // nach beispiel 1 von:
                // http://de3.php.net/manual/en/mysqli-result.fetch-row.php
                // ergebnisse:



                $query "";  /* siehe oben */

                if ($result $mysqli->query($query)) {

                    
                /* fetch object array */
                    
                while ($row $result->fetch_row()) {
                        
                printf ("%s (%s)\n"$row[0], $row[1]);
                    }

                    
                /* free result set */
                    
                $result->close();
                }

                /* close connection */
                $mysqli->close();




                an deiner stelle würde ich im ersten schritt, das ganze so umbauen, das ergenisse angezeigt werden, wenn auch erstmal nur plain txt.

                in jeder datei die zugangsdaten für die db zu schreiben, halte ich nicht für sinnvoll include()

                Kommentar


                • #9
                  Ich kenne mich mit PHP halt überhaupt nicht aus.
                  Dann bist Du hier falsch.
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Danke moma ich werde gleich mal versuchen deine Tipps umzusetzen.



                    Zitat von nikosch Beitrag anzeigen
                    Dann bist Du hier falsch.
                    Das ist wirklich ein Super Beitrag und man sollte dir für soviel gequirlte Scheiße wirklich mal einen Orden verleihen ^^

                    Oder was willst du damit ausdrücken?
                    Das jemand der PHP als Mittel zum Zweck nutzt und es nicht kann nicht nach Hilfe fragen darf?


                    LG Sam

                    Kommentar


                    • #11
                      Wow

                      10 Minuten später (wohl zur 'Sicherheit' oder 'Doppelt gefragt=mehr Hilfe'!?) hier die gleiche Frage!

                      Wenn man in vielen Foren unterwegs ist, dann fällt einem so was schon auf!

                      Kommentar


                      • #12
                        In diesem SInne:

                        [MOD: Close]
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar

                        Lädt...
                        X