• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> Klick

Falsche php Zeile?

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Was ist hier falsch?
Glaube irgendetwas mit den Anführungszeichen:

Code:
mysql_query ("INSERT INTO tb_anmeldung (fd_Name = '$name', fd_Vorname = '$vname', fd_Strasse = '$str', fd_PLZ = '$plz', fd_Wohnort = '$ort', fd_Personen = '$anzahl') VALUES ($POST['name'], $POST['vname'], $POST['str'], $POST['plz'],$POST['ort], $POST['anzahl'])", $con);

Danke wapplegraph
 

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Also habe schon bemerkt, das ich zuviel geschrieben habe, bei den Feldnamen , doch es ist immer noch etwas falsch.

wapplegraph
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Fehlt da hinter dem zweiten ort nicht ein Hochkomma?
 

csharp

Gast
1. Gehört alles was in eine DB geschrieben wird validiert, was du da machst erlaubt es mir deine gesamten records zu löschen und schlimmer noch sogar die table zu droppen.
2. Solltest du eine Abstraktionsklasse verwenden die es dir erlaubt deine Applikation auch auf andere Datenbanken zu portieren (PEAR anschauen)
3. Reicht bei den Feldbeziechnungen fd_Name usw. das = '$name' usw. ist überflüssig bzw. falsch
4. Das Hochkomma beim Ort fehlt auch wie schon angemerkt wurde.
 

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Also
Den ersten Punkt habe ich nicht gecheckt. Den zweiten auch nicht so richtig.

Hier die ganze Seite, damit man den zusammenhang sieht.


Code:
<?php

include '../db_connect.php';

if (isset($POST['name'])) {$name = $POST['name'];} else {$name = '';}
if (isset($POST['vname'])) {$vname = $POST['vname'];} else {$vname = '';}
if (isset($POST['str'])) {$str = $POST['str'];} else {$str = '';}
if (isset($POST['plz'])) {$plz = $POST['plz'];} else {$plz = '';}
if (isset($POST['ort'])) {$ort = $POST['ort'];} else {$ort = '';}
if (isset($POST['anzahl'])) {$anzahl = $POST['anzahl'];} else {$anzahl = '';}
if (isset($POST['send'])) {$send = $POST['send'];} else {$send = '';}




mysql_query ("INSERT INTO tb_anmeldung (fd_Name, fd_Vorname, fd_Strasse, fd_PLZ, fd_Wohnort, fd_Personen) VALUES ($POST['name'], $POST['vname'], $POST['str'], $POST['plz'],$POST['ort'], $POST['anzahl'])", $con);

?>

<html>
<head>
	<title>Anmeldung Ball 07</title>
</head>

<body>

<form name="anmeldung" method="post">

<?php

if ($send == "send") 	{
						echo "Wir danken Ihnen für die Anmeldung und wünschen Ihnen eine gute Zeit. Bis auf Wiedersehen am 2. Februar 07";
						}
						
						else { 

						

echo '
	
	Name<input name="name" maxlength="30" value="Name" /><br>
	Vorname<input name="vname" maxlength="25" value="Vorname" /><br>
	Strasse<input name="str" maxlength="40" value="Strasse" /><br>
	PLZ<input name="plz" maxlength="4" value="PLZ" /><br>
	Wohnort<input name="ort" value="Wohnort" /><br>
	Anzahl Personen<input name="anzahl" maxlength="2" value="z.B. 2" /><br>
	
	<input name="send" value="Anmeldung abschicken" type="submit">';
	
	}

?>

</form>

</body>
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Hier gibt es ein ernsthaftes Sicherheitsproblem, wenn Du die Werte ungefiltert aus der Benutzereingabe übernimmst (Stichwort »SQL Injection«).

Ich würde das mal so umtexten, vielleicht hilft das gleich auch bei Deinem Problem:
Code:
<?php

	include_once( '../dbconnect.php' );

	$sql	=	"INSERT INTO tb_anmeldung SET ";
	$sql	.=	(!empty( $_POST['name'] ))	?	sprintf( "fd_Name='%s', ", mysql_real_escape_string( $_POST['name'] ))
											:	"fd_Name='', ";
	$sql	.=	(!empty( $_POST['vname'] ))	?	sprintf( "fd_Vorname='%s', ", mysql_real_escape_string( $_POST['vname'] ))
											:	"fd_Vorname='', ";

/* usw. */

	if ($result_ressource = mysql_query( $sql, $con )) {
		$last_insert = mysql_insert_id();
		// Liefert die letzte auto_increment-ID des eingefuegten Datensatzes.
		// Hat dann geklappt.
	}
/* ... */
?>

Zum einen kannst Du die SQL-Query auch so formulieren:
INSERT INTO tabelle SET spalte1=wert1, spalte2=wert2, ...
Das ist etwas einfacher innerhalb des PHP-Codes und genauso gut, zudem Du dann, wenn Du einen Datensatz aktualisieren möchtest dasselbe Statement nehmen kannst und nur »INSERT« durch »UPDATE« ersetzt.

Weiterhin ist die Abfrage nach »isset( $_POST['asdf'] )« auch dann wahr, wenn der Benutzer hier ein Steuerzeichen, Leerzeichen oder eine Null übermittelt hat. Das kannst Du eleganter auffangen, wenn nach stattdessen nach »empty()« fragst.

Drittens: mysql_real_escape_string() sollte unbedingt den String der Benutzereingabe vorbehandeln, bevor er in die Datenbank kommt. Ebenso wichtig ist, den String innerhalb des Statements immer mit einfachen Anführungsstrichen in Parenthese zu setzen, was ebenfalls ein wenig vor SQL Injection hilft (, wenn es nicht schon die obige Funktion täte).
 

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
$sql .= (!empty( $_POST['name'] )) ? sprintf( "fd_Name='%s', ", mysql_real_escape_string( $_POST['name'] ))
: "fd_Name='', ";
$sql .= (!empty( $_POST['vname'] )) ? sprintf( "fd_Vorname='%s', ", mysql_real_escape_string( $_POST['vname'] ))
: "fd_Vorname='', ";
Könnte mir noch jemand diese Zeilen genauer erklären?

Danke wapplegraph
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Könnte mir noch jemand diese Zeilen genauer erklären?

Danke wapplegraph

Da isses:

1. Ausgangslage

Die Idee ist hier, das SQL-Statement zusammenzusetzen. Ziel ist zum Beispiel ein solches Statement:
Code:
INSERT INTO tb_anmeldung
	SET
		fd_Name='graph',
		fd_Vorname='wapple',
		fd_PLZ='1234',
		fd_Wohnort='Beinwill am See',
		fd_Personen='5';

2. Variablen müssen hinein
Jetzt müssen natürlich die Formularwerte eingefügt werden, und das ganze in PHP gegossen:

Code:
$sql	=	"INSERT INTO tb_anmeldung";
$sql	.=	"SET";
$sql	.=	"fd_Name='" . $POST['name'] . "', ";
$sql	.=	"fd_Vorname='" . $POST['vname'] . "', ";
$sql	.=	"fd_PLZ='" . $POST['plz'] . "', ";
$sql	.=	"fd_Wohnort='" . $POST['ort'] . "', ";
$sql	.=	"fd_Personen='" . $POST['anzahl'] . "';";

3. Sicherheit geht vor
Das ist zwar schon was, aber übersichtlich ist das nicht mehr. Und vor allem sehr gefährlich (SQL-Injection mal bei Wikipedia nachschlagen). Besser ist es daher, die Formularwerte mit mysql_real_escape_string() vorzubehandeln:

Code:
$sql	=	"INSERT INTO tb_anmeldung";
$sql	.=	"SET";
$sql	.=	"fd_Name='" . mysql_real_escape_string( $POST['name'] ) . "', ";
$sql	.=	"fd_Vorname='" . mysql_real_escape_string( $POST['vname'] ) . "', ";
$sql	.=	"fd_PLZ='" . mysql_real_escape_string( $POST['plz'] ) . "', ";
$sql	.=	"fd_Wohnort='" . mysql_real_escape_string( $POST['ort'] ) . "', ";
$sql	.=	"fd_Personen='" . mysql_real_escape_string( $POST['anzahl'] ) . "';";

4. Wartbarer machen
Jetzt ist man zwar auf der sicheren Seite aber so richtig deutlich ist das nicht mehr, und man verhedeert sich schnell mit den Anführungseichen. Daher wird dies als »formatierte Ausgabe« in die Variable $sql geschrieben. Das tut man mit dem Befehl sprintf(), der Platzhalter in Form von %s, %u, %d, etc. für verschiedene Wertetypen annimmt, und diese durch die angehängten Werte ersetzt:

Code:
$sql	=	"INSERT INTO tb_anmeldung";
$sql	.=	"SET";
$sql	.=	sprintf( "fd_Name='%s', ", mysql_real_escape_string( $POST['name'] ));
$sql	.=	sprintf( "fd_Vorname='%s', ", mysql_real_escape_string( $POST['vname'] ));
$sql	.=	sprintf( "fd_PLZ='%s', ", mysql_real_escape_string( $POST['plz'] ));
$sql	.=	sprintf( "fd_Wohnort='%s', ", mysql_real_escape_string( $POST['ort'] ));
$sql	.=	sprintf( "fd_Personen='%u';", mysql_real_escape_string( $POST['anzahl'] ));

5. Leere Felder berücksichtigen
Neben den »Pflichtfeldern« gibt es ja auch bestimmt Felder, die freigelassen werden können, aber auch diese sollen ja in der Datenbank entsprechende Berücksichtigung finden. Dazu definiert man in der MySQL-Datenbank als Default-Wert »NULL«, dann kann die Datenbank schneller Ihre Inhalte indizieren und »NULL« wird als »absichtlich leer« betrachtet. Dazu müssen wir die Eingabewerte natürlich wiederum auf den Inhalt prüfen, wobei die Angabe »0« bei der Postleitzahl auch ein Leerzeichen hätte sein können. Dabei prüfe ich hier mit empty() und mithilfe eines ternären Operators, dem so genannten »funktionalen if«, der innerhalb einer Wertezuweisung gleich noch prüft, was geprüft werden soll, und nach Wunsch reagiert. Das sieht schematisch so aus:
Code:
$Wetter = (aufgegessen()) ? "Sonne" : "Regen";

Wenn hier die Funktion aufgegessen() eine wahre Aussage erzeugt (also "TRUE" zurückgibt), wird $Wetter mit dem String "Sonne" befüttert, ansonsten mit "Regen". Diese Zuweisung muss man ein wenig üben, aber dann ist es enorm praktisch. Das ganze führt dann zu diesem Aufbau unseres SQL-Statements:

Code:
$sql	=	"INSERT INTO tb_anmeldung";
$sql	.=	"SET";
$sql	.=	(!empty( $_POST['name'] ))	?	sprintf( "fd_Name='%s', ", mysql_real_escape_string( $POST['name'] ))
						:	"fd_Name=NULL, ";
$sql	.=	(!empty( $_POST['vname'] ))	?	sprintf( "fd_Vorname='%s', ", mysql_real_escape_string( $POST['vname'] ))
						:	"fd_Vorname=NULL, ";
$sql	.=	(!empty( $_POST['plz'] ))	?	sprintf( "fd_PLZ='%s', ", mysql_real_escape_string( $POST['plz'] ))
						:	"fd_PLZ=NULL, ";	
$sql	.=	(!empty( $_POST['ort'] ))	?	sprintf( "fd_Wohnort='%s', ", mysql_real_escape_string( $POST['ort'] ))
						:	"fd_Wohnort=NULL, ";
$sql	.=	(!empty( $_POST['anzahl'] ))	?	sprintf( "fd_Personen='%u';", mysql_real_escape_string( $POST['anzahl'] ))
						:	"fd_Personen=0;";
/* Im letzten Fall gehe ich davon aus, dass die Spalte für Personen ganze, positive Zahlen enthalten soll, oder eben 0. */

Klarer geworden? :D

Ich habe das jetzt so getippt, aber nicht ausprobiert, einzelne Klammerfehler sind nicht auszuschließen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: quarx

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Ja merci!

Also ich habe jetzt heute leider keine Zeit mehr dies so zu machen, doch bis Ende Woche sollte ich Zeit gefunden haben, um dies alles genaustens zu studieren und auszuprobieren.

wapplegraph
 

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Also ich habe jetzt es soweit fertig, doch die Ausführung klappt noch nicht.

Ich muss da ja alles in einer Variable gespeichert ist, diese noch ausgeben. Wie am besten in einer if-Abfrage

oben hat es so etwas, doch hm:

Code:
if ($result_ressource = mysql_query( $sql, $con )) {
		$last_insert = mysql_insert_id();
				}
		else	{

Wann wird dann überhaupt, diese if-Abfrage ausgeführt.

wapplegraph
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Also ich habe jetzt es soweit fertig, doch die Ausführung klappt noch nicht.

Ich muss da ja alles in einer Variable gespeichert ist, diese noch ausgeben. Wie am besten in einer if-Abfrage

oben hat es so etwas, doch hm:

Code:
if ($result_ressource = mysql_query( $sql, $con )) {
		$last_insert = mysql_insert_id();
				}
		else	{

Wann wird dann überhaupt, diese if-Abfrage ausgeführt.

wapplegraph

Hier wird die Ausführung und die Prüfung kombiniert. Eine Konditionaloperation (if) fragt einfach ab, ob da etwas eine wahre Aussage ergibt (bool true):
Code:
$n = 1;
if ($n) {
   echo "Stimmt, denn n wurde definiert. Also eine wahre Aussage.";
}

Wenn die SQL-Abfrage fehlschlägt, weil beispielsweise die Abfrage einen Fehler beinhaltet, wird die Zuweisung zu einer »falschen Aussage« (bool false). Daher sind diese Schreibweisen vom Ergebnis her gleich:
Code:
$result_ressource = mysql_query( $sql, $con );
if ($result_ressource) {
   // usw.
}

und

Code:
if ( $result_ressource = mysql_query( $sql, $con ) ) {
  // usw.
}

==> »Wenn die Abfrage (die, die durch die Variable sql bestimmt wird), erfolgreich war, also der Variable result_ressource einen Wert zuweist (und daher nicht false), handelt es sich innerhalb der Operation um eine wahre Aussage.«

Und daher läuft eine Datenbankabfrage (, die nicht OOP-Ansätze verfolgt), so bei einem »INSERT« oder »UPDATE« (wobei bei diesem mysql_insert() entfällt) wie oben beschrieben.
 

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Code:
<?php

include_once ('db_connect.php');


	$sql	=	"INSERT INTO tb_anmeldung SET ";
	
	$sql	.=	(!empty( $_POST['name'] ))		?	sprintf( "fd_Name='%s', ", mysql_real_escape_string( $_POST['name'] ))
											:	"fd_Name='', ";
											
	$sql	.=	(!empty( $_POST['vname'] ))		?	sprintf( "fd_Vorname='%s', ", mysql_real_escape_string( $_POST['vname'] ))
											:	"fd_Vorname='', ";
											
	$sql	.=	(!empty( $_POST['str'] ))		?	sprintf( "fd_Strasse='%s', ", mysql_real_escape_string( $_POST['str'] ))
											:	"fd_Strasse='', ";
											
	$sql	.=	(!empty( $_POST['plz'] ))		?	sprintf( "fd_PLZ='%s', ", mysql_real_escape_string( $_POST['plz'] ))
											:	"fd_PLZ='', ";
											
	$sql	.=	(!empty( $_POST['ort'] ))		?	sprintf( "fd_Wohnort='%s', ", mysql_real_escape_string( $_POST['ort'] ))
											:	"fd_Wohnort='', ";
											
	$sql	.=	(!empty( $_POST['anzahl'] ))	?	sprintf( "fd_Personen='%s', ", mysql_real_escape_string( $_POST['anzahl'] ))
											:	"fd_Personen='0', ";
											

?>

Wo liegt demfall hier der Fehler?

Und kann man spans eine breite geben?

wapplegraph
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Code:
<?php

include_once ('db_connect.php');


	$sql	=	"INSERT INTO tb_anmeldung SET ";
	
	$sql	.=	(!empty( $_POST['name'] ))		?	sprintf( "fd_Name='%s', ", mysql_real_escape_string( $_POST['name'] ))
											:	"fd_Name='', ";
											
	$sql	.=	(!empty( $_POST['vname'] ))		?	sprintf( "fd_Vorname='%s', ", mysql_real_escape_string( $_POST['vname'] ))
											:	"fd_Vorname='', ";
											
	$sql	.=	(!empty( $_POST['str'] ))		?	sprintf( "fd_Strasse='%s', ", mysql_real_escape_string( $_POST['str'] ))
											:	"fd_Strasse='', ";
											
	$sql	.=	(!empty( $_POST['plz'] ))		?	sprintf( "fd_PLZ='%s', ", mysql_real_escape_string( $_POST['plz'] ))
											:	"fd_PLZ='', ";
											
	$sql	.=	(!empty( $_POST['ort'] ))		?	sprintf( "fd_Wohnort='%s', ", mysql_real_escape_string( $_POST['ort'] ))
											:	"fd_Wohnort='', ";
											
	$sql	.=	(!empty( $_POST['anzahl'] ))	?	sprintf( "fd_Personen='%s', ", mysql_real_escape_string( $_POST['anzahl'] ))
											:	"fd_Personen='0', ";
											

?>

Wo liegt demfall hier der Fehler?
Syntaktisch korrekt, jedoch könnte das letzte Komma im Statement zuviel sein ("fd_Personen=...,").

Und kann man spans eine breite geben?

wapplegraph

Jain, das kommt auf den Zusammenhang an, da ein span-Tag kein Block-Tag ist. Wenn du das also nicht mit display:block, display:table, etc. »umdichtest« wird es immer auf die kleinste Breite kollabieren wollen. Ebenso kannst Du mit der Kombination position:absolute und width: 100% Effekte erzielen, wenn Du außernherum ein Block-Tag verwendest mit position:relative und width: 150px (zB). Aber das ist, glaube ich, eine andere Geschichte als eine PHP-Frage.
 

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Hallo
Also es klappt eigentlich, doch etwas ganz komisches macht er mir.
Wenn ich die Angegebenen Values löschen und in meinem Formular nichts übergebe, so fügt er mir einen neuen Eintrag hinzu, einfach mit der ID.
Übergebe ich jedoch etwas, fügt er gar rein nichts in meine Tabelle ein.

Was ist das?

Hiermeine Seite:
Code:
<?php

include 'db_connect.php';

	if (isset($_POST['send']))	{$send = $_POST['send'];} else {$send = '';}



	$sql	=	"INSERT INTO tb_anmeldung SET ";
	
	$sql	.=	(!empty( $_POST['name'] ))		?	sprintf( "fd_Name='%s' ", mysql_real_escape_string( $_POST['name'] ))
											:	"fd_Name='', ";
											
	$sql	.=	(!empty( $_POST['vname'] ))		?	sprintf( "fd_Vorname='%s', ", mysql_real_escape_string( $_POST['vname'] ))
											:	"fd_Vorname='', ";
											
	$sql	.=	(!empty( $_POST['str'] ))		?	sprintf( "fd_Strasse='%s', ", mysql_real_escape_string( $_POST['str'] ))
											:	"fd_Strasse='', ";
											
	$sql	.=	(!empty( $_POST['plz'] ))		?	sprintf( "fd_PLZ='%s', ", mysql_real_escape_string( $_POST['plz'] ))
											:	"fd_PLZ='', ";
											
	$sql	.=	(!empty( $_POST['ort'] ))		?	sprintf( "fd_Wohnort='%s', ", mysql_real_escape_string( $_POST['ort'] ))
											:	"fd_Wohnort='', ";
											
	$sql	.=	(!empty( $_POST['anzahl'] ))	?	sprintf( "fd_Personen='%s' ", mysql_real_escape_string( $_POST['anzahl'] ))
											:	"fd_Personen='0' ";
	
/*	echo $sql;										
*/
?>


<html>
<head>
	<title>Anmeldung Ball 07</title>
	

    <link href="formstyle.css" rel="stylesheet" type="text/css" media="screen">
	
</head>

<body>

<form name="anmeldung" method="post">

<?php

if ($send == 'Anmeldung abschicken') {
		mysql_query( $sql, $con );
		echo "Danke";
		
		
		}
		else	{
						

echo	'<div id="aussen">

<table id="formularback">

	<tr>
		<td class="name">Name</td><td><input name="name" 	maxlength="30"	value="Name" />*</td>
		<td class="name">Vorname</td><td><input name="vname" maxlength="25"	value="Vorname"/>*</td>
	</tr>
	
	<tr>
		<td class="name">Strasse</td><td colspan="3"><input name="str" 	maxlength="40"	value="Strasse" />*</td>
	</tr>
	
	<tr>
		<td class="name">PLZ	</td><td>				<input name="plz" 	maxlength="4" 	value="" />*</td>
		<td class="name">Wohnort	</td><td>			<input name="ort" 					value="Wohnort" />*</td>
		
	</tr>
	<tr>
		<td class="name">Anzahl Personen</td><td colspan="3">		<input name="anzahl" maxlength="2" 	value="" />*</td>
	</tr>
	<tr><td id="pflicht" colspan="4">* Diese Felder sind Pflicht</td></tr>
		
	<tr><td colspan="2"><input id="button" name="send" value="Anmeldung abschicken" type="submit"></td></tr>
	
</table>
';

	
								}

?>

</form>

</body>
</html>

Danke wapplegraph
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Hallo
Also es klappt eigentlich, doch etwas ganz komisches macht er mir.
Wenn ich die Angegebenen Values löschen und in meinem Formular nichts übergebe, so fügt er mir einen neuen Eintrag hinzu, einfach mit der ID.
Übergebe ich jedoch etwas, fügt er gar rein nichts in meine Tabelle ein.

Was ist das?

Hiermeine Seite:
Code:
<?php

include 'db_connect.php';

	if (isset($_POST['send']))	{$send = $_POST['send'];} else {$send = '';}



	$sql	=	"INSERT INTO tb_anmeldung SET ";
	
	$sql	.=	(!empty( $_POST['name'] ))		?	sprintf( "fd_Name='%s' ", mysql_real_escape_string( $_POST['name'] ))
											:	"fd_Name='', ";
											
	$sql	.=	(!empty( $_POST['vname'] ))		?	sprintf( "fd_Vorname='%s', ", mysql_real_escape_string( $_POST['vname'] ))
											:	"fd_Vorname='', ";
											
	$sql	.=	(!empty( $_POST['str'] ))		?	sprintf( "fd_Strasse='%s', ", mysql_real_escape_string( $_POST['str'] ))
											:	"fd_Strasse='', ";
											
	$sql	.=	(!empty( $_POST['plz'] ))		?	sprintf( "fd_PLZ='%s', ", mysql_real_escape_string( $_POST['plz'] ))
											:	"fd_PLZ='', ";
											
	$sql	.=	(!empty( $_POST['ort'] ))		?	sprintf( "fd_Wohnort='%s', ", mysql_real_escape_string( $_POST['ort'] ))
											:	"fd_Wohnort='', ";
											
	$sql	.=	(!empty( $_POST['anzahl'] ))	?	sprintf( "fd_Personen='%s' ", mysql_real_escape_string( $_POST['anzahl'] ))
											:	"fd_Personen='0' ";
	
/*	echo $sql;										
*/
?>


<html>
<head>
	<title>Anmeldung Ball 07</title>
	

    <link href="formstyle.css" rel="stylesheet" type="text/css" media="screen">
	
</head>

<body>

<form name="anmeldung" method="post">

<?php

if ($send == 'Anmeldung abschicken') {
		mysql_query( $sql, $con );
		echo "Danke";
		
		
		}
		else	{
						

echo	'<div id="aussen">

<table id="formularback">

	<tr>
		<td class="name">Name</td><td><input name="name" 	maxlength="30"	value="Name" />*</td>
		<td class="name">Vorname</td><td><input name="vname" maxlength="25"	value="Vorname"/>*</td>
	</tr>
	
	<tr>
		<td class="name">Strasse</td><td colspan="3"><input name="str" 	maxlength="40"	value="Strasse" />*</td>
	</tr>
	
	<tr>
		<td class="name">PLZ	</td><td>				<input name="plz" 	maxlength="4" 	value="" />*</td>
		<td class="name">Wohnort	</td><td>			<input name="ort" 					value="Wohnort" />*</td>
		
	</tr>
	<tr>
		<td class="name">Anzahl Personen</td><td colspan="3">		<input name="anzahl" maxlength="2" 	value="" />*</td>
	</tr>
	<tr><td id="pflicht" colspan="4">* Diese Felder sind Pflicht</td></tr>
		
	<tr><td colspan="2"><input id="button" name="send" value="Anmeldung abschicken" type="submit"></td></tr>
	
</table>
';

	
								}

?>

</form>

</body>
</html>

Danke wapplegraph

Hi,

oben bindest Du zwar Deinen Datenbank-Konnektor ein, initialisierst Du aber wirklich eine Datenbankverbindung? Falls nicht, steht Dir die Methode »mysql_real_escape_string« nicht zur Verfügung, da diese Methode eine gültige Verbindung zu MySQL-Client und dessen API voraussetzt.

Wenn diese Methode nicht zur Verfügung steht, wird auch nichts in das SQL-Statement geschrieben.

Du siehst möglicherweise mehr, wenn Du in der php.ini das error_reporting entsprechend einstellst oder in der Deinem Script als ersten Befehl das error_reporting so initialisierst:
Code:
error_reporting(E_ALL ^ E_NOTICE);
 
  • Like
Reaktionen: Peter Maurer

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Hallo

Ich habe gestern nach langem den Fehler herausgefunden, es war ein Kommafehler.:mad:
Jetzt klappts und ich habe vieles gelernt, mit Formularen und Tabellen zu arbeiten.:)

wapplegraph