# Daten über Formular in SQL Datenbank eintragen



## Leyrana (10. August 2004)

Hallo zusammen!

Also ich bin absolut überfragt... 
Ich habe mich auch schon durch unzählige Hilfeseiten gelesen und bin hier im Forum so ziemlich alles durchgegangen aber so recht hilfreich war alles nicht.

Ich möchte über ein Formular Daten in eine SQL-Datenbank eintragen.
Für Testzwecke habe ich XAMPP auf meinem Rechner installiert und mein Skript funktioniert auch lokal. Die Daten werden einwandfrei in meine lokale Datenbank eingetragen.
Aber, und das ist das wundersame....
Ich habe mir zum Test bei Lycos.de PHP und MySQL freigeschalten und eine einfache Datenbank erstellt und das passende Script hochgeladen und auf einmal kann ich eben keine Daten mehr eintragen.

Meine Vermutungen sind, dass ich entweder keine Schreibrechte vergeben habe
(wenn das so sein sollte, habe ich keine Ahnung wie ich das mache)
oder irgendetwas stimmt mit der if-Abfrage nicht...

[vereinfachte Datenbankstruktur: Id int, Name varchar(20), Vorname varchar(20)]

Mein Skript:

<html>
<head>
<?php
   if ($gesendet)
   {
      $db = mysql_connect("localhost", "username", "");
      mysql_select_db("datenbank", $db);

      $sqlab = "insert test";
      $sqlab .= "(vorname, name) values ";
      $sqlab .= "('$vn', '$na')";

      mysql_db_query("datenbank", $sqlab);

      $num = mysql_affected_rows();
      if ($num>0)
         echo "Es wurde 1 Datensatz hinzugefügt<p>";
      else
      {
         echo "Es ist ein Fehler aufgetreten, ";
         echo "es wurde kein Datensatz hinzugefügt<p>";
      }
      mysql_close($db);
   }
?>
</head>

<body>
Geben Sie einen vollständigen Datensatz ein und senden Sie das 
Formular ab:
<form action = "eingabe.php" method = "post">
    <input name="na"> Name<p>
    <input name="vn"> Vorname<p>

    <input type="submit" name="gesendet" value="Senden">
    <input type="reset">
</form>

</body>
</html>

Vielen Dank für Hilfe schon mal im Vorraus!

P.S. Habe das Skript auch bei einem Freund auf einem Linux Rechner getestet. Da habe ich das gleiche Problem...

mfg
Leyrana


----------



## Chino (10. August 2004)

> _Original geschrieben von Leyrana _
> *Hallo zusammen!
> 
> Also ich bin absolut überfragt...
> Ich habe mich auch schon durch unzählige Hilfeseiten gelesen und bin hier im Forum so ziemlich alles durchgegangen aber so recht hilfreich war alles nicht. *


 Sorry, aber das kann nicht sein. Das Problem wurde allein hier im Forum mehrmals besprochen.

Selbst wenn Du nicht weisst woran es liegt, hätte ein Blick in die PHP-FAQ auf jedenfall geholfen:



> Ich kann nach Abschicken des Formulars nicht auf meine Variablen zugreifen, was tun?



http://de3.php.net/manual/de/ini.sect.data-handling.php#ini.register-globals 

Und bitte nicht falsch verstehen, das ist nicht böse gemeint, aber es kann schon etwas nervend sein, wenn man, gerad zu dem "Standard-Problem" schlechthin immer wieder die gleichen Fragen hier sieht.


----------



## Leyrana (10. August 2004)

naja nen Vollprofi mag das langweilen, aber ein Anfänger steigt halt nicht gleich bei allen Topics durch.

habe mir die Seiten auch angesehen, aber nicht wirklich die Lösung für mein Problem gefunden.

Allerdings habe ich jemanden gefunden der mit mir mein Skript durchgegangen ist und abgeändert hat.

Also Problem gelöst für's erste 

Danke trotzdem

mfg
Leyrana


----------



## Ben Ben (11. August 2004)

Ich weiss ja nicht wie der "Durchgänger" es abgeändert hat, aber den Hinweis bezüglich register Globals von Chino solltest du dir für deine Zukunft zu Herzen nehmen und auf OFF stellen.

Was den Code auch noch verschönern würde, wären @ s vor Anweisungen wie mysql_query (ausser beim Debuggebn, wenn das Script noch nicht fertig ist), sowie or die und ähnliche Konstrukte um Fehler nach eigener Definition abzufangen und zu melden:

Beispiel:


```
$sth = @mysql_query("SELECT....") or die("Fehler: ".mysql_error());
```


----------

