daten per php-forumlar in db

Dieses Thema daten per php-forumlar in db im Forum "Windows XP Forum" wurde erstellt von reik, 23. Sep. 2006.

Thema: daten per php-forumlar in db hallo liste, hmm ich habe ein problem mit dem verständis hinsichtlich wie ich daten in eine datenbank über ein...

  1. hallo liste,

    hmm ich habe ein problem mit dem verständis hinsichtlich wie ich daten in eine datenbank über ein formular eintragen kann.

    nachdem ich mit etwas mühen und schummeln (zugeb :\ ) entlich ein formular zusammengebaut habe kriege ich eine fehlermeldung mit der ich überhaupt nichts anfagen kann.

    --> Column count doesn't match value count at row 1
    Warning: Cannot modify header information - headers already sent by (output started at E:\webserver\xxx\test.php:92) in E:\webserver\xxx\test.php on line 98

    mein quelltext ist

    Code:
    <?php
    
    include(include_databasefunction.php);
    
    if (isset($_GET[submit])){
    // Der Submit - Button wurde gedrückt
    //      -> die Werte müssen überprüft
    // und bei Gültigkeit in die DB eingefügt werden
    
     // wir gehen von der Gültigkeit der Daten aus
     $DatenOK = 1;
    
     // es gab noch keine Fehlermeldung
     $error = ;
    
      if (!isset($_GET[id])){
      // es wurde kein Komementar eingegeben
      $DatenOK = 0;
      $error .= Ein Eintrag ohne Komemntar mach nicht viel;
      $error .=  Sinn, oder?<br>\n;
      $daten[id] = ;
     }
     else {
      $daten[id] = $_GET[id];
     }
     
     if (!isset($_GET[titel])){
      // es wurde kein Name eingegeben
      $DatenOK = 0;
      $error .= Es muß ein Name eingegeben werden<br>\n;
      $daten[titel] = ;
     }
     else {
      $daten[titel] = $_GET[titel];
     }
    
     if (!isset($_GET[beschreibung])){
      // es wurde kein Komementar eingegeben
      $DatenOK = 0;
      $error .= Ein Eintrag ohne Komemntar mach nicht viel;
      $error .=  Sinn, oder?<br>\n;
      $daten[beschreibung] = ;
     }
     else {
      $daten[beschreibung] = $_GET[beschreibung];
     }
     
      if (!isset($_GET[date_new])){
      // es wurde kein Komementar eingegeben
      $DatenOK = 0;
      $error .= Ein Eintrag ohne Komemntar mach nicht viel;
      $error .=  Sinn, oder?<br>\n;
      $daten[date_new] = ;
     }
     else {
      $daten[date_new] = $_GET[date_new];
     }
    
      if (!isset($_GET[date_edit])){
      // es wurde kein Komementar eingegeben
      $DatenOK = 0;
      $error .= Ein Eintrag ohne Komemntar mach nicht viel;
      $error .=  Sinn, oder?<br>\n;
      $daten[date_edit] = ;
     }
     else {
      $daten[date_edit] = $_GET[date_edit];
     }
    
      if (!isset($_GET[kommentar])){
      // es wurde kein Komementar eingegeben
      $DatenOK = 0;
      $error .= Ein Eintrag ohne Komemntar mach nicht viel;
      $error .=  Sinn, oder?<br>\n;
      $daten[kommentar] = ;
     }
     else {
      $daten[kommentar] = $_GET[kommentar];
     }
    
     if ($DatenOK){
      // Daten waren OK -> also in DB eintragen
      mysql_query(sprintf('insert into t_micom 
                    (id,titel,beschreibung,date_new,date_edit,kommentar)
                 VALUES (now(),%s,%s,%s,%s,%s,%s)',
    			addslashes($daten[id]),
    			addslashes($daten[titel]),
    			addslashes($daten[beschreibung]),
    			addslashes($daten[date_new]),
    			addslashes($daten[date_edit]),
    			addslashes($daten[kommentar])));
      echo mysql_error();
    
      // Alles eingetragen -> zurück zur Übersicht
      header('Location: http://'.$_SERVER[HTTP_HOST].
    	  substr($_SERVER[PHP_SELF],0,
    		 strrpos($_SERVER[PHP_SELF],'/'))
    	  .'/');
      // und fertig...
      die();
     }
    
    }
    else {
     $daten[id] = ;
     $daten[titel] = ;
     $daten[beschreibung] = ;
     $daten[date_new] = ;
     $daten[date_edit] = ;
     $daten[kommentar] = ;
    }
    ?>
    
    <html>
    <head>
    <title>Neuer Eintrag in unser GB</title>
    <style type=text/css>
    <!--
    .Stil1 {font-size: 2px}
    -->
    </style>
    </head>
    <body>
    <p>
     <?php
    if ($submit && !$DatenOK){
     // Das Formular wurde schon abgeschickt aber die Daten
     // waren nicht OK
     // -> Fehlermeldung ausgeben
     echo <h2>Fehler:</h2>\n;
     echo $error;
    }
    
    // Formular anzeigen
    ?>
    <form action=<?php echo $_SERVER[PHP_SELF];?> 
       method=GET>
    </p>
    <p> ID:
     <span class=Stil1>...</span>
     <input type=text name=id size=5 maxlength=5
     value=<?php echo $daten[id]; ?>>
     <span class=Stil1> ....</span>Titel: 
     <span class=Stil1>..</span>
     <input type=text name=titel size=50 maxlength=255
     value=<?php echo $daten[titel]; ?>>
     <br>
     Einstellung Testsystem: 
     <input type=text name=date_new size=10 maxlength=10
     value=<?php echo $daten[date_new]; ?>>
     <span class=Stil1> </span>Einstellung Echtsystem:
     <input type=text name=date_edit size=10 maxlength=10
     value=<?php echo $daten[date_edit]; ?>>
    <br><br>
     Beschreibung:<span class=Stil1> .......</span>Kommentar:<br>
     <textarea rows=10 cols=50 wrap=virtual name=kommentar>
    <?php echo $daten[kommentar]; ?> 
     </textarea>
     <span class=Stil1>........</span>
     <textarea rows=10 cols=50 wrap=virtual name=beschreibung>
    <?php echo $daten[beschreibung]; ?> 
     </textarea>
     <br><br>
     <input type=submit name=submit value=Absenden>
    </p>
    </body>
    </html>
    
    also mal von der etwas stil in html und soweiter abgesehen - ich habe keinen plan was er mir in zeile 98 bzw. 92 bemängelt. vielleicht sehe ich ja den wald vor lauter bäumen nicht mehr - doch für andere ist es unter umständen ein leichtes mein denkfehler zu finden?!!?

    gruß
    reik
     
  2. Code:
    <?php
    
    include(include_databasefunction.php);
    
    if (isset($_POST[submit])){
    // Der Submit - Button wurde gedrückt
    //      -> die Werte müssen überprüft
    // und bei Gültigkeit in die DB eingefügt werden
    
    	/**
    	* Damit keine leeren Werte kommen, z.B. nur ein Space ;-)
    	*/
    	foreach($_POST as $key => $val) {
    		$_POST[$key] = trim($val);	
    	}
    	
     // es gab noch keine Fehlermeldung
     $error = ;
    
     if (empty($_POST[id])){
      // es wurde kein ???? eingegeben
      $error .= Ein Eintrag ohne ???? Sinn, oder?<br>\n;
     }
     else {
      $sql .= id='.mysql_escape_string($_POST[id]).', ;
     }
     
     if (empty($_POST[titel])){
      // es wurde kein ???? eingegeben
      $error .= Ein Eintrag ohne ???? Sinn, oder?<br>\n;
     }
     else {
      $sql .= titel='.mysql_escape_string($_POST[titel]).', ;
     }
    
     if (empty($_POST[beschreibung])){
      // es wurde kein ???? eingegeben
      $error .= Ein Eintrag ohne ???? Sinn, oder?<br>\n;
     }
     else {
      $sql .= beschreibung='.mysql_escape_string($_POST[beschreibung]).', ;
     }
     
     if (empty($_POST[date_new])){
      // es wurde kein ???? eingegeben
      $error .= Ein Eintrag ohne ???? Sinn, oder?<br>\n;
     }
     else {
      $sql .= date_new='.mysql_escape_string($_POST[date_new]).', ;
     }
    
     if (empty($_POST[date_edit])){
      // es wurde kein ???? eingegeben
      $error .= Ein Eintrag ohne ???? Sinn, oder?<br>\n;
     }
     else {
      $sql .= date_edit='.mysql_escape_string($_POST[date_edit]).', ;
     }
    
     if (empty($_POST[kommentar])){
      // es wurde kein Komementar eingegeben
      $error .= Ein Eintrag ohne Komementar Sinn, oder?<br>\n;
     }
     else {
      $sql .= kommentar =->.mysql_escape_string($_POST[kommentar]).', ;
     }
    
     if (empty($error)){
      // Daten waren OK -> also in DB eintragen
    		$query = INSERT INTO t_micom SET .$sql;
    		$query = @ereg_replace(,$, , trim($query));
    		mysql_query($query);
      echo mysql_error();
    
      // Alles eingetragen -> zurück zur Übersicht
      header('Location: http://'.$_SERVER[HTTP_HOST].
    	  substr($_SERVER[PHP_SELF],0,
    		 strrpos($_SERVER[PHP_SELF],'/'))
    	  .'/');
      // und fertig...
      die();
     }
    
    }
    else {
     $_POST = false;
    }
    ?>
    
    <html>
    <head>
    <title>Neuer Eintrag in unser GB</title>
    <style type=text/css>
    <!--
    .Stil1 {font-size: 2px}
    -->
    </style>
    </head>
    <body>
    <p>
     <?php
    if ($_POST[submit] && $error != ){
     // Das Formular wurde schon abgeschickt aber die Daten
     // waren nicht OK
     // -> Fehlermeldung ausgeben
     echo <h2>Fehler:</h2>\n;
     echo $error;
    }
    
    // Formular anzeigen
    ?>
    <form action=<?php echo $_SERVER[PHP_SELF];?> method=POST>
    </p>
    <p> ID:
     <span class=Stil1>...</span>
     <input type=text name=id size=5 maxlength=5
     value=<?php echo $_POST[id]; ?>>
     <span class=Stil1> ....</span>Titel: 
     <span class=Stil1>..</span>
     <input type=text name=titel size=50 maxlength=255
     value=<?php echo $_POST[titel]; ?>>
     <br>
     Einstellung Testsystem: 
     <input type=text name=date_new size=10 maxlength=10
     value=<?php echo $_POST[date_new]; ?>>
     <span class=Stil1> </span>Einstellung Echtsystem:
     <input type=text name=date_edit size=10 maxlength=10
     value=<?php echo $_POST[date_edit]; ?>>
    <br><br>
     Beschreibung:<span class=Stil1> .......</span>Kommentar:<br>
     <textarea rows=10 cols=50 wrap=virtual name=kommentar>
    <?php echo $_POST[kommentar]; ?> 
     </textarea>
     <span class=Stil1>........</span>
     <textarea rows=10 cols=50 wrap=virtual name=beschreibung>
    <?php echo $_POST[beschreibung]; ?> 
     </textarea>
     <br><br>
     <input type=submit name=submit value=Absenden>
    </p>
    </body>
    </html>
    
    Habs ma auf POST umgebaut, sonst kann dir jeder Hanswurst über die Adresszeile das GB füllen ;)
    Zusätzlich hab ich noch ne foreach Schleife reingebaut in der Leerräume vor und hinter dem String entfernt werden.
    Ansonsten könnte das Formular abgeschickt werden wenn in jedem Feld nur ein Leerschritt (Space) drinn ist ;)


    !! Nicht getestet, nur ma so frei Schnauze gemacht ;) !!



    Nachtrag:

    Naja, und ob der User die ID selbst eintragen muss wage ich stark zu bezweifeln ;)

    Noch ein Nachtrag ;)

    Wenn du das so schreibst:
    Code:
     <textarea rows=10 cols=50 wrap=virtual name=kommentar>
    <?php echo $_POST[kommentar]; ?> 
     </textarea>
    
    hast du pauschal eine Leerzeile/Break in deiner Textarea.
    So ist es korrekt:
    Code:
     <textarea rows=10 cols=50 wrap=virtual name=kommentar><?php echo $_POST[kommentar]; ?></textarea>
    
     
  3. hi PCDConny,

    danke erstmal fürs durchgucken - ich werde das gleich ausprobieren und so.

    doch der user soll die id eintragen - wie ich schon sagte ich habe das ganze eigentlich geklaut wo und an meine bedürfnisse angepasst (da ich eigentlich garnicht programmieren kann aber naja ...)

    gruß
    reik

    UPDATE:

    ok geändert und funktioniert!!! als nächstes müsste ich das so umbasteln das ich einen datensatz verändere. mal sehen ob ich das selbst hinkriege ....

    nochmal danke für deine hilfe PCDConny
     
Die Seite wird geladen...

daten per php-forumlar in db - Ähnliche Themen

Forum Datum
Datenrettung /sicherung Windows 10 Forum 22. Sep. 2016
Windows upgrade und datenverlust!? Windows 10 Forum 5. Juli 2016
Import Datensatz inkl = und - Zeichen in Excel/Libre CALC Software: Empfehlungen, Gesuche & Problemlösungen 20. Mai 2016
Datenrettung nach CRC-Fehler Datenwiederherstellung 18. Mai 2016
Windows 10 Build 10240 läßt sich nicht auf das Herbst-Updates updaten. Windows 10 Forum 7. Mai 2016