• 21.08.2025, 16:55
  • Register
  • Login
  • You are not logged in.

 

möchtewissen

Junior Member

PHP/HTML Skript problem!

Tuesday, February 1st 2011, 8:49pm

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

Tuesday, February 1st 2011, 8:56pm

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

Source code

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

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

Source code

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

This post has been edited 3 times, last edit by "palme|kex`" (Feb 1st 2011, 9:04pm)

Y0Gi

God

Wednesday, February 2nd 2011, 8:28pm

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

Source code

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

Source code

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 ;)

This post has been edited 3 times, last edit by "Y0Gi" (Jan 22nd 2013, 4:24am)

Y0Gi

God

Friday, February 4th 2011, 1:39pm

Ja, gern geschehen.

möchtewissen

Junior Member

Sunday, February 6th 2011, 10:29am

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

Monday, February 7th 2011, 12:21am

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

Was genau soll das bedeuten?