ah3n0bar6us
Goto Top

Skript schlägt fehl - nur Zahlen werden gespeichert

Hallo Gemeinde,

leider bin ich nicht JS versiert, weshalb ich euer Auge brauche.
Mein Ziel ist es, den Inhalt eines mittels Summernote - Texteditor geänderten Text via onclick Methode von JS an eine PHP Funktion zu übergeben, um die aktuellen Daten in eine Datenbank zu speichern.

Die Aktionen funktionieren, bis auf die Tatsache, dass nur Zahlen gespeichert werden, wenn auch nur Zahlen im Text vorkommen.

Ein Bsp.:

vorhandener Text: 1234
nach Bearbeitung: 111234
-> Funktionen funktionieren.

vorhandener Text: Hallo
nach Bearbeitung: Hallo du
-> keine Änderung

Jetzt zum Code (alles in der Reihenfolge in einer Datei):

php:
if (isset($_POST['updateEx']) ) {  
  mysql_query("UPDATE exercise SET eMsg = ".$_POST['updateEx']." WHERE eId = ".$_POST['showEx']);  
}

[... viel mehr Code...]

html/php:
<tbody>
        <tr>
          <td colspan="6" style="width:80%"><?php echo $exFetch['eTopic']; ?></td>  
          <td colspan="2" style="width:20%">  
          <?php if (strcmp($_SESSION['user'], $exFetch['eAuthor'])) { ?> <!-- Funttioniert noch nicht -->  
            <button id="edit" class="btn btn-link" onclick="edit()" type="button">Bearbeiten</button>  
            <button id="save" class="btn btn-link" onclick="save()" type="button">Speichern</button>  
          <?php } ?>
          </td>
        </tr>
        <tr>
          <td colspan="8" style="width:80%"><div class="eMSGedit"><?php echo $exFetch['eMsg']; ?></div></td>  
        </tr>
        </tbody>

[... viel mehr Code...]

JS / Ajax:
<script>
var edit = function() {
  $('.eMSGedit').summernote({focus: true});  
};

var save = function() {
  var makrup = $('.eMSGedit').summernote('code');  
  $('.eMSGedit').summernote('destroy');  
  $.ajax({
    method: "POST",  
    url: "?site=showExercise",  
    data: { updateEx: makrup, showEx: '<?php echo $_GET['showEx']; ?>' }  
  });
};
</script>

Ich vermute, dass die makrup variable nicht das tut, was ich von php Variablen vermuten würde. Wie könnte ich herausfinden, ob die POST Methode von Ajax funktioniert?

LG Ah3

Content-Key: 324159

Url: https://administrator.de/contentid/324159

Printed on: April 16, 2024 at 13:04 o'clock

Mitglied: 131381
131381 Dec 17, 2016 updated at 15:06:31 (UTC)
Goto Top
mysql_query("UPDATE exercise SET eMsg = ".$_POST['updateEx']." WHERE eId = ".$_POST['showEx']); 
Auaaaaa, da stellen sich mir die Haare zu Berge!!!!
Erstens ist das so in der Art und Weise vollkommener Bullshit und gerade zu eine Einladung an SQL-Injection (du prüfst hier null Input), zweitens gehen bei diesem Konstrukt nur Zahlen (wie du selbst feststellen konntest) weil du den Inhalt der Variablen im SQL String nicht mit Hochkommas einschließt wie es erforderlich ist wenn du "Strings" in eine Spalte schreiben willst ...

Du solltest dich dringend mal mit den modernen MySQL-Funktionen (pdo) und prepared statements vertraut machen um solche haarsträubenden Konstrukte ad akta legen.

Solche Konstrukte sind der Grund warum heute immer noch Webseiten so leicht gehackt werden, also tu uns und anderen den Gefallen und ändere das.

Gruß mik
Member: Ah3n0bar6us
Ah3n0bar6us Dec 18, 2016 at 16:03:47 (UTC)
Goto Top
Zitat von @131381:
[...]
Solche Konstrukte sind der Grund warum heute immer noch Webseiten so leicht gehackt werden, also tu uns und anderen den Gefallen und ändere das.
[...]

Ich danke dir für den Hinweis, mik. Nur den letzten Satz hättest du dir sparen können, da Antworten wie deine allgemein zwei Probleme hervorrufen:
1. Du motivierst mich so gar nicht mich mit der Thematik mehr auseinander zu setzen
Stell dir vor ich wäre ein interessierter Schüler der durch deinen Post abgeschreckt wird sich mit diesen Themen auseinander zu setzen? Entweder geht da Potential verloren oder er fragt erst gar nicht mehr um Fehler zu beseitigen oder vorzubeugen. Zum Glück bin ich nicht so leicht zu verscheuchen =)

2. Du zerstörst nach und nach die Atmosphäre eines Forum, dass für Fragen / Antworten spezieller Dinge gedacht ist.

Nichts desto trotz danke für den SQL Hinweis. Ich werde das durcharbeiten und schauen, ob ich das verstehe und umsetzen kann. Aber hier werde ich wohl nicht mehr fragen brauchen, da Menschen, die etwas lernen wollen, eher an die Wand gestellt werden.
Aber um deine schlaflosen Nächte auf Grund der zahlreichen SQL Injections etwas zu entflammen, kann ich dir verraten, dass ich noch nie welche hatte. Ob ich mir sicher bin? Ja, denn alle meine "Projekte" sind sowohl privat als auch offline. Nicht mal eine Cloud oder eine Webseite als Text hat Code von mir, daaaaa ich weiss, dass ich kein SQL / PHP / usw. Wissenschaftler bin um alle Fehler vorzubeugen. Jetzt frage ich dich, sind alle deine jemal geschriebenen Codezeilen (auch die von vor 10 oder 20 Jahren) sicher und up-to.date? ;)
Mitglied: 131381
131381 Dec 18, 2016 updated at 19:24:44 (UTC)
Goto Top
Zitat von @Ah3n0bar6us:

Ich danke dir für den Hinweis, mik. Nur den letzten Satz hättest du dir sparen können, da Antworten wie deine allgemein zwei Probleme hervorrufen:
.??
1. Du motivierst mich so gar nicht mich mit der Thematik mehr auseinander zu setzen
Schade.
Stell dir vor ich wäre ein interessierter Schüler der durch deinen Post abgeschreckt wird sich mit diesen Themen auseinander zu setzen? Entweder geht da Potential verloren oder er fragt erst gar nicht mehr um Fehler zu beseitigen oder vorzubeugen. Zum Glück bin ich nicht so leicht zu verscheuchen =)

2. Du zerstörst nach und nach die Atmosphäre eines Forum, dass für Fragen / Antworten spezieller Dinge gedacht ist.
?? Ich weis wirklich nicht wovon du hier redest, meine Informationen hier sind zum Großteil sehr hilfreich, siehst du am Scoreboard, und das besteht ja hauptsächlich aus Uservotings. Ich weise dich auf deinen schwerwiegenden Fehler hin welcher ja unter anderem für deinen von dir beobachteten Fehler verantwortlich ist nämlich die vergessenen Hochkommas.

Nichts desto trotz danke für den SQL Hinweis. Ich werde das durcharbeiten und schauen, ob ich das verstehe und umsetzen kann.
Das war meine Intention, mehr nicht.
Aber hier werde ich wohl nicht mehr fragen brauchen, da Menschen, die etwas lernen wollen, eher an die Wand gestellt werden.
?? Quatsch, sicher kannst du Fragen stellen, nur wenn man sowas banales in einem Administrator Forum stellt muss man zumindest grundlegende Kritik abkönnen.Du hast mich leider vollkommen missverstanden.

Aber um deine schlaflosen Nächte auf Grund der zahlreichen SQL Injections etwas zu entflammen, kann ich dir verraten, dass ich noch nie welche hatte. Ob ich mir sicher bin? Ja, denn alle meine "Projekte" sind sowohl privat als auch offline.
Na dann hast du Glück face-smile
Nicht mal eine Cloud oder eine Webseite als Text hat Code von mir, daaaaa ich weiss, dass ich kein SQL / PHP / usw. Wissenschaftler bin um alle Fehler vorzubeugen. Jetzt frage ich dich, sind alle deine jemal geschriebenen Codezeilen (auch die von vor 10 oder 20 Jahren) sicher und up-to.date? ;)
Nein, aber man sollte die Leute zumindest darauf hinweisen, und das tat ich hier nicht mehr nicht weniger. Es hätte demjenigen der sowas online gestellt hätte sicher viel Ärger erspart face-smile
Jetzt wissen wir ja was deine Intention ist.

Gruß mik