Gästebucheintrag wird nicht aktualisiert
William
- php
0 Tom0 ChrisB0 Ingo Turski0 dedlfix
Hallo Leute,
Mein Problem ist folgendes, ich habe ein kleines Gästebuch geschrieben, mit MySQL Datenbank etc. Nun habe ich aber das Problem, das wenn ich einen Eintrag erfasse der erstens nicht erscheint und zweitens beim zweiten Gästebuch erste erscheint. Sprich ich einen Eintrag ein, dann den zweiten und erst dann erscheint der erste und beim dritten Eintrag der zewite. Könnt ihr mir bitte helfen. Auch wenn ich die Datenbank droppe nimmt es den letzten geschrieben.
Mit freundlichen Grüsse
William
PS: Hier noch der Code:
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript">
function chkFormular ()
{
if (document.Formular.Name.value == ""){
alert("Bitte Ihren Namen eingeben!");
document.Formular.Name.focus();
return false;
}
// Vorhandensein E-Mail Adresse überprüfen
if (document.Formular.EMailAdresse.value == "") {
alert("Bitte Ihre E-Mail Adresse eingeben!");
document.Formular.EMailAdresse.focus();
return false;
}
// Korrektheit E-Mail Adresse überprüfen
if (document.Formular.EMailAdresse.value.indexOf("@") == -1 ||
document.Formular.EMailAdresse.value.indexOf(".") == -1) {
alert("Keine E-Mail Adresse!");
document.Formular.EMailAdresse.focus();
return false;
}
// Überprüfen ob Wohnort eingegeben
if (document.Formular.Wohnort.value == "") {
alert("Bitte Ihren Wohnort eingeben!");
document.Formular.Wohnort.focus();
return false;
}
if (document.Formular.url.value.indexOf("www.") == -1) {
alert("Keine Webadresse!");
document.Formular.EMailAdresse.focus();
return false;
}
if (document.Formular.text.value == "") {
alert("Bitte Ihren Kommentar ab!");
document.Formular.text.focus();
return false;
}
}
function loginPopup() {
fenster = window.open("login.php","PopUp","width=350,height=150,menubar=no,toolbar=no,scrollbars=no,status=no,resizable=no,location=no,hotkeys=no")
}
function regiPopup() {
fenster = window.open("register.php","PopUp","width=400,height=300,menubar=no,toolbar=no,scrollbars=no,status=no,resizable=no,location=no,hotkeys=no")
}
</script>
<title></title>
</head>
<body bgcolor="gray""
<p align="center"><br>
<br>
<?php
include_once 'validierung.inc.php';
$name = input_validate($_POST['Name']);
$email = input_validate($_POST['EMailAdresse']);
$ort = input_validate($_POST['Wohnort']);
$url = input_validate($_POST['url']);
$kommentar = input_validate($_POST['text']);
/*
$_SESSION['Name'] = $name;
$_SESSION['EMailAdresse'] = $email;
$_SESSION['Wohnort'] = $ort;
$_SESSION['url'] = $url;
$_SESSION['text'] = $txt;
*/
$dbname = "dbwill";
$dbconnection = mysql_connect('localhost','root');
$drdata = "drop database dbwill";
$crdatab = "create database dbwill";
$usedatab = "use dbwill";
$crtabl = "create table php(name varchar(50), email varchar(50), ort varchar(50), url varchar(50), kommentar varchar(200))";
$crlogintabl = "create table login(user varchar(50), passwort varchar(50), sessionID varchar(200))";
$insert = "INSERT INTO php (name,email,ort,url,kommentar) VALUES ('$name','$email','$ort', '$url','$kommentar')";
$abfrage = "Select * from php";
$result = mysql_db_query ($dbname, $dbanfrage, $dbconnection);
$abfragesausgabe = mysql_query($abfrage);
//mysql_query($drdata);
mysql_query($crdatab);
mysql_query($usedatab);
mysql_query($crtabl);
mysql_query($crlogintabl);
mysql_query($insert);
?>
</p>
<div align="center">
<b>Willkommen in meinem Gästebuch!</b><br>
<b>
<br>
</div>
<table border=0 cellpadding=2 cellspacing=0 align="center">
<form name="Formular" form method="post" action="index.php" onsubmit="return chkFormular ()" name="gastbuch">
<tr>
<td align=right>
<div align="left"></div>
</td>
</tr>
<tr>
<td align=right height="27" valign="top">
<div align="right"><b>Dein Name:</b></div>
</td>
<td valign="top" height="27">
<input type="TEXT" name="Name" maxlength=50 size=20>
</td>
</tr>
<tr>
<td align=right height="28" valign="top"><b>
eMail:</b>
</td>
<td valign="top" height="28">
<input type="TEXT" name="EMailAdresse" maxlength=255 size=20>
</td>
</tr>
<tr>
<td align=right height="28" valign="top"><b>Wohnort:</b></td>
<td valign="top" height="28">
<input type="TEXT" name="Wohnort" maxlength=255 size=20>
</td>
</tr>
<tr>
<td align=right height="28" valign="top"><b>URL:</b></td>
<td valign="top" height="28">
<input type="TEXT" name="url" maxlength=255 size=35>
</td>
</tr>
<tr>
<td align=right height="16">
</div>
</td>
</tr>
<tr>
<td colspan=2 align=center>
<div align="left"><b>Deine Nachricht:</b><br>
<textarea name="text" rows=7 cols=45>
</textarea>
</div>
<div align="left">
<input type="submit" value="Senden">
<input type="reset" value="Zurücksetzten">
<input type="button" onClick="JavaScript:loginPopup();" value ="Login">
<input type="button" onClick="JavaScript:regiPopup();" value ="Registrieren"><br>
</div>
</td>
</tr>
</form>
</table>
<br>
</body>
</html>
<?php
if($dbconnection == FALSE){
die("Tot\n");
}
echo "<center>Connect\n<br></center>";
while ($ausgabe = mysql_fetch_array($abfragesausgabe)){
echo "<table>";
echo "<tr>";
echo "</b><b><center>Name:</b> ".$ausgabe['name']."<br></center> ";
echo "<b><center>E-Mail:</b> ".$ausgabe['email']."<br></center> ";
echo "<b><center>Ort:</b> ". $ausgabe['ort']."<br></center> ";
echo "<b><center>Homepage:</b> ".$ausgabe['url']."<br></center> ";
echo "<b><center>Kommentar:</b> ".$ausgabe['kommentar']."<br><br></center> ";
echo "</tr>";
echo "</table>";
}
?>
<script type=\text/javascript">
top.location.reload();
</script>
Hello,
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body bgcolor="gray""
<p align="center"><br>
<br>
<?php
include_once 'validierung.inc.php';
$name = input_validate($_POST['Name']);
$email = input_validate($_POST['EMailAdresse']);
$ort = input_validate($_POST['Wohnort']);
$url = input_validate($_POST['url']);
$kommentar = input_validate($_POST['text']);
$dbname = "dbwill";
$dbconnection = mysql_connect('localhost','root');
$drdata = "drop database dbwill";
$crdatab = "create database dbwill";
$usedatab = "use dbwill";
$crtabl = "create table php(name varchar(50), email varchar(50), ort varchar(50), url varchar(50), kommentar varchar(200))";
$crlogintabl = "create table login(user varchar(50), passwort varchar(50), sessionID varchar(200))";
$insert = "INSERT INTO php (name,email,ort,url,kommentar) VALUES ('$name','$email','$ort', '$url','$kommentar')";
$abfrage = "Select * from php";
$result = mysql_db_query ($dbname, $dbanfrage, $dbconnection);
$abfragesausgabe = mysql_query($abfrage);
mysql_query($crdatab);
mysql_query($usedatab);
mysql_query($crtabl);
mysql_query($crlogintabl);
mysql_query($insert);
?>
<form name="Formular" form method="post" action="index.php" onsubmit="return chkFormular ()" name="gastbuch">
<input type="TEXT" name="Name" maxlength=50 size=20> <br>
<input type="TEXT" name="EMailAdresse" maxlength=255 size=20> <br>
<input type="TEXT" name="Wohnort" maxlength=255 size=20>
<input type="TEXT" name="url" maxlength=255 size=35>
<textarea name="text" rows=7 cols=45>
</textarea>
<input type="submit" value="Senden">
<input type="reset" value="Zurücksetzten">
<input type="button" onClick="JavaScript:loginPopup();" value ="Login">
<input type="button" onClick="JavaScript:regiPopup();" value ="Registrieren"><br>
</form>
</body>
</html>
<?php
if($dbconnection == FALSE)
{
die("Tot\n");
}
echo "<center>Connect\n<br></center>";
while ($ausgabe = mysql_fetch_array($abfragesausgabe)){
echo $ausgabe['name']";
echo $ausgabe['email'];
echo $ausgabe['ort'];
echo $ausgabe['url'];
echo "$ausgabe['kommentar'];
}
?>
Ich habe mal versiúcht, Deinen Code auf den relevanten Teil zuz redutzieren und bitte Dich auch, dies in Zukunft selber zu tun.
Für Deine Problemstellung benötigen die Leser weder die HTML-Ausgabe, noch (soeit ich das sehen konnte) die JavaScripts.
Sollten doch die JavaScripts daran schuld sein, ist da ein gutes beispiel für Codeseparation für das Debugging.
Es fehlt uns aber die Include-Datei "validierung.inc.php"
Die wäre wichtiger, als meterlanger HTML-Code.
Ein harzliches Glückauf, z.Zt. aus Syborg bei Dortmund
Tom vom Berg
Hi,
Nun habe ich aber das Problem, das wenn ich einen Eintrag erfasse der erstens nicht erscheint und zweitens beim zweiten Gästebuch erste erscheint. Sprich ich einen Eintrag ein, dann den zweiten und erst dann erscheint der erste und beim dritten Eintrag der zewite. Könnt ihr mir bitte helfen.
Erster, zweiter, dritter - wer, wo, was?
Sorry, aber aus deinem Kauderwelsch kann ich rein gar nichts entnehmen, was mir das Problem auch nur ansatzweise verdeutlichen wuerde.
MfG ChrisB
Hi,
$name = input_validate($_POST['Name']);
$email = input_validate($_POST['EMailAdresse']);
$ort = input_validate($_POST['Wohnort']);
$url = input_validate($_POST['url']);
$kommentar = input_validate($_POST['text']);
hier handelst Du Dir bei aktiviertem error_reporting Notices ein.
$insert = "INSERT INTO php (name,email,ort,url,kommentar) VALUES ('$name','$email','$ort', '$url','$kommentar')";
$abfrage = "Select * from php";
$abfragesausgabe = mysql_query($abfrage);
Hier fragst Du die Datenbank ab, bevor ggfls. ein neuer Eintrag hier:
mysql_query($insert);
gespeichert wurde.
</body>
</html>
<?php
if($dbconnection == FALSE){
die("Tot\n");
}
echo "<center>Connect\n<br></center>";
was sollen die Ausgaben außerhalb von body und html?
freundliche Grüße
Ingo
echo $begrüßung;
$name = input_validate($_POST['Name']);
$email = input_validate($_POST['EMailAdresse']);
$ort = input_validate($_POST['Wohnort']);
$url = input_validate($_POST['url']);
$kommentar = input_validate($_POST['text']);
hier handelst Du Dir bei aktiviertem error_reporting Notices ein.
Das kann man so pauschal nicht sagen, wenn die Signatur der Funktion input_validate() nicht bekannt ist. Wenn der Parameter als Referenz notiert ist, gibt es keine Notice. Stattdessen wird die übergebene und bisher nicht vorhandene Variable bzw. hier das Arrayelement beim Funktionsaufruf angelegt.
Ein Test mit
function test(&$var) {
var_dump($_POST); // 2.
}
var_dump($_POST); // 1.
test($_POST['nix']);
var_dump($_POST);
~~~ // 3.
ergibt
1\. array(0) {
}
2\. array(1) {
["nix"]=>
&NULL
}
3\. array(1) {
["nix"]=>
NULL
}
echo "$verabschiedung $name";