Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

php Gästeuch geht nicht..wer hilft mir?

Empfohlene Antworten

Veröffentlicht

gbeintragen.php

-------------------

<html>

<head>

</head>

<title>Gästebuch</title>

<body bgcolor="#C3C53F">

<center><h2>Gästebuch</h2></center><br>

<form action="gbeingetragen.php" method="post">

<table>

<tr><td>

Name: </td>

<td><input name="name" type="text" size="30" maxlength="30"><br> </td></tr>

<tr><td>Email-Adresse: </td>

<td><input name="email" type="text" size="50" maxlength="50"><br></td></tr>

<tr><td>Url: (optional) </td>

<td><input name="url" type="text" size="50" maxlength="50"><br></td>

</table>

<textarea name="text" cols="100" rows="6"></textarea><br>

<input type="submit" value="Datensatz eintragen" >

</form>

</body>

</html>

geingetragen.php

------------------------

<?

$verbindung = @mysql_connect("dieDatenbank","pw","");

if (!$verbindung) {

echo "Keine Verbindung möglich!\n";

exit;

}

$fehler = 0;

if ($name == '')

{ echo "Name muss angegeben werden<br>";

$fehler = 1; }

if ($email == '')

{ echo "Email-Adresse muss angegeben werden<br>";

$fehler = 1; }

if ($url == '')

{ $url = "keine"; }

if ($text == '')

{ echo "Email-Adresse muss angegeben werden<br>";

$fehler = 1; }

if ($text == '')

{ echo "Text muss angegeben werden<br>";

$fehler = 1; }

if ($fehler == 0)

{

$abfrage = "INSERT INTO gaestebuch (ID,name,email,url,text) VALUES (25,$name,$email,$url,$text)";

echo "Datensatz wurde eingetragen"; }

else { echo "Datensatz wurde nicht eingetragen"; }

$erg = mysql_db_query("db",$abfrage,$verbindung);

mysql_close($verbindung);

?>

---------------------------------

Als ID soll einfach mal 25 eingetragen werden, werd ich später noch richtig machen, wenn das Eintragen ansich mal funktioniert.

Die ID ist zwar als eindeutiger Primärschlüssel definiert, Nummer 25 ist aber noch nicht vorhanden.

was *genau* geht denn nicht? Haben die Variablen keinen Wert und er steigt vorher aus da fehler=1 oder schlaegt das Query fehl?

Fehler bringt er keinen, aber er schreibt nix in die MYSQL Datenbank :(

Original geschrieben von tobixxx

gbeintragen.php

-------------------


<?

$verbindung = @mysql_connect("dieDatenbank","pw","");

if (!$verbindung) {
echo "Keine Verbindung möglich!\n";
exit;
}

$fehler = 0;

if ($name == '')
{ echo "Name muss angegeben werden<br>";
$fehler = 1; }

if ($email == '')
{ echo "Email-Adresse muss angegeben werden<br>";
$fehler = 1; }

if ($url == '')
{ $url = "keine"; }

if ($text == '')
{ echo "Email-Adresse muss angegeben werden<br>";
$fehler = 1; }

if ($text == '')
{ echo "Text muss angegeben werden<br>";
$fehler = 1; }


if ($fehler == 0)

{
$abfrage = "INSERT INTO gaestebuch (ID,name,email,url,text) VALUES (25,$name,$email,$url,$text)";
echo "Datensatz wurde eingetragen"; }

else { echo "Datensatz wurde nicht eingetragen"; }

$erg = mysql_db_query("db",$abfrage,$verbindung);

mysql_close($verbindung);

?>[/php]

[/b]

Ich bin mir zwar nicht sicher, aber ich glaube dein Fehler ist hier :

[php]$verbindung = @mysql_connect("dieDatenbank","pw","");

richtig wäre


$variable-deklaration = mysql_connect(($mysqlhost, $mysqluser, $mysqlpassword);
[/php]

Nur so zum Still, es muß zwar jeder selber wissen wie er schreibt

[php]
$abfrage = "INSERT INTO gaestebuch (ID,name,email,url,text) VALUES (25,$name,$email,$url,$text)";
echo "Datensatz wurde eingetragen"; }

ich würde es so aufteilen, da es die Übersich etwas erhöht


$abfrage = "insert gäestebuch";
$abfrage .= " (ID,'name','email','url','text') values";
$abfrage .= "(25,'$name,'$email', '$url', '$text')";
[/php]

Hinweis: Alles was keine Zahl - sprich Int / boolen double ... -ist muß in Hochkomma ' ' gesetzt werden. :)

Mfg Tool-Time

Ps: um deine PHP Codes besser hier anzeigen zu lassen schreib es so [#php] code [#/php] (ohne #)

Original geschrieben von tobixxx



$erg = mysql_db_query("db",$abfrage,$verbindung);

mysql_close($verbindung);

?>
[/php]

[/b]

Das scheint auch nicht so ganz zu passen :

[php]
$reg = mysql_db_query("db",$abfrage);

Du muß hier nicht erneut $verbindung eintragen, da du schon am Anfang eine Verbindung zur DB aufgebaut hast.

Danke Tool-Time! Jetzt gehts.

Eine Frage noch... wenn ich dann alle Datensätze mit Hilfe von PHP ausgebe dann geht das zwar, ich muss aber auf der Seite immer F5 drücken damit die Seite aktualisiert wird und die neuesten Datensätze angezeigt werden.

Vermutlich muss da der Buffer gelöscht werden.... weiß jemand den PHP Befehl dafür?

Das hilft mir nicht weiter, ich kann ja nicht alle 30 Sekunden das Gästebuch neu laden...da kriegen die Leute ja nen Anfall beim lesen :D

In ASP gibs ein paar Codezeilen die man in der Option Explicit einfügt, dann löscht er den Buffer wenn man die Seite aufruft...in PHP kenn ich mich aber leider (noch) nicht so gut aus :(

Du willst also eine dynamische Änderung ohne die Seite neu zu laden?

Wundert mich, dass das möglich ist. Ich kenn mich zwar auch noch nicht so richtig in dieser Materie aus, aber ich glaube nicht, das du da was finden würdest. Wenn doch dann poste doch deine Lösung hier.

Zu reloaden der Seite könntest du auch noch javascript nutzen.

E-T du siehst das viel zu kompliziert. Ich suche einfach den Befehl womit die Seite immer neu geladen wird wenn man sie aufruft...und zwar dann nur einmal und nicht alle XX Sekunden.

In VBScript sieht das ganze so aus:

<%@ LANGUAGE=VBScript %>

<% Option Explicit response.expires=0 %>

Hallo,

Original geschrieben von E-T

Das macht PHP doch automatisch. Denn dafür ist es ja ne serverseitige Scriptsprache ;)

nicht unbedingt...

Um das Caching einer Seite zu verhindern, ist der folgende Code passend:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

header("Last-Modified: " . gmdate("D, d M Y H:i:s") ." GMT");

header("Cache-Control: no-cache");

header("Pragma: no-cache");

header("Cache-Control: post-check=0, pre-check=0");

Gruß Jaraz

Danke Jaraz,

genau das hab ich gesucht.

Jetzt gehts :)

achja...wäre nett wenn du mir den Code ein bisschen erklärst...vor allem das Datum.

Das Datum ist relativ egal, muss halt nur in der Vergangenheit liegen, wahrscheinlich sind diese Zeilen das erste mal einen Tag nach dem Datum gepostet worden.

Der Rest überlagert sich eigentlich, da es bei Browsern aber keinen Standard gibt, ist doppelt gemoppelt besser. :D

Gruß Jaraz

thx :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.