Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Wo ist der Fehler im Script?
Frage
[code]
<html>
<head>
<?php
if ($gesendet)
{
$db = mysql_connect("localhost", "user", "passwort") or die("Datenbank konnte nicht konnektiert werden!");
mysql_select_db("datenbank") or die("Fehler beim Öffnen der Datenbank! Sie haben nicht die entsprechenden Dateirechte vergeben.");
$sqlab = "insert tl_claninfo";
$sqlab .= "(clank, clanl, leader, mail,";
$sqlab .= " icq, passwort, homepage) values ";
$sqlab .= "('$clank', '$clanl', $leader, $mail, '$icq', '$passwort', '$homepage')";
mysql_db_query("tl_claninfo", $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="clank"> Clan-Kürzel<p>
<input name="clanl"> Clanname<p>
<input name="leader"> Leader<p>
<input name="mail"> mail des Leaders<p>
<input name="icq"> Icq des Leaders<p>
<input name="passwort"> gewünschtes Passwort<p>
<input name="homepage"> Homepage<p>
<input type="submit" name="gesendet">
<input type="reset">
</form>
Alle Datensätze <a href="uf04.php">anzeigen</a>
</body>
</html>
beachten ![/code]
Antwort 1 von semi
Bei der Methode POST im Formular musst Du die übergebenen Daten aus dem Hashtable (assoziatives Array) $_POST auslesen (gilt ab PHP 4.2)
z.B:
z.B:
$clank = $_POST['clank'];
$clanl = $_POST['clanl'];
$leader = $_POST['leader'];
usw.
Antwort 2 von CAMEL
hmmm....
das ist aber komisch, da ich mir ein PHP 4.0 Buch gekauft habe, wo das so ungefähr drin stand.
Aber wenn du so nett bist, kannst du das Script so ändern, das es richtig ist und mir per mail schicken?
Wäre super nett
Danke
das ist aber komisch, da ich mir ein PHP 4.0 Buch gekauft habe, wo das so ungefähr drin stand.
Aber wenn du so nett bist, kannst du das Script so ändern, das es richtig ist und mir per mail schicken?
Wäre super nett
Danke
Antwort 3 von semi
Sag lieber, was nicht funktioniert ich habe keine Lust extra irgendwelche Datenbanken dafür anzulegen.
Gibt es irgendwelche Fehlermeldungen?
Ändere mal zum Test den Eintrag: method = "post" in method = "get".
Gibt es irgendwelche Fehlermeldungen?
Ändere mal zum Test den Eintrag: method = "post" in method = "get".
Antwort 4 von CAMEL
Er gibt nur das hier aus
Es ist ein Fehler aufgetreten, es wurde kein Datensatz hinzugefügt
Es ist ein Fehler aufgetreten, es wurde kein Datensatz hinzugefügt
Antwort 5 von semi
Hast Du es mit method="get" versucht? Nanu?
Antwort 6 von CAMEL
ja, habe ich versucht, kommt immer noch der Fehler
hier wie die Tabelle aufgebaut ist, vielleicht ist da ein Fehler drin
hier wie die Tabelle aufgebaut ist, vielleicht ist da ein Fehler drin
Feld Typ Attribute Null Standard Extra Aktion
id int(11) Nein auto_increment Ändern Löschen Primärschlüssel Index Unique Volltext
clank char(55) Nein Ändern Löschen Primärschlüssel Index Unique Volltext
clanl char(55) Nein Ändern Löschen Primärschlüssel Index Unique Volltext
leader char(55) Nein Ändern Löschen Primärschlüssel Index Unique Volltext
mail char(55) Nein Ändern Löschen Primärschlüssel Index Unique Volltext
icq int(11) Ja NULL Ändern Löschen Primärschlüssel Index Unique Volltext
passwort char(10) Nein Ändern Löschen Primärschlüssel Index Unique Volltext
homepage char(55) Nein Ändern Löschen Primärschlüssel Index Unique Volltext
markierte: Oder
Antwort 7 von semi
Nur ein Feld kann einen Primärschlüssel haben.
Was für Server setzt Du ein? mySQL?
Versuche das hier:
Was für Server setzt Du ein? mySQL?
Versuche das hier:
echo "clank=$clank<br><br>";
echo $sqlab . "<br><br>";
mysql_query ($sqlab, $db)
or die (mysql_error());
an Stelle von mysql_db_query("tl_claninfo", $sqlab);Antwort 8 von semi
Noch etwas. Erst jetz ist es mir aufgefallen.
Was für ein Buch war das, wo so viel Unsinn drin steht?
Was für ein Buch war das, wo so viel Unsinn drin steht?
<head>
<?php
...
...
?>
</head>
Das würde bedeuten, dass die Ausgabe im Head-Bereich der Seite erfolgt! Antwort 9 von semi
Du hast Email.
Antwort 10 von draack
Hi!
@semi: Unsinn. Natürlich kann ein Primärschlüssel über mehrere Felder gehen (Kombinationsschlüssel).
POST ist GET bei Formularfeldern IMMER vorzuziehen. GET erlaubt nur eine (sehr) begrenzte Datenmenge - da es über die URL kodiert wird (was wiederum eigene Probleme mit sich bringt).
@CAMEL: Bitte nicht einfach den HTML-Text von MyPHPAdmin kopieren. Wenn Du die Beschreibung einer Tabelle brauchst, gibst Du besser "DESC <Tabellenname>" in der SQL-Box ein. Was Du produziert hast, ist komplett unverständlich.
Lass Dir doch einfach mal mit
Die Ausgabe von Text im <head>-Bereich ist wirklich Unsinn.
Ciao!
Volker.
@semi: Unsinn. Natürlich kann ein Primärschlüssel über mehrere Felder gehen (Kombinationsschlüssel).
POST ist GET bei Formularfeldern IMMER vorzuziehen. GET erlaubt nur eine (sehr) begrenzte Datenmenge - da es über die URL kodiert wird (was wiederum eigene Probleme mit sich bringt).
@CAMEL: Bitte nicht einfach den HTML-Text von MyPHPAdmin kopieren. Wenn Du die Beschreibung einer Tabelle brauchst, gibst Du besser "DESC <Tabellenname>" in der SQL-Box ein. Was Du produziert hast, ist komplett unverständlich.
Lass Dir doch einfach mal mit
echo $sqlab; anzeigen, welches SQL-Statement wirklich zusammengebaut wird.Die Ausgabe von Text im <head>-Bereich ist wirklich Unsinn.
Ciao!
Volker.
Antwort 11 von semi
@draack
Ist klar, dass man einen zusammengesetzten Primärschlüssel verwenden kann. Aber nicht jedes Feld getrennt als Primärschlüsselfeld deklarieren.
So sieht es aber in Antwort 6 aus.
Ist klar, dass man einen zusammengesetzten Primärschlüssel verwenden kann. Aber nicht jedes Feld getrennt als Primärschlüsselfeld deklarieren.
So sieht es aber in Antwort 6 aus.
Antwort 12 von hollowsphere
Hi Camel,
nehme mal an, Du hast das Skript oben 1:1 vom Original kopiert. Dann fehlen im Insert-Befehl bei den Variablen $leader und $mail die Hochkommata.
Gruss Andreas
nehme mal an, Du hast das Skript oben 1:1 vom Original kopiert. Dann fehlen im Insert-Befehl bei den Variablen $leader und $mail die Hochkommata.
Gruss Andreas

