• 21.08.2025, 17:50
  • S’inscrire
  • Connexion
  • Vous n’êtes pas connecté.

 

möchtewissen

Junior Member

PHP/HTML Skript problem!

mardi 1 février 2011, 20:49

Ich habe in diesem Skript einen kleinen Fehler ,,angeblich" sollte er in Linie 82 sein:



<html>
<head>
<title>
Umfrage eingeben
</title>
<link rel="StyleSheet" type="text/css" href="styles.css" />
</head>
<body>
<?php
error_reporting(0);
$submit = $_GET["submit"];
$frage = $_GET["frage"];
$antwort1 = $_GET["antwort1"];
$antwort2 = $_GET["antwort2"];
$antwort3 = $_GET["antwort3"];
if (!$submit)
{
?>
<table border="0" cellspacing="5" cellpadding="5">
<tr>
<td>
<form action="eingabe.php" method="get">
<table cellspacing="5">
<tr>
<td><div>Umfrage Titel</div></td>
<td>
<input type="Text" name="frage" size="26" />
</td>
</tr>
<tr>
<td><div> Antwort 1</div></td>
<td>
<input type="Text" name="antwort1" size="26" />
</td>
</tr>
<tr>
<td><div>Antwort 2</div></td>
<td>
<input type="Text" name="antwort2" size="26" />
</td>
</tr>
<tr>
<td><div>Antwort 3</div></td>
<td>
<input type="Text" name="antwort3" size="26" />
</td>
</tr>
<tr>
<td align="right" colspan="2">
<input type="submit" name="submit"
value="Umfrage erstellen" />
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<?php
}
else
{
include("include.php");
$connection = mysql_connect($server, $user, $passwort)
or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden!");
$query = "INSERT INTO $tabelle (frage, antwort1, antwort2, antwort3)
VALUES ('$frage', '$antwort1', 'antwort2', 'antwort3')";
$result = mysql_db_query($datenbank, $query, $connection) or die
("Fehler!");
if ($result)
{
echo 'Die Umfrage wurde eingegeben.
<a href="umfrage.php">Jetzt ansehen</a>';
}
else
{
echo 'Fehler! <a href="eingabe.php">Bitte neu eingeben</a>';
mysql_close($connection);
}
?>
</body>
</html>



Weiß einer von euch woran der Fehler liegen könnte? ?(

palme|kex`

God

mardi 1 février 2011, 20:56

Was fürn Fehler ?
Dann den Code in CodeTags einfügen und nicht einfach so...
zum testen nimmste mal den ganzen html kram raus und realisierst erstmal nur die Funktionalität. Um die Optik kannste dich dann im 2ten Schritt kümmern.

Auf anhieb würd ich jetzt mal sagen... deine

Code source

1
2
3
4
5
6
if (!$submit)
{
?>
html gedöhn
<?php
}

könnte nen Problem sein....
so sollte das wenn aussehen.

Code source

1
2
3
4
if (!$submit)
{
   echo 'html gedöhn';
}

Ce message a été modifié 3 fois. Dernière modification effectuée par "palme|kex`" (1 février 2011, 21:04)

Y0Gi

God

mercredi 2 février 2011, 20:28

Here, I fixed that for you (dann sieht man nämlich auch die Zeilennummern; gerne auch noch mit Syntax Highlighting):

Code source

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<html>
<head>
<title>
Umfrage eingeben
</title>
<link rel="StyleSheet" type="text/css" href="styles.css" />
</head>
<body>
<?php
error_reporting(0);
$submit = $_GET["submit"];
$frage = $_GET["frage"];
$antwort1 = $_GET["antwort1"];
$antwort2 = $_GET["antwort2"];
$antwort3 = $_GET["antwort3"];
if (!$submit)
{
?>
<table border="0" cellspacing="5" cellpadding="5">
<tr>
<td>
<form action="eingabe.php" method="get">
<table cellspacing="5">
<tr>
<td><div>Umfrage Titel</div></td>
<td>
<input type="Text" name="frage" size="26" />
</td>
</tr>
<tr>
<td><div> Antwort 1</div></td>
<td>
<input type="Text" name="antwort1" size="26" />
</td>
</tr>
<tr>
<td><div>Antwort 2</div></td>
<td>
<input type="Text" name="antwort2" size="26" />
</td>
</tr>
<tr>
<td><div>Antwort 3</div></td>
<td>
<input type="Text" name="antwort3" size="26" />
</td>
</tr>
<tr>
<td align="right" colspan="2">
<input type="submit" name="submit"
value="Umfrage erstellen" />
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<?php
}
else
{
include("include.php");
$connection = mysql_connect($server, $user, $passwort)
or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden!");
$query = "INSERT INTO $tabelle (frage, antwort1, antwort2, antwort3)
VALUES ('$frage', '$antwort1', 'antwort2', 'antwort3')";
$result = mysql_db_query($datenbank, $query, $connection) or die
("Fehler!");
if ($result)
{
echo 'Die Umfrage wurde eingegeben.
<a href="umfrage.php">Jetzt ansehen</a>';
}
else
{
echo 'Fehler! <a href="eingabe.php">Bitte neu eingeben</a>';
mysql_close($connection);
}
?>
</body>
</html>


Dann fällt auch auf, dass du offenbar die schließende geschwungene Klammer zu

Code source

1
if (!$submit) {

vergessen hast. Da die Suche am Ende des Scripts erfolglos abgebrochen werden muss, verwist die Fehlermeldung auf die letzte Zeile.

Was das Mischen von PHP und HTML angeht, hat palme durchaus Recht. Lesbarkeit wird aber weder mit Massen von `<?php` noch `echo`-Calls erreicht. Bereits mit PHP-Bordmitteln kann man sehr gut Logik und Darstellung (hier: HTML) trennen: Use native PHP templating.

Oh, und vielleicht willst du dir eine ganz einfache Datenbank-Abstraktion ansehen. Nicht zuletzt, weil dein Code SQL-Injection sehr offenherzig gegenüber steht.

P.S.: Vielleicht findest du einen sprecherenden Namen als "include.php" für eine eingebundene Datei. Dann musst du bei mehr als einer nicht durchnummerieren ;)

Ce message a été modifié 3 fois. Dernière modification effectuée par "Y0Gi" (22 janvier 2013, 04:24)

Y0Gi

God

vendredi 4 février 2011, 13:39

Ja, gern geschehen.

möchtewissen

Junior Member

dimanche 6 février 2011, 10:29

Mein Skript funktioniert trotzdem nicht, aber mit html scheint es zu funktionieren. Irgendwie seltsam!

Aber danke für eure hilfe!



mfg



möchtewissen

Y0Gi

God

lundi 7 février 2011, 00:21

Mein Skript funktioniert trotzdem nicht, aber mit html scheint es zu funktionieren.

Was genau soll das bedeuten?