Input feld reagiert nicht nach ajax aufruf

Amschti

Erfahrenes Mitglied
Ich versteh die welt nicht mehr... ich hab mehrmals versucht den Fehler zu finden, habe in anderen Formularen das selbe versucht, aber hier will es nicht...

jedenfalls nach einen jqueri .load lädt es diesen Code in einem Div:

PHP:
<?php
include("../../mysql.php");
$dbtbl = $_GET[dbtbl];
echo '<form>';

    $ergebnis = mysql_query("SELECT * FROM $dbtbl");
$row = mysql_num_fields($ergebnis);

    $flags = mysql_fetch_row($ergebnis);
    for($i=0;$i<$row;$i++)
    {

        if((mysql_field_flags($ergebnis, $i)== 'not_null primary_key auto_increment')or
          (mysql_field_flags($ergebnis, $i)=='not_null binary timestamp'))
        {echo '<input type="text"
                    class="tabelle t_werte"
                    name="'.$i.'"
                    style="background-color: #C0C0C0;"
                    disabled="disabled"
                >';}
        elseif(mysql_field_type($ergebnis, $i)== 'int'){
            echo '<input type="number"
                    class="tabelle t_werte"
                    name="'.$i.'"
                    size="20"
                      maxlength="50"
                     disabled=""
                >';
        }else
        {echo '<input type="text"
                    class="tabelle t_werte"
                    name="'.$i.'"
                    size="20"
                      maxlength="50"
                      value=""
                >';}
    }
   echo'</form>';

echo '<div onclick="javascript:savethis()" class="o_button">S</div><div onclick="javascript:abort()" class="o_button">A</div>
<script language="javascript" type="text/javascript" src="tabellen.js"></script>';


?>
Das ist wirklich alles, das komische nun ist, das ich in die textfelder NICHTS eintragen kann, ich kann es kurz anklicken, und innert einer sekunde ist die markierung wieder weg...... an was kann das liegen?
 
es ist erstaunlich... wenn ich das formular normal lade(also im browser) funktioniert alles.. was kann ein anwählen von imput feldern verhindern?
 
in einem Div!.... ich hab aber langsam so eine ahnung was sein könnte..... schaue mir das nach feierabend nochmal an..... bin gestern fast verzweifelt!
 
Es kann(!) sehr gefährlich für den Server werden, wenn _REQUEST-Variablen ungeprüft in einer Datenbank abgefragt werden.
 
OK, OK, OK , tut mir leid jungs und Mädels, habe den fehler entdeckt!, ein zimlich peinlicher fehler sogar...

ich habe den oncklick event in dem Div eingetragen, wo das Formular geladen wird. dieser verschwindet natürlich nicht, wenn ich es per .load lade.....


Es kann(!) sehr gefährlich für den Server werden, wenn _REQUEST-Variablen ungeprüft in einer Datenbank abgefragt werden.

Kannst du mir das genauer erklären? gefährlich bezüglich Sicherheit, oder kann da was mit dem Server passieren? Überlasstung oder was****?...

ich sehe in meinem Script keine "gefahr", da ich einfach will, das automatisch ein Formular generiert wird anhand der mysql datenbank....
 
Kannst du mir das genauer erklären? gefährlich bezüglich Sicherheit, oder kann da was mit dem Server passieren? Überlasstung oder was****?...

Es ist ein Sicherheitsproblem. Jemand kann deine Variable $dbtbl ja mit beliebigen Werten füllen, auch mit einer eigenen SQL-Anfrage. Wenn man sich geschickt anstellt, kann man auf diese Weise mehr oder weniger sämtliche Werte aus deiner Datenbank auslesen, im schlimmsten Fall sogar neue eintragen (z.B. einen eigenen Admin-Account).

Dieses Vorgehen nennt sich SQL Injection. Einfach mal googlen oder hier bzgl PHP lesen:
http://www.php.net/manual/en/security.database.sql-injection.php
 
ahhh.... jetzt ist alles klar, du meinst den GET befehl... werd ich in demfall auf Post ändern... Danke! hab schon davon gehört... ich dachte mir da es per jquery geladen wird, ist es auf der adresszeile nicht sichtbar.... ich denke aber, das WENN jemand meine DB hacken will, würde er das wirklich schnell im javascript finden....


Danke!
 
ahhh.... jetzt ist alles klar, du meinst den GET befehl... werd ich in demfall auf Post ändern... Danke! hab schon davon gehört... ich dachte mir da es per jquery geladen wird, ist es auf der adresszeile nicht sichtbar.... ich denke aber, das WENN jemand meine DB hacken will, würde er das wirklich schnell im javascript finden....


Danke!

So wäre es wohl richtiger ;)
$dbtbl = (isset ($_GET['dbtbl']) && !empty ($_GET['dbtbl']) ? addslashes ($_GET['dbtbl']) : '');


Trotzdem haben $_GET-Variablen nichts in einer Datenbank-Query zu suchen ;)
 
Zurück