Antworten auf deine Fragen:
Neues Thema erstellen

gästebuch mit php msql

bibifellow

Nicht mehr ganz neu hier

Bin dabei ein Gästebuch mit php und mysql zu erstellen mit dem Buch PHP - Der leichte Einstieg
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Gaestebuch</title>
</head>

<body>
<h1>Unser Gästebuch</h1>
<?php
//$flag==1, wenn das Formular abeschickt wurde
if(!$flag==1){
	//Leerstellen entfernen
	$absender=trim($absender);
					$betreff=trim($betreff);
					$message=trim($message);
					//evt. vorhandenen HTMI-Code entfernen
					$absender=strip_tags($absender);
					$betreff=strip_tags($betreff);
					$message=strip_tags($message);
					//testen ob Felder ausgefüllt sind
					if(!$absender){$fehler="Bitte geben Sie eine Absenderinformation ein.<br>";}
					if(!$betreff){$fehler="Bitte geben Sie eine Betreffinformation ein.<br>";}
					if(!$message){$fehler="Bitte geben Sie eine Nachricht ein.<br>";}
					//wenn Fehler vorhanden, die Textausgabe formatieren und $flag zurücksetzen, damit das Formular erneut angezeigt wird
					if($fehler)
					{
						$meldung="<h2><font color=black>".$fehler."</font></h2>";
						unset($flag);
					}
					else //Es liegt kein Fehler vor, also Speichern der Informationen in der Datenbank
					{
						//sql-String zusammenbauen
						$tabellenname="gastbuch";
						$sql="INSERT INTO $tabellenname (absender, betreff, message, datum) values
						('$absender', '$betreff', '$message', now())";
						//verbinden zur Datenbank
						$link =mysql_connect("localhost", "", "");
						
						mysql_select_db("gastbuch", $link);
						mysql_query($sql, $link);
						$meldung="<h2<font color=black>Ihre Angaben wurden aufgenommen und werden in Kürze in unserem Gästebuch 
						eingetragen.></font></h2><a href='www.wohinauchimmer.de/seite.php'>Weiter></a>";
					}
					//Ausgeben der Meldung
					echo $meldung;
}//Ende $flag==1
if (!$flag)
{
?>
<form action=?<?php echo $PHP_SELF; ?>? method=post> 
<input type=hidden name=flag value=1> 
<p>Ihr Name:<br> 
<input type=text name=absender value=<?php echo $absender; ?>> 
<p>Betreff: <br>
<input type=text name=betreff value=<?php echo $betreff; ?>> 
<p>Ihre Nachricht:<br> 
<textarea name=message> <?php echo $message; ?>
</textarea> 
<br> 
<input type=submit> 
</form> 
<?php
}
?>
</body>
</html>

Habe eine Datenbank gastbuch unter myadmin erstellt und die datenbank heißt auch gastbuch. Nun will ich die Eingabe von Daten im Formular testen und bekommen die Fehlermeldung
The requested URL /Gaestebuch/â??/Gaestebuch/gastbuch.phpâ?? was not found on this server.
Wo kann denn der Fehler liegen. Habe alles genau abgetippt. Sollte also funktionieren.
 

netbandit

Aktives Mitglied

AW: gästebuch mit php msql

Liegt an Deinen Anführungszeichen (´), entweder " oder ' verwenden
PHP:
<form action='<?php echo $PHP_SELF; ?>' method='post'>
oder

PHP:
<form action="<?php echo $PHP_SELF; ?>" method="post">
Btw: statt $PHP_SELF lieber $_SERVER['PHP_SELF']

Hier mal drei Links, denke die sind ganz wichtig und ich weiß nicht ob das Thema in Deinem Buch berücksichtigt wird:
und
http://www.php.net/manual/de/language.variables.superglobals.php


Grüße :)
 
Zuletzt bearbeitet:

bibifellow

Nicht mehr ganz neu hier

AW: gästebuch mit php msql

Die Fehlermeldung ist weg. Habe den code geändert
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Gaestebuch</title>
</head>

<body>
<h1>Unser Gästebuch</h1>
<?php
//$flag==1, wenn das Formular abeschickt wurde
if(!$flag==1){
	//Leerstellen entfernen
	$absender=trim($absender);
					$betreff=trim($betreff);
					$message=trim($message);
					//evt. vorhandenen HTMI-Code entfernen
					$absender=strip_tags($absender);
					$betreff=strip_tags($betreff);
					$message=strip_tags($message);
					//testen ob Felder ausgefüllt sind
					if(!$absender){$fehler="Bitte geben Sie eine Absenderinformation ein.<br>";}
					if(!$betreff){$fehler="Bitte geben Sie eine Betreffinformation ein.<br>";}
					if(!$message){$fehler="Bitte geben Sie eine Nachricht ein.<br>";}
					//wenn Fehler vorhanden, die Textausgabe formatieren und $flag zurücksetzen, damit das Formular erneut angezeigt wird
					if($fehler)
					{
						$meldung="<h2><font color=black>".$fehler."</font></h2>";
						unset($flag);
					}
					else //Es liegt kein Fehler vor, also Speichern der Informationen in der Datenbank
					{
						//sql-String zusammenbauen
						$tabellenname="gastbuch";
						$sql="INSERT INTO $tabellenname (absender, betreff, message, datum) values
						('$absender', '$betreff', '$message', now())";
						//verbinden zur Datenbank
						$link =mysql_connect("localhost", "", "");
						
						mysql_select_db("gastbuch", $link);
						mysql_query($sql, $link);
						$meldung="<h2<font color=black>Ihre Angaben wurden aufgenommen und werden in Kürze in unserem Gästebuch 
						eingetragen.></font></h2><a href='www.wohinauchimmer.de/seite.php'>Weiter></a>";
					}
					//Ausgeben der Meldung
					echo $meldung;
}//Ende $flag==1
if (!$flag)
{
?>
<form action='<?php echo $PHP_SELF; ?>' method=post> 
<input type=hidden name=flag value='1'> 
<p>Ihr Name:<br> 
<input type=text name=absender value='<?php echo $absender; ?>'> 
<p>Betreff: <br>
<input type=text name=betreff value='<?php echo $betreff; ?>'> 
<p>Ihre Nachricht:<br> 
<textarea name=message> <?php echo $message; ?>
</textarea> 
<br> 
<input type=submit> 
</form> 
<?php
}
?>
</body>
</html>

Leider kommt der Eintrag nicht in der Datenbank an. Wenn ich auf Datenbank gastbuch und dann in die Datenbank gastbuch gehe zeigt sie mir keinen Eintrag an. Woran kann das liegen.

Ist es vielleicht nicht das ich einen Datenbank gastbuch erstellt habe und dann muss ich ja der eigentlichen Datenbank noch einen Namen geben und ich habe sie dann auch gastbuch genannt. Stimmt dann der Pfad vielleicht nicht ich kenne mich da einfach noch nicht genug aus. Wäre toll eine Erklärung an Hand meines Gästebuchs.
PHP:
href='www.wohinauchimmer.de/seite.php'>Weiter></a>";
die Zeile verstehe ich auch nicht so ganz. Muss da meine Internetseite hin. Was muss ich beim Testen mit localhost eingeben. Ich weiß viele Fragen. Möchte halt alles verstehen. Danke für die Hilfe im voraus.
 

AlexanderBo

Gesperrt

AW: gästebuch mit php msql

...
PHP:
href='www.wohinauchimmer.de/seite.php'>Weiter></a>";
die Zeile verstehe ich auch nicht so ganz. Muss da meine Internetseite hin. Was muss ich beim Testen mit localhost eingeben. Ich weiß viele Fragen. Möchte halt alles verstehen. Danke für die Hilfe im voraus.

naja bei localhost muss dann noch ggf der pfad unterhalb von /htdocs angegeben werden (sofern WeiteresUnterverzeichnis angelegt ist).

in der art:
PHP:
href='localhost/ggfWeiteresUnterverzeichnis/SeitenName.php'>Weiter></a>";
 

netbandit

Aktives Mitglied

AW: gästebuch mit php msql

@bibifellow:

Steht die folgende Zeile wirklich so in dem Buch?

PHP:
if(!$flag==1){

weil eigentlich müsste es so lauten

PHP:
if($flag==1){

also ohne Ausrufezeichen, damit wird der Vergleich negiert (glaube das nennt man so)

Schau Dir doch bitte unbedingt die von mir oben geposteten Links an, die werden Dir mit großer Wahrscheinlichkeit bei den nächsten Hürden behilflich sein.

Um Dir das so einfach wie möglich zu machen, setz am Anfang jeder PHP-Datei

PHP:
<?PHP
error_reporting(E_ALL);

Werden Daten im Formular mit der Methode "POST" gesendet, prüft man nicht mehr

PHP:
if($flag==1){

ohne die Variable zuvor definiert zu haben. Abhilfe schafft folgendes Beispiel
PHP:
//erst definieren
$flag=0;
if(isset($_POST['flag']))$flag=$_POST['flag'];
// definieren ende
 
// dann erst mit der Variable weiterarbeiten
if($flag==1){

Wie gesagt, steht einiges in den o.g. Links. Betrifft auch $_GET; Parameter die üblicherweise mit der URL übergeben werden (index.php?flag=1)

Saila hat auch noch einiges zum Thema zusammengetragen, kannst Du hier nachlesen:


Grüße :)

Btw.: http:// im Verweis nicht vergessen; auch wenn es Local ist ;)
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: gästebuch mit php msql

Hi,

zur Frage "localhost" - hierzu setzt man im Script - und zwar im ersten das auf jeder Seite eingebunden wird eine Variable wie folgt:

PHP:
<?php
/* http */
$HTTP = $_SERVER['HTTP_HOST'];

/* Einsatz in HTML's */
echo '<a href="'. $HTTP .'/pagename.php">pagename</a>';
?>

Zur Thematik " oder ' in HTML. Grundlegend wird in HTML das doppelte Anfürhungs- und Endzeichen geset um HTML-Element-typen zu deklarieren.

In Scriptsprachen wird grundlegend das einfache (') Anführungszeichen verwendet, da man hiermit
nicht in den Konflikt gerät, plötzlich einzubindeden HTML oder was auch immer nicht zur Scriptsprache zugehörigen Teil eigens zu maskieren.

Das bedeutet, würde man wie im obigen von mir mitgeteiltem Beispiellink mit einem doppelten Anführungszeichen beginnen (also: echo "...";), so müssten die a-Attribute alle mit einer maskierung beginnen (\"). Das einfache Anführungszeichen kann zwar auch verwendet werden, zählt jedoch nicht zum eigenl. Standard und ist mehr eine Fremdverwendung - oder so :)
 

bibifellow

Nicht mehr ganz neu hier

AW: gästebuch mit php msql

Ich habe etwas herumprobiert und wenn ich bei ersten
PHP:
if(!$flag==1){
das ausrufezeichen entferne habe ich folgende fehlermeldung
Unser Gästebuch


Notice: Undefined variable: flag in /Applications/xampp/xamppfiles/htdocs/Gaestebuch/gastbuch.php on line 13

Notice: Undefined variable: flag in /Applications/xampp/xamppfiles/htdocs/Gaestebuch/gastbuch.php on line 49
und beim Feld für Namen, Betreff Name habe ich
<br />
<b>Notice</b>:
in dem Eingabefeld stehen wenn ich beide Ausrufezeichen löschen habe ich folgende Meldung

Unser Gästebuch


Notice: Undefined variable: flag in /Applications/xampp/xamppfiles/htdocs/Gaestebuch/gastbuch.php on line 13

Notice: Undefined variable: flag in /Applications/xampp/xamppfiles/htdocs/Gaestebuch/gastbuch.php on line 50

und keine Felder mehr. Haben die "!" vllt doch etwas zu sagen.

Bei beiden "!" habe ich folgende Fehlermeldung

Unser Gästebuch


Notice: Undefined variable: flag in /Applications/xampp/xamppfiles/htdocs/Gaestebuch/gastbuch.php on line 13

Notice: Undefined variable: absender in /Applications/xampp/xamppfiles/htdocs/Gaestebuch/gastbuch.php on line 15

Notice: Undefined variable: betreff in /Applications/xampp/xamppfiles/htdocs/Gaestebuch/gastbuch.php on line 16

Notice: Undefined variable: message in /Applications/xampp/xamppfiles/htdocs/Gaestebuch/gastbuch.php on line 17
Bitte geben Sie eine Nachricht ein.


Notice: Undefined variable: flag in /Applications/xampp/xamppfiles/htdocs/Gaestebuch/gastbuch.php on line 49

Könnte bei Bedarf das Buch per pn als pdf mailen.
 

netbandit

Aktives Mitglied

AW: gästebuch mit php msql

Ich zitiere mich selbst einfach mal:
Werden Daten im Formular mit der Methode "POST" gesendet, prüft man nicht mehr
PHP:
if($flag==1){
ohne die Variable zuvor definiert zu haben. Abhilfe schafft folgendes Beispiel
PHP:
//erst definieren
$flag=0;
if(isset($_POST['flag']))$flag=$_POST['flag'];
// definieren ende
 
// dann erst mit der Variable weiterarbeiten
if($flag==1){
Betrifft die übrigen Variablen natürlich auch
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben