1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

Submit reagiert nicht

  • Julian Rüßmann
  • 11. April 2012 um 23:46
  • Julian Rüßmann
    Teeny
    Beiträge
    40
    • 11. April 2012 um 23:46
    • #1

    Hallo,

    Ich versuche per klick auf submit button von einem textfeld den inhalt in eine Datenbank zu speichern, aber wenn ich auf den submit butten drücke passiert nichts.

    PHP
    if(isset($_POST['Submit']))  
    { 
    $sql = mysql_query("UPDATE test SET title='$title', beschreibung='$beschreibung'"); 
    exit();    
    }

    ist dass so richtig?

  • Dodo
    Jedi Ritter
    Reaktionen
    1
    Beiträge
    3.774
    • 12. April 2012 um 00:28
    • #2

    Wie sieht das Formular dazu aus?

    PS: Benötigst du nicht noch eine WHERE-Klausel in deinem Query? So könnt dir der deine Daten vernichten ;)

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Bandit
    Gast
    • 12. April 2012 um 11:05
    • #3

    So wie ich die Frage verstehe, wäre ein Insert statt ein Update wohl richtiger.

  • Julian Rüßmann
    Teeny
    Beiträge
    40
    • 12. April 2012 um 16:45
    • #4

    Keine ahnung auf jedenfall war im php tut, mit update wenn man ne mysql tabelle aktualisieren möchte, aber ich möchte, dass das scrip aus geführ wird, wenn man submit (BUTTON) drückt, aber wenn ich den butten drücke passiert nichts =(

  • Bandit
    Gast
    • 12. April 2012 um 17:04
    • #5

    Tja, bei den wenigen Infos, die du hier ablieferst, musst du wohl alleine machen, was man in solchen Fällen eigentlich immer macht, nämlich

    Richtig debuggen

    • Man bemerkt, dass ein Skript nicht das tut, was es soll.
    • Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    • Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    • Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    • An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    • Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    • Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    • Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    • Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
  • Julian Rüßmann
    Teeny
    Beiträge
    40
    • 12. April 2012 um 17:11
    • #6

    Also es hat rein garnix mit dem MYSQL zu tun ich will, dass der SUBMIT BUTTON funktioniert aber es passiert rein garnix

    logisch gesehen sollte er ja das ausführen wenn man submit drückt

    $sql = mysql_query("UPDATE test SET title='$title', beschreibung='$beschreibung'");

    aber der broeser arbeitet noch nicht einmal wenn man submit drückt

  • Bandit
    Gast
    • 12. April 2012 um 17:17
    • #7

    Dann muss wohl was falsch sein.

    Eine Aufgabe für dich: überlege, was wir mit den paar Infos anfangen können und reagiere entsprechend. Einen Tipp gebe ich dir zum ersten Teil sogar noch: nix!

  • Julian Rüßmann
    Teeny
    Beiträge
    40
    • 12. April 2012 um 17:37
    • #8

    ich war noch nie im einem forum unnd muss mich noch hineinversetzten.

    Also dann fange ich noch mal gaaaaanz von vorne an mit einer Frage:

    Hallo,

    Ich habe eine Frage, wie kann man mit drücken auf den submit button ein teil eines php script ausführen?

    z.b eine Textausgabe

    Danke im Vorraus

    Einmal editiert, zuletzt von Julian Rüßmann (12. April 2012 um 17:38) aus folgendem Grund: vorne mit f geschrieben :D

  • Bandit
    Gast
    • 12. April 2012 um 17:41
    • #9

    Wie wäre es denn, wenn du uns mal dein Script zeigst und nicht nur drei Zeilen. Auch der HTML-Teil,sprich, das Formular müssten wir mal sehen.
    Außerdem stelle ich immer mehr fest, dass dir ganz gewaltig Grundlagen fehlen, die man aber selbst für PHP/HTML benötigt.

    Siehe http://php.faq-page.net/ch-webvariablen.html

  • Julian Rüßmann
    Teeny
    Beiträge
    40
    • 12. April 2012 um 18:00
    • #10

    Der macht den php code autmatisch so zusammen gequetscht =(

    PHP
    <?php
    $link = mysql_connect('', '', '');if (!$link) {    die('Keine Verbindung möglich: ' . mysql_error());}mysql_select_db('puzzzle');
    ?><?phpif(isset($_POST['Submit']))  { $sql = mysql_query("UPDATE testico SET title='$title', beschreibung='$beschreibung'"); exit();    }$id = ereg_replace("[^0-9]", "", $_GET['edit']); if ($id == "") {    echo "Datei nicht gefunden!";    exit();}
    $sql = mysql_query("SELECT * FROM testico WHERE edit='$id' LIMIT 1");$count = mysql_num_rows($sql);if ($count > 1) {    echo "Es existiert kein Benutzer mit dieser ID.";    exit();    }while($row = mysql_fetch_array($sql)){$bildort = $row['bildort'];$beschreibung = $row['beschreibung'];$title = $row['title'];$profilid = $row['id'];}$title = ereg_replace("[^A-Za-z0-9]", "", $_POST['title']);
    
    
     
     
     ?>
    
    
    <html><head><title><?php echo "$title"; ?></title></head><body bgcolor=#F9FFB3>
    <table style="background-color: #9EAB4B" width="100%" border="0" cellpadding="12">  <tr>  <td> <a href="http://puzzzle.org"><img align=left src="files\images\name_small.png" alt="puzzzle.org" HSPACE=40 VSPACE=5> </a></td>    <td width="78%"><b><font face="Arial" size="5">&bull; </font><font size="5" color="#0B148C" face="Arial"><?php echo "$title"; ?></font><font face="Arial" size="5"> &bull;</font></b></td>        <td width="22%"><font face="Arial" size="4" color="Black"></font>  </td>      </tr></table><br><br><br><center><font face="Arial"><table border="1" cellspacing="1" cellpadding="5"><tr><td><img src=<?php echo "$bildort"; ?> width="128"></td><td>Title&nbsp;<input name="passwort" type="text" value="<?php echo "$title"; ?>" /><input name="Submit" type="submit" value="Hochladen">
    </td></tr></table><br></center>
    </body></html>
    Alles anzeigen

    Einmal editiert, zuletzt von Julian Rüßmann (12. April 2012 um 21:55)

  • Bandit
    Gast
    • 13. April 2012 um 10:57
    • #11
    Zitat von Julian Rüßmann

    Der macht den php code autmatisch so zusammen gequetscht =(

    Und wieso funktioniert das bei mir?

    PHP
    <?php
        $link = mysql_connect('', '', '');
    
        if (!$link) 
          die('Keine Verbindung möglich: ' . mysql_error());
    
        mysql_select_db('puzzzle');
    
        if(isset($_POST['Submit']))  
        { 
           $sql = mysql_query("UPDATE testico SET title='$title', beschreibung='$beschreibung'"); 
           exit();    
        }
    
        $id = ereg_replace("[^0-9]", "", $_GET['edit']); 
    
        if ($id == "") 
        {    
           echo "Datei nicht gefunden!";   
           exit();
        }
        $sql = mysql_query("SELECT * FROM testico WHERE edit='$id' LIMIT 1");
    
        $count = mysql_num_rows($sql);
    
        if ($count > 1) 
        {    
           echo "Es existiert kein Benutzer mit dieser ID.";    
           exit();    
        }
    
        while($row = mysql_fetch_array($sql))
        {
           $bildort = $row['bildort'];
           $beschreibung = $row['beschreibung'];
           $title = $row['title'];
           $profilid = $row['id'];
        }
    
        $title = ereg_replace("[^A-Za-z0-9]", "", $_POST['title']);
     ?>
    <html>
    <head>
    <title><?php echo "$title"; ?></title>
    </head>
    <body bgcolor=#F9FFB3>
     <table style="background-color: #9EAB4B" width="100%" border="0" cellpadding="12">  
       <tr>  
         <td> <a href="http://puzzzle.org"><img align=left src="files\images\name_small.png" alt="puzzzle.org" HSPACE=40 VSPACE=5> </a></td>
         <td width="78%"><b><font face="Arial" size="5">&bull; </font><font size="5" color="#0B148C" face="Arial"><?php echo "$title"; ?></font><font face="Arial" size="5"> &bull;</font></b></td>
         <td width="22%"><font face="Arial" size="4" color="Black"></font>  </td>
       </tr>
     </table>
     <br><br><br>
     <center><font face="Arial">
     <table border="1" cellspacing="1" cellpadding="5">
       <tr>
        <td><img src=<?php echo "$bildort"; ?> width="128"></td>
        <td>Title&nbsp;<input name="passwort" type="text" value="<?php echo "$title"; ?>" />
          <input name="Submit" type="submit" value="Hochladen">
       </td>
       </tr>
     </table><br></center>
    </body>
    </html>
    Alles anzeigen


    Das ist ein grausamer PHP und HTML-Code! Und du wunderst dich wirklich, dass das nicht funktioniert? Dann sollest du vielleicht mal bei SelfHTML nachsehen, wie man Formulare erzeugt. Und auch hier sage ich:

    Bitte lerne die Grundlagen!

  • Bandit
    Gast
    • 13. April 2012 um 16:45
    • #12

    So, habe ein paar Minuten Zeit gehabt, achte auf die Kommentare:

    PHP
    <?php
        $link = mysql_connect('', '', '');
    
        if (!$link) 
          die('Keine Verbindung möglich: ' . mysql_error());
    
        mysql_select_db('puzzzle');
    
        if(isset($_POST['Submit']))  
        { 
           // Wo sollen $title und $beschreibung herkommen???
           // Speichere niemals Daten in eine DB, ohne ein mysql_real_escape_string angewendet zu haben
           // Dein Update überschreibt !!!alle!!! Datensätze
           $sql = mysql_query("UPDATE testico SET title='$title', beschreibung='$beschreibung'"); 
           // Es findet keinerlei Überprüfung statt, ob das Update funktioniert hat!
    
           // Ein exit ohne Ausgabe?
           exit();    
        }
    
        // Wo kommt $_GET['edit'] her und was soll ein Replace?
        // Wenn du nur Zahlen erwartest, gibt es bessere Möglichkeiten
        // Außerdem ist ereg_replace veraltet
        $id = ereg_replace("[^0-9]", "", $_GET['edit']); 
    
        if ($id == "") 
        {    
           // Was für eine Datei???
           echo "Datei nicht gefunden!";   
           exit();
        }
    
        // Select * sollte man grundsätzlich nicht nehmen
        $sql = mysql_query("SELECT * FROM testico WHERE edit='$id' LIMIT 1");
        // Auch hier fehlt eine Überprüfung
    
        $count = mysql_num_rows($sql);
    
        // Bei LIMIT 1 erwartest du maximal wieviele Einträge???
        // Du möchtest doch wohl eher auf 0 prüfen
        if ($count > 1) 
        {    
           echo "Es existiert kein Benutzer mit dieser ID.";    
           exit();    
        }
    
        // Bei LIMIT 1 erwartest du maximal wieviele Einträge???
        // Macht dann eine Schleife Sinn???    
        while($row = mysql_fetch_array($sql))
        {
           $bildort = $row['bildort'];
           $beschreibung = $row['beschreibung'];
           $title = $row['title'];
           $profilid = $row['id'];
        }
    
        // Du liest den Titel aus der DB und vemurkst ihn hier wieder???
        // Beim ersten Aufruf des Scriptes ist $_POST['title'] auch nicht gesetzt
        $title = ereg_replace("[^A-Za-z0-9]", "", $_POST['title']);
     ?>
    <html>
    <head>
    <title><?php echo "$title"; ?></title>
    </head>
    <!-- bgcolor??? Warum nicht per CSS? Außerdem gehören Atrribut-Werte zwischen " oder ' -->
    <body bgcolor=#F9FFB3>
    <!-- Tabellenlayout ist out! Verwende div's -->
     <table style="background-color: #9EAB4B" width="100%" border="0" cellpadding="12">  
       <tr>  
         <td> 
           <a href="http://puzzzle.org">
             <!-- hspace und vspace sollten per CSS gesetzt werden,außerdem fehlen auch hier ' oder " -->
             <img align=left src="files\images\name_small.png" alt="puzzzle.org" HSPACE=40 VSPACE=5> 
           </a>
         </td>
         <td width="78%">
         <!-- <b> und <font> besser per CSS regeln -->
         <b><font face="Arial" size="5">&bull; </font><font size="5" color="#0B148C" face="Arial"><?php echo "$title"; ?></font><font face="Arial" size="5"> &bull;</font></b></td>
         <td width="22%"><font face="Arial" size="4" color="Black"></font>  </td>
       </tr>
     </table>
     <br><br><br>
     <center><font face="Arial">
     <table border="1" cellspacing="1" cellpadding="5">
       <tr>
        <td><img src=<?php echo "$bildort"; ?> width="128"></td>
        <!-- Ein Formularfeld ohne Formular ist sinnbefreit
             Du zeigst den Titel als Passwort an? -->
        <td>Title&nbsp;<input name="passwort" type="text" value="<?php echo "$title"; ?>" />
          <input name="Submit" type="submit" value="Hochladen">
       </td>
       </tr>
     </table><br></center>
    </body>
    </html>
    Alles anzeigen


    Es gibt noch weitere kleinere Dinge zu bemängeln, aber für den Anfang reicht das erst einmal. Wie du siehst, bist du noch verdammt weit weg von einer vernünftigen Lösung

Tags

  • button
  • tex
  • ton
  • post
  • update
  • speicher
  • php
  • daten
  • inhalt
  • datenbank
  • formular
  • feld
  • bank
  • mysql
  • sql
  • submit
  • query
  • klausel
  • isset
  • $_post
  • teil
  • test
  • textfeld
  • speichern
  • reagiert
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern