Übertragungsproblem

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

  • Übertragungsproblem

    Hallo Leute,

    ich weiß ich weis.... der Quelltext sieht n bissel
    komisch aus funst aber soweit ganz gut.

    Mein Problem ist es nun die daten des
    ausgewählten radio button in die Datenbank
    zu bekommen. So das es auch beim richtigen User
    auftaucht.

    Die User werden auch alle angezeigt, die radios
    funktionieren auch.. Also sie zeigen (per echo)
    ja auch 1 oder 0 an. Nur wie bekomme ich das jetzt
    in die richtige spalte ( aktiv ) zum richtigen user?

    Hier mein script:

    PHP-Code:
    <?
    session_start();


    if(!session_is_registered('user') || $_SESSION['user'] == "") {
        header("location:index.php");
        die;
    }
    include("connect.inc.php");

    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
        <title>Sichere Seite</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
        <tr>
            <td bgcolor="#e7e7e7" align="center">
            <? echo "<b>Hallo ".$_SESSION['user']."</b>"; ?>
            <br><br>
            <b>Du befindest Dich im Adminbereich!</b>
            <br><br>
            <a href="neu.php">Neuen Admin / User anlegen</a>
            <br><br>
            <a href="logout.php">LogOut</a>
            <br><br>
            <a href="md5.php">Passwort Ermitteln!</a>
            </td>
        </tr>
        <tr>

        </tr>
    </table>
    <br>

    <form action="sichere_seite1.php" method="post">
    <?php
     
    function connect()
     {
     include 
    'connect.ing.php';
     
    mysql_connect($dbHost,$dbUser,$dbPass) or die(mysql_error());
     }
     
        echo
    '<table width="200" bgcolor="#000000" border="0" 
    cellpadding="5" cellspacing="1" align="center">'
    ;
        echo
    '<tr>';
        echo
    '<td bgcolor="#e7e7e7" align="center" colspan="15">';
        echo
    '<b>User Freischalten oder Sperren</b>';
        echo
    '</td>';
        echo
    '</tr>';
        echo
    '<tr>';
        echo
    '<td width="40" bgcolor="#e7e7e7">Nr</td>';
        echo
    '<td width="40" bgcolor="#e7e7e7">User</td>';
        echo
    '<td width="40" bgcolor="#e7e7e7">id</td>';
        echo
    '<td width="40"bgcolor="#e7e7e7">Aktiv</td>';
        echo
    '<td width="40"bgcolor="#e7e7e7">Bearbeitung</td>';
        echo
    '</tr>';
        
    $adminquery = @mysql_query("SELECT id, user, aktiv FROM users "
    or print(
    'Kann die bisherigen Benutzer nicht ausw&auml;hlen!');
    if(!isset(
    $_POST['aktiv']) || $_POST['aktiv'] == "WHERE aktiv = 
    '"
    .$_POST['v1']."'") { echo ' value="'.$_POST['v1'].'"'; }    
        
    $counter 1;

            while(
    $line = @mysql_fetch_object($adminquery)) {

            echo 
    '<tr>';
            echo 
    '<td width="40" bgcolor="#ffffff" align="right">'.$counter.'</td>';
            echo 
    '<td width="40" bgcolor="#ffffff">'.$line->user.'</td>';
            echo 
    '<td width="40" bgcolor="#ffffff">'.$line->id.'</td>';
            echo 
    '<td width="40" bgcolor="#ffffff">'.$line->aktiv.'</td>';
            
        
    mysql_query("INSERT INTO users VALUES  ('$_POST[aktiv]')");
        
            echo 
    '<td width="40" bgcolor="#ffffff">
            <input type=radio name=v1 value=0>Deaktivieren<br>
            <input type=radio name=v1 value=1>Aktivieren
            <input type="submit" name="submit" value="Absenden" class="button"></td>'
    ;
            echo
    '</tr>';

        }    

            echo
    '</table>';

        
    $counter++;
        

    ?>
    </form>


    </body>
    </html>
    Ich bedanke mich schon mal im voraus für
    die hilfestellungen die ich bekomme !!!
    Zuletzt geändert von adeno4you; 02.07.2006, 09:09.

  • #2
    umbrich bitte Deinen Code.

    session_is_registered ist veraltet.

    header location ist falsch geschrieben (muß groß: Location)

    schreib an den Anfang des Scripts: error_reporting(E_ALL);

    Bei Deinen Optionsfeldern ist die html-Syntax falsch
    - Parameter in ""

    Um die Felder zu unterscheiden kannst Du bei den Feldern
    name="optionsfelder[]" schreiben.

    laß Dir das Ergebnis mit print_r $_POST ausgeben


    falsche Syntax (Hochkommas $_POST['aktiv']
    PHP-Code:
    mysql_query("INSERT INTO users VALUES  ('$_POST[aktiv]')"); 
    Außerdem soll man $_POST-Daten nie direkt in die DB schreiben.


    Wieso includest Du die connect.php zwei mal ?

    Laß Dir bei den DB-Abfragen eventuelle Fehler ausgeben (mysql_error nicht nur beim connect)
    Zuletzt geändert von Koala; 02.07.2006, 09:15.

    Kommentar


    • #3
      Original geschrieben von Koala
      umbrich bitte Deinen Code.

      session_is_registered ist veraltet. "Hm aber is ja net schlecht."

      header location ist falsch geschrieben (muß groß: Location) "OK, habs geändert"

      schreib an den Anfang des Scripts: error_reporting(E_ALL); "? "

      Bei Deinen Optionsfeldern ist die html-Syntax falsch
      - Parameter in "" "Warum ist die HTML Syntax falsch?"

      Um die Felder zu unterscheiden kannst Du bei den Feldern
      name="optionsfelder[]" schreiben. " Das geht nicht, habs probiert "

      laß Dir das Ergebnis mit print_r $_POST ausgeben " geht nicht ..?.."


      falsche Syntax (Hochkommas $_POST['aktiv']
      PHP-Code:
      mysql_query("INSERT INTO users VALUES  ('$_POST[aktiv]')"); 
      " Stimmt, habs vergessen "

      Außerdem soll man $_POST-Daten nie direkt in die DB schreiben.


      Wieso includest Du die connect.php zwei mal ? " Weil ich über die woche hinweg 100 mal versucht habe und einfach vergessen habe es raus zu nehmen.!"

      Laß Dir bei den DB-Abfragen eventuelle Fehler ausgeben (mysql_error nicht nur beim connect)

      Kommentar


      • #4
        Achso, und die Hochkommas sind richtig... Hatte es getestet aber er haut mir gleich einen fehler rein.
        Richtig:
        PHP-Code:
            mysql_query("INSERT INTO users VALUES  ('$_POST[aktiv]')"); 
        Falsch:
        PHP-Code:
            mysql_query("INSERT INTO users VALUES  ($_POST['aktiv'])"); 

        Kommentar


        • #5
          wenn Du alles besser weißt - ok.

          Die Hochkommas sind richtig- wie verbindet man denn
          Zeichenketten in php ???

          Deine Antworten à la "geht nicht" kannst behalten.

          Was ist eigentlich so schwer an:
          "Schreib error_reporting(E_ALL); an den Anfang des Scripts" ?

          Kommentar


          • #6
            Original geschrieben von Koala
            wenn Du alles besser weißt - ok.

            Die Hochkommas sind richtig- wie verbindet man denn
            Zeichenketten in php ???

            Deine Antworten à la "geht nicht" kannst behalten.

            Was ist eigentlich so schwer an:
            "Schreib error_reporting(E_ALL); an den Anfang des Scripts" ?
            Hallllooooo???

            Ich weiß nicht alles besser, sonst hätte ich ja nicht gefragt!
            Mit den hochkommas... Hatte ich ausprobiert. Geht nicht !!!! Da
            wirft er einen Fehler aus!

            Und ich habe nicht gesagt das es schwer ist
            error_reporting(E_ALL); an den Anfang des Scripts zu schreiben!
            Das habe ich schon gemacht!

            Kommentar


            • #7
              mal ein Beispiel (gefunden nach 1 Minute google):

              PHP-Code:
              $titel  =  request2mysql($_POST['titel']);
              $inhalt =  request2mysql($_POST['inhalt']);
              $autor  =  request2mysql($_POST['autor']);
               

              mysql_query(" INSERT INTO News     (Titel, Inhalt, Datum, Autor)
                                          VALUES('
              $titel','$inhalt',NOW(),'$autor')" ); 
              mach mal ganz oben auf sichere_seite1.php:

              PHP-Code:
              echo '<pre>';
              print_r ($_POST);
              echo 
              '</pre>'
              Was wird angezeigt ?
              Zuletzt geändert von Koala; 02.07.2006, 09:48.

              Kommentar


              • #8
                Und könntest du bitte mal vernünftig zitieren - anstatt wie im ersten Antwortposting Original und deine Antworten einfach ineinanderzuklatschen?
                Wenn du zu faul bist, ein halbwegs ordentliches Posting zu verfassen, kannst du es auch lassen. Dein nächstes Posting in dem Stil führt zur Löschung des Threads. Gemecker an dieser Stelle übrigens auch. Dies ist eine Moderationsentscheidung, die du bitte akzeptierst, Danke.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Hm, ich weiß net
                  wo der fehler liegt aber wenn ich die hochkommas setze wie du schreibst
                  oder die anderen sachen, giebt er mir immer das aus:
                  Fatal error: Call to undefined function: request2mysql()

                  Kommentar


                  • #10
                    Original geschrieben von wahsaga
                    Und könntest du bitte mal vernünftig zitieren - anstatt wie im ersten Antwortposting Original und deine Antworten einfach ineinanderzuklatschen?
                    Wenn du zu faul bist, ein halbwegs ordentliches Posting zu verfassen, kannst du es auch lassen. Dein nächstes Posting in dem Stil führt zur Löschung des Threads. Gemecker an dieser Stelle übrigens auch. Dies ist eine Moderationsentscheidung, die du bitte akzeptierst, Danke.
                    Erstmal bin ich nicht zu fauel. Dann werde ichs fürs nächste ändern und nicht mehr (Für die Faulen) meine Antwort ineinander ferschachteln.
                    Und ja ich bin mir bewust das Du und dein Kolege uns nicht mögen.
                    Aber das Thema hatten wir ja schon.

                    Und wo bitteschön meckere ich?

                    Na ja egal....

                    Ich werde es mir zu herzen nehmen.

                    Ich hoffe mal das Ihr uns entlich in ruhe lässt!

                    Kommentar


                    • #11
                      also ehrlich:

                      Das war ein Beispiel, das Du auf Deine Anforderungen
                      umschreiben solltest:


                      PHP-Code:
                      $a $_POST['aktiv'];
                      mysql_query(" INSERT INTO users (aktiv) VALUES('$a')" ); 
                      P.S.:

                      Halt Dich an die Forenregeln, dann ist doch alles ok - cool down!
                      Zuletzt geändert von Koala; 02.07.2006, 10:09.

                      Kommentar


                      • #12
                        Original geschrieben von Koala
                        also ehrlich:

                        Das war ein Beispiel, das Du auf Deine Anforderungen
                        umschreiben solltest:


                        PHP-Code:
                        $a $_POST['aktiv'];
                        mysql_query(" INSERT INTO users (aktiv) VALUES('$a')" ); 
                        Wie gesagt, ich versuchs schon die ganze woche und
                        bin irgendwie am ende meines lateins. Die einfachsten Dinge
                        wollen mir nicht mehr in den Sinn.

                        So werde noch mal ganz von vorn alles durchgehen.

                        Kommentar


                        • #13
                          (1) die Syntax ist 'komplex': '{$_POST['aktiv']}', dh. zwischen den '...' müssen noch {...} hin.

                          (2) verstehe ich in der Frage nicht ganz, warum macht er ein INSERT, und nicht ein :
                          Code:
                          UPDATE users SET aktiv='{$_POST['v1']}' WHERE user='{$_POST['aktiv']}' LIMIT 1
                          (3) ist die Logik, im ersten Aufruf das Formular ausgeben, nach dem submit updaten und die gewählten buttons angeben.
                          PHP-Code:
                           $checked0=(line->aktiv=='0')?'checked':'';
                          $checked1=(line->aktiv!='0')?'checked':'';
                          <
                          input type=radio name=v1 value=0 $checked0>Deaktivieren<br>
                                  <
                          input type=radio name=v1 value=1 $checked1>Aktivieren 
                          OffTopic:
                          soviel ich weiss ist a4y maintenance, also session_is_registered und all das antiquierte Zeugs


                          HTH
                          PHP

                          edit Vergleichsoperator '=' war reingerutscht - ausgebessert.
                          Zuletzt geändert von tcpip; 02.07.2006, 10:15.

                          Kommentar


                          • #14
                            kann ich verstehn wenn man ne Woche rummacht,
                            daß man dann genervt ist.

                            Aber dann muß man sich halt zur Ruhe zwingen
                            und Schritt für Schritt alles durchgehn.

                            Zum Programmieren gehört halt etwas Disziplin.

                            Ein kleiner Syntaxfehler legt eben das ganze Script lahm.

                            zum "session_register":
                            ändere das - es mag funktionieren, aber wieso sollte man
                            sich so was angewöhnen ?
                            In einer späteren php-Version funktionierts vielleicht
                            nicht mehr und dann ist der Katzenjammer groß.

                            Kommentar


                            • #15
                              Original geschrieben von Koala
                              kann ich verstehn wenn man ne Woche rummacht,
                              daß man dann genervt ist.

                              Aber dann muß man sich halt zur Ruhe zwingen
                              und Schritt für Schritt alles durchgehn.

                              Zum Programmieren gehört halt etwas Disziplin.

                              Ein kleiner Syntaxfehler legt eben das ganze Script lahm.

                              zum "session_register":
                              ändere das - es mag funktionieren, aber wieso sollte man
                              sich so was angewöhnen ?
                              In einer späteren php-Version funktionierts vielleicht
                              nicht mehr und dann ist der Katzenjammer groß.
                              Ja da hast Du recht, hatte das WE ein Wellnes We im Elisee Hamburg
                              das war toll, nun mal ans werk.. Hi hi... Ja so werde ichs mal machen. Du hast recht, später gehts wohl net mehr.

                              Kommentar

                              Lädt...
                              X