Seite 1 von 2

grosses Problem mit einem Script

Verfasst: 31.12.2006 01:35
von Amiga
Hallo Leute

Also, ich habe da ein Script welches bisher immer einwandfrei lief. Dann waren Formatierungen drin, welche ich gelöscht habe. Seither geht es nicht mehr. Diese Formatierungen waren aber nur für die grösse der Zellen, hat also nichts mit dem Code selber zu tun. Ich habe danach sogar wieder das Original getestet, ging auch nicht mehr. Da ich diese Dateien nicht mehr habe, kann ich es aber jetzt leider nicht mehr Rekonstruieren.

Das ganze besteht aus drei Dateien. Die erste Datei ist eine Eingabemaske. Die zweite Datei sollte das ganze in die MySQL Datenbank übertragen und die dritte Datei liest mir die Datenbank aus.

Die Eingabemaske funktioniert einwandfrei, auch das auslesen der DB funktioniert, nur beim Eintragen in die DB geht irgendwas nicht.
Hier mal der Code dieser Datei, die das ganze in die DB eintragen müsste.
An der MySQL Datenbank habe ich wissentlich nichts geändert.

Hoffe ihr könnt mir helfen, ich bin mit meinem Latein schon lange am Ende.

Code: Alles auswählen

<html>
<body>
<head>
<title>Hier steht der Titel</title>
</head>
<style type="text/css">
td
{
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:9pt;
}

.td_fett
{
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:9pt;
font-weight:bold;
}

</style>
<?
$server="localhost";
$Benutzer="BENUTZER";
$Kennwort="PASSWORT";
$verbindung=mysql_connect ($server, $Benutzer, $Kennwort);


mysql_select_db("DATABASE", $verbindung);

$sql_eintrag ="INSERT INTO global (Marke, Modell, Auflösung, analog Zoom, digital Zoom, Displaygroesse, Gewicht, DSLR, Sensortyp, MMC, Compact Flash, Memory Stick, SD, Foto) VALUES ('$Marke','$Modell','$Auflösung','$analog Zoom','$digital Zoom','$Displaygrösse','$Gewicht','$DSLR','$Sensortyp','$MMC','$Compact Flash','$Memory Stick','$SD','$Foto')";
$eintrag = mysql_query($sql_eintrag, $verbindung);
$sql = "select * from global";
$ergebnis = mysql_query($sql, $verbindung);
echo "<br><br>Danke für den Eintrag";
echo "<br><br>","Du hast folgende Daten eingegeben:<br><br>";

echo "<table width=400 border=1>";
echo "<tr>";
echo "<td class='td_fett' width=200>Marke","</td>","<td width=200>",$Marke,"</td><tr>";
echo "<td class='td_fett' width=200>Modell","</td>","<td width=200>",$Modell,"</td><tr>";
echo "<td class='td_fett' width=200>Auflösung","</td>","<td width=200>",$Auflösung,"</td><tr>";
echo "<td class='td_fett' width=200>analogZoom","</td>","<td width=200>",$analog_Zoom,"</td><tr>";
echo "<td class='td_fett' width=200>digital Zoom","</td>","<td width=200>",$digital_Zoom,"</td><tr>";
echo "<td class='td_fett' width=200>Displaygrösse","</td>","<td width=200>",$Displaygroesse,"</td><tr>";
echo "<td class='td_fett' width=200>Gewicht","</td>","<td width=200>",$Gewicht,"</td><tr>";
echo "<td class='td_fett' width=200>DSLR","</td>","<td width=200>",$DSLR,"</td><tr>";
echo "<td class='td_fett' width=200>Sensortyp","</td>","<td width=200>",$Sensortyp,"</td><tr>";
echo "<td class='td_fett' width=200>MMC","</td>","<td width=200>",$MMC,"</td><tr>";
echo "<td class='td_fett' width=200>Compact Flash","</td>","<td width=200>",$Compact_Flash,"</td><tr>";
echo "<td class='td_fett' width=200>Memory Stick","</td>","<td width=200>",$Memory_Stick,"</td><tr>";
echo "<td class='td_fett' width=200>SD","</td>","<td width=200>",$SD,"</td><tr>";
echo "<td class='td_fett' width=200>Foto","</td>","<td width=200>",$SD,"</td><tr>";
echo "</table>";

while($row = mysql_fetch_object($ergebnis))
{
echo "<p>";
}

mysql_free_result($ergebnis);
mysql_close($verbindung);
?>

</body>
</html>
Ach ja, was komisch ist. Mit meinem Editor haben die ganzen Befehle Farben. Das While ist seit neustem Schwarz und nicht mehr in Farbe. Ich vermute es hat was damit zu tun, finde aber nirgends einen Codefehler.

Verfasst: 31.12.2006 03:35
von cYbercOsmOnauT
Hallo auch,

mach mal in allen echo-Zeilen aus den , ein . und siehe da, die Fehler gehören der Vergangenheit an. ;)

Der Punkt verbindet zwei Strings, nicht ein Komma.

Grüße,
Tekin

Verfasst: 31.12.2006 10:07
von Amiga
cYbercOsmOnauT hat geschrieben:Hallo auch,

mach mal in allen echo-Zeilen aus den , ein . und siehe da, die Fehler gehören der Vergangenheit an. ;)

Der Punkt verbindet zwei Strings, nicht ein Komma.

Grüße,
Tekin
Du meinst am Ende der jeweiligen Zeilen das ; was ich in einen . ersetzen soll?

Ich kann mir nicht vorstellen das es daran liegt, denn wie gesagt, der Script lief ja vorhin und genau der gleiche Script ist auf einer anderen Webseite drauf und läuft einwandfrei und dort sind die ; auch vorhanden.

Verfasst: 31.12.2006 10:34
von BB-BF-BM
nein, er meint wirklich die Kommas,. z.B. aus
echo "<td class='td_fett' width=200>Marke","</td>","<td width=200>",$Marke,"</td><tr>";
sollst du
echo "<td class='td_fett' width=200>Marke"."</td>"."<td width=200>".$Marke."</td><tr>";
machen

Verfasst: 31.12.2006 12:01
von Amiga
Ja ok, werde ich nachher machen.
Aber ich denke daran kann es nicht liegen. Denn die waren vorhin schon drin und vorhin hats geklappt und das Original File das ich als Ausangslage hierfür genommen habe hat auch die , drin und es geht.

Aber wie gesagt, jetzt Frühstücke ist erstmal, ja ist ein bischen spät ich weiss, und dann werde ich es testen.

Verfasst: 31.12.2006 13:14
von larsneo

Code: Alles auswählen

$sql_eintrag ="INSERT INTO global (Marke, Modell, Auflösung, analog Zoom, digital Zoom, Displaygroesse, Gewicht, DSLR, Sensortyp, MMC, Compact Flash, Memory Stick, SD, Foto) VALUES ('$Marke','$Modell','$Auflösung','$analog Zoom','$digital Zoom','$Displaygrösse','$Gewicht','$DSLR','$Sensortyp','$MMC','$Compact Flash','$Memory Stick','$SD','$Foto')"; 
ohne weiter validierung der eingabewerte ist das ja geradezu eine einladung via sql-injektion in die db zu schreiben :roll:

Verfasst: 31.12.2006 15:45
von Amiga
larsneo hat geschrieben:

Code: Alles auswählen

$sql_eintrag ="INSERT INTO global (Marke, Modell, Auflösung, analog Zoom, digital Zoom, Displaygroesse, Gewicht, DSLR, Sensortyp, MMC, Compact Flash, Memory Stick, SD, Foto) VALUES ('$Marke','$Modell','$Auflösung','$analog Zoom','$digital Zoom','$Displaygrösse','$Gewicht','$DSLR','$Sensortyp','$MMC','$Compact Flash','$Memory Stick','$SD','$Foto')"; 
ohne weiter validierung der eingabewerte ist das ja geradezu eine einladung via sql-injektion in die db zu schreiben :roll:
Und was heist das auf Deutsch? Nur weil ich an einem solchen Script Arbeite heist das noch lange nicht das ich Programmiersprache verstehe. Also, was heist Validierung der Werte? Was soll ich da noch machen?


Was das ersetzen der , durch . angeht, das ist wie ich vermutet habe, keine Änderung. Das heist, das Problem ist noch immer da.

Verfasst: 31.12.2006 17:01
von larsneo
wo und wie sollen die werte, die du versuchst in die datenbank zu schreiben denn eigentlich herkommen?
scheinbar verlässt du dich da auf register_globals=on und begibst dich so auch gleichzeitig in die gefahr das man dem script quasi beliebige werte unterschieben kann die dann direkt in die datenbank geschrieben werden.
lesestoff: *klick*/*klack*

Verfasst: 31.12.2006 19:00
von Amiga
Ich denke mal dem ist auch so. Es sind wie bereits ganz am Anfang beschrieben drei Scripte.

Hier nochmals der Text welcher in meinem ersten Posting steht:

Das ganze besteht aus drei Dateien. Die erste Datei ist eine Eingabemaske. Die zweite Datei sollte das ganze in die MySQL Datenbank übertragen und die dritte Datei liest mir die Datenbank aus.

Ich denke damit ist deine Frage woher die Daten kommen beantwortet?

Deinen Link werde ich nachher mal anklicken und durchlesen.

Verfasst: 31.12.2006 19:28
von FCM
larsneo hat geschrieben:

Code: Alles auswählen

$sql_eintrag ="INSERT INTO global (Marke, Modell, Auflösung, analog Zoom, digital Zoom, Displaygroesse, Gewicht, DSLR, Sensortyp, MMC, Compact Flash, Memory Stick, SD, Foto) VALUES ('$Marke','$Modell','$Auflösung','$analog Zoom','$digital Zoom','$Displaygrösse','$Gewicht','$DSLR','$Sensortyp','$MMC','$Compact Flash','$Memory Stick','$SD','$Foto')"; 
ohne weiter validierung der eingabewerte ist das ja geradezu eine einladung via sql-injektion in die db zu schreiben :roll:
Ja, jeder weiß eben nicht so viel wie du :o Warum sagst du nicht einfach, wie es geht, anstatt groß die Augen zu rollen?