Fehler beim Ansprechen der MySQL Datenbank

atlantyz

Erfahrenes Mitglied
Hallo Leute,

ich schreibe ein Script, bei dem der Benutzer Angaben zu einem Drucker macht und diese werden dann in eine Datenbank eingetragen. Nun habe ich die Eingabemaske schon fertig, übermittle das ganze, aber anstatt es in die MySQL Tabelle einzutragen, bekomme ich nur eine weiße, leere Seite. Keine Fehlermeldung, nix. Die Daten sind aber auch nicht in die Tabelle eingetragen worden. Kann sich jemand mal mein Script anschauen, ob es einen Fehler enthält?

Ich bin das Ganze schon mehrmals durchgegangen, kann aber einfach keinen Fehler entdecken. Die Verbindung zur Datenbank funktioniert, es muss also irgendwas bei der Übermittlung schief gehen.

Das Script um die Angaben zu dem neuen Drucker einzugeben:

Code:
<html>
<head>
  <title>Neuen Drucker eintragen</title>
  <LINK href="../global/css/inc.layout.css" rel="stylesheet" type="text/css">
</head>

<body>
  <h1>Neuen Drucker eintragen</h1>

  <?
    include ("db_tools.php");
    $lk=xconnect();
  ?>
      
  <form action="new_insert.php" method="post">
  <table border=0 cellpadding=2 cellspacing=2><tr>
    <td bgcolor=#D0D0D0>Drucker-Hersteller</td>
    <td bgcolor=#E8E8E8>
    <select name="hersteller" size="1">
      <option>HP</option>
      <option>Canon</option>
      <option>Brother</option>
      <option>Lexmark</option>
      <option>Epson</option>
      <option>OKI</option>
      <option>Kyocera</option>
    <td bgcolor=#D0D0D0>Typ</td>
    <td bgcolor=#E8E8E8>
    <select name="typ" size="1">
      <option>Tintenstrahl</option>
      <option>Laser s/w</option>
      <option>Laser Farbe</option>
      <option>Nadeldrucker</option>
      <option>Sonstige</option>
    </select>
    <td bgcolor=#D0D0D0>Anschluss</td>
    <td bgcolor=#E8E8E8>
    <select name="anschluss" size="1">
      <option>USB</option>
      <option>Netz</option>
      <option>seriell</option>
      <option>parallel</option>
  </tr><tr>
    <td bgcolor=#D0D0D0>Drucker-Bezeichnung</td>
    <td bgcolor=#E8E8E8><input name="modell" type="text" size="15" maxlength="30"></td>
    <td bgcolor=#D0D0D0>Seriennummer</td>
    <td bgcolor=#E8E8E8><input name="serial" type="text" size="15" maxlength="30"></td>
    <td bgcolor=#D0D0D0>Printserver</td>
    <td bgcolor=#E8E8E8>
       <input type="radio" name="printserver" value="J"> Ja
       <input type="radio" name="printserver" value="N" checked> Nein
  </tr><tr>
    <td bgcolor=#D0D0D0>Hauptbenutzer</td>
    <td bgcolor=#E8E8E8><input name="benutzer" type="text" size="12" maxlength="25"></td>
    </td>
    <td bgcolor=#D0D0D0>Standort</td>
    <td bgcolor=#E8E8E8><input name="standort" type="text" size="15" maxlength="20"></td>
    <td bgcolor=#D0D0D0>IP</td>
    <td bgcolor=#E8E8E8><input name="ip" type="text" size="15" maxlength="15"></td>
  </tr></table> 
  <br>
    
  <table border=0 cellpadding=0 cellspacing=0>
  <tr><td valign=\"top\">    
    
  
    
  <!-- // ############################################ Kauf ################################## -->
        
 </td></tr></table>
    
    <br><br>
    
    <table border="0" width="75%">
    <tr>
    	<td>
    
    	<table border="0">
    	<tr>
	    	<td bgcolor=#D0D0D0>gekauft am:</td>
	    	<td bgcolor=#E8E8E8 colspan=2><input type="text" name="kauf_am">&nbsp;&nbsp;&nbsp;&nbsp;</td>
    	</tr>
    	<tr>
	    	<td bgcolor=#D0D0D0>gekauft bei:</td>
	    	<td bgcolor=#E8E8E8 colspan=2><input type="text" name="kauf_bei"></td>
    	</tr>
    	<tr>
	    	<td bgcolor=#D0D0D0>Finanzierung:</td>
	    	<td bgcolor=#E8E8E8 colspan=2><input type="text" name="finanziert"></td>
    	</tr>
    	</table>
	
	</td>
	<td>
	Bemerkung:<br>
    	<textarea name="bemerkung" cols="50" rows="4"></textarea>
	</td>
     </tr>
     </table>
 
  <p>&nbsp;</p>
  <input type="submit" value="OK"> &nbsp;
  <input type="reset" value=" Alle eingegebenen Daten wieder löschen und nochmal von vorne anfangen "> 
  </form>
</body>
</html>

Das Script, dass die Daten übermittelt:
Code:
<html>
<head>
</head>
<body>
  <?
    include ("db_tools.php");
    $lk=xconnect();
    $db="inventur-drucker";
    $fehler=0;
    if (isset ($HTTP_POST_VARS)) {
      reset ($HTTP_POST_VARS);
      foreach ($HTTP_POST_VARS as $k=>$elem) {
        ${"e_$k"}=$elem;
      }
    }
    else {
      echo "<h1>Fehler!</h1>";
      echo "<b>Diese Seite sollte nicht direkt aufgerufen werden</b>";
      echo "<form action=\"list_drucker.php\" method=\"POST\"><input type=submit value=\"Zurück\"></form>";
      exit;
    }
    if (! $e_typ) {
      echo "<h1>Fehler!</h1>";
      echo "<b>Diese Seite sollte nicht direkt aufgerufen werden!2</b>";
      echo "<form action=\"list_drucker.php\" method=\"POST\"><input type=submit value=\"Zurück\"></form>";
      exit;
    }
    
    $datum=date("Y-m-d");
    $sql="INSERT INTO geraet VALUES ('','$e_hersteller','$e_modell','$e_typ','$e_standort',";
    $sql.="'$e_benutzer','$e_serial','$e_anschluss','$e_ip','$e_printserver','$e_bemerkung',";
    $sql.="'$e_kauf_am','$e_kauf_bei','$e_finanziert','$datum');";
    
    $res=send_sql ($db,$sql); 
    if (! $res) $fehler++;
    $iid=mysql_insert_id ($lk);

    }
    
    if ($fehler) {
      echo "<h1>Fehler!</h1>";
      echo "Datenübermittlung ist fehlgeschlagen in $fehler Fällen!<br>";
      echo "Bitte wiederholen und evtl. vorhandene Teildaten löschen!";
      echo "<form action=\"list_drucker.php\" method=\"POST\"><input type=submit value=\"Zurück\"></form>";
    }
    else {
      echo "<h1>Aktion erfolgreich</h1>";
      echo "<p>Datenübermittlung ist fehlerfrei abgeschlossen!<br>";
      echo "Bitte nächste Aktion wählen: </p>";
      echo "<table><tr><td>";
      echo "<form action=\"list_drucker.php\" method=\"POST\"><input type=submit value=\"Zurück\"></form>";
      echo "</td><td>";
      echo "<form action=\"new_drucker.php\" method=\"POST\"><input type=submit value=\"Neuen Drucker erfassen\"></form>";
      echo "</td></tr></table>";
    }      
  
    foreach ($output as $out) {
	echo $out."<br>";
    }

  ?>
</body>  
</html>
 
das ist db_tools. Das funktioniert aber, weil die Suche das auch benutzt und da bekomme ich ein Ergebnis.

Code:
<?
    function xconnect() {
      global $MySQL_Host, $MySQL_User, $MySQL_Passw;
      $MySQL_Host="localhost";
      $MySQL_User="inventur";
      $MySQL_Passw="123456";
      if (! $linkid=mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw")) {
        echo "Die Verbindung zur Datenbank konnte nicht hergestellt werden<br>";
        exit;
      }
      return $linkid;
    }
  
    function send_sql($db, $sql) {
      if (! $res=mysql_db_query($db, $sql)) {
        echo mysql_error();
        exit;
      }
      return $res;
    }
?>
 
Ich bekomm da keine Fehler ausgegeben... auch wenn ich an allen Stellen diese mysql_error Funktion einfüge...
 
Gib deinen Query per echo aus und probiere den
Befehl dann in phpMyAdmin oder ähnlichem aus.
 
In der Query bekomm ich auch nix angezeigt... oder ich hab den Befehl falsch.

Code:
$datum=date("Y-m-d");
    $sql="INSERT INTO geraet VALUES ('','$e_hersteller','$e_modell','$e_typ','$e_standort',";
    $sql.="'$e_benutzer','$e_serial','$e_anschluss','$e_ip','$e_printserver','$e_bemerkung',";
    $sql.="'$e_kauf_am','$e_kauf_bei','$e_finanziert','$datum');";
    echo mysql_query($sql);
 
In der Query bekomm ich auch nix angezeigt... oder ich hab den Befehl falsch.

Code:
$datum=date("Y-m-d");
    $sql="INSERT INTO geraet VALUES ('','$e_hersteller','$e_modell','$e_typ','$e_standort',";
    $sql.="'$e_benutzer','$e_serial','$e_anschluss','$e_ip','$e_printserver','$e_bemerkung',";
    $sql.="'$e_kauf_am','$e_kauf_bei','$e_finanziert','$datum');";
    echo mysql_query($sql);
Es reicht einfach:
PHP:
echo $sql;
Das was dann am Bildschirm erscheint, gibst du in phpMyAdmin oder ähnliches ein.
 
Bekomm ich auch nix angezeigt... auch wenn ich echo "Hallo"; schreibe nicht... aber die Seite wird von der vorherigen aufgerufen, das steht wenigstens oben im Browser.
 
Nimm mal folgendes, ganz oben, in deine Datei:
PHP:
  <?
    error_reporting( E_ALL | E_STRICT );
    var_dump( $_POST );
    include ("db_tools.php");
 
Zurück