php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.12.2004, 18:31  
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 102
djrace
Standard Problem mit php gästebuch

Hi,

ich habe ein problem mit nem php Gästebuch. Es funktioniert zwar einwandfrei jedoch werden immer auf der Seite Fehler angezeigt mit undefinierten variablen.

Hier ist mal der Quell text:

<html>
<STYLE>
BODY { background-color:#808080; font-family:Verdana,Arial,Tahoma; font-size:8pt; color:#ffffff }
A { font-family:Verdana,Arial,Tahoma; font-size:8pt; color:#ffaf49 }
H1 { font-family:Verdana,Arial,Tahoma; font-size:16pt; color:#ffaf49 }
HR { color:#ffffff }
TD { font-family:Verdana,Arial,Tahoma; font-size:8pt; color:#ffffff }
INPUT,TEXTAREA { background-color:#517aa7; border:1px solid #ffffff; font-family:Arial,Tahoma; font-size:8pt; color:#ffffff; }
</STYLE>
<Body>
<?

##### Admin-Passwort #####
$adminpasswort="*****r";


$myemail="*****@yahoo.de";

##### Soll bei jedem Eintrag eine Mail an Sie geschickt werden (ja/nein)? #####
$email_senden="ja";

########### HAUPTPROGRAMM ###########
if ($eintrag) { eintrag(); }
else if ($senden) { auswertung($kommentar,$nname,$hpage,$email); }
else if ($admin_login) { admin_login(); }
else if ($admin) { admin($passwort); }
else if ($loeschen) { loeschen($to_delete); }
else gaestebuch_zeigen();

########### FUNKTIONEN ###########

function gaestebuch_zeigen ()
{
global $PHP_SELF;
echo <<<FORMULAR
<h1>Gästebuch</h1>
<center>
<FORM METHOD="POST" ACTION="$PHP_SELF">
<INPUT TYPE="SUBMIT" NAME="eintrag" VALUE="Neuer Eintrag">
</FORM>
</center>
FORMULAR;

$eintrag=array();
$lesen=array();
$teil=array();

if (file_exists("gbuch.txt")) {

$datei=fopen("gbuch.txt","r");
while (!feof($datei)) {
$lesen=fgets($datei,100000);
array_push($eintrag,$lesen);
}

array_pop($eintrag);
arsort($eintrag);

foreach ($eintrag as $zeile) {
$teil=explode("|",$zeile);

$sekunden=$teil[0];
$zeit=$teil[1];
$name=$teil[2];
$email=$teil[3];
$hpage=$teil[4];
$text=$teil[5];

echo "<p align=\"justify\" style=\"margin-left:17pt;margin-right:25pt\">\n";
echo"$zeit
\n";
echo "<img src=\"gb_person.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\">$name
\n";

if ($email!="") {
echo "<img src=\"gb_email.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\"><a href=\"mailto:$email\">$email</a>
\n";
}

if ($hpage!="") {
echo "<img src=\"gb_home.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\"><a href=\"$hpage\" target=\"blank\">$hpage</a>
\n";
}

echo "<p align=\"justify\" style=\"margin:40pt; margin-top:0pt; margin-bottom:0pt\">$text</p>";
echo "</p>\n";
echo"<hr width=\"80%\" color=\"#2f5a4f\" size=\"1\">\n";

}

}
echo "<p align=\"right\"><a href=\"$PHP_SELF?admin_login=true\">Admin</a>\n";
}

function eintrag()
{
global $PHP_SELF;

$ua=getenv("HTTP_USER_AGENT");
if (1*strpos(strtolower($ua),"msie")>0) {
$breite1=38;
$breite2=62;
} else {
$breite1=22;
$breite2=30;
}

echo <<<EINTRAG
<p align="right">zum Gästebuch</p>
<table cellpadding="5" cellspacing="5" width="100%">
<tr>
<td align="center">

<h1>Eintrag ins Gästebuch</h1>


<FORM action="$PHP_SELF" method="post">
<table width="310">
<tr>
<td>
Name:
</td>
<td>
<input type="text" name="nname" size="$breite1" maxlength="40" VALUE="$nname">
</td>
</tr>
<tr>
<td>
Email:*
</td>
<td>
<input type="text" name="email" size="$breite1" VALUE="$email">
</td>
</tr>
<tr>
<td width="33%">
Homepage:*
</td>
<td>
<input type="text" name="hpage" size="$breite1" VALUE="$hpage">
</td>
</tr>
<tr>
<td colspan="2">
Kommentar:

<textarea name="kommentar" rows="6" cols="$breite2" VALUE="$kommentar"></textarea>
</td>
<td>

</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="senden" value="eintragen">
<INPUT TYPE="reset" VALUE=" löschen ">
</td>
<td>
</td>
</tr>
<tr>
<td>

* optional



</td>
</tr>
</table>
</FORM>

</td></tr></table>
EINTRAG;
}

function auswertung ($kommentar,$nname,$hpage,$email)
{
global $PHP_SELF;
global $myemail;
global $email_senden;

echo "<p align=\"right\"><a href=\"$PHP_SELF\">zum Gästebuch</a></p>\n";

####### Die Angaben werden von überflüssigen Zeichen befreit #######
$kommentar = stripslashes ($kommentar);
$kommentar = trim ($kommentar);
$nname = stripslashes ($nname);
$nname = trim ($nname);
$hpage = stripslashes ($hpage);
$hpage = trim ($hpage);
$email = stripslashes ($email);
$email = trim ($email);

####### Das Datum und die Zeit wird ermittelt #######
$tag=date("d.");
$m=array("Januar","Februar","M&auml;rz","April","M ai","Juni","Juli","August","September","Oktober"," November","Dezember");
$monat=$m[1*date("m")-1];
$jahr=date("Y");
$tdw=array("Sonntag","Montag","Dienstag","Mittwoch ","Donnerstag","Freitag","Samstag",);
$x=date("w");
$zeit=date("H:i:s");
$anm=$tdw[$x].",".$tag."".$monat."".$jahr."-".$zeit;
$sekunden=date("U");

####### Definition der Fehlermeldung #######
$zurueck="Klicken Sie <a href=\"javascript:history.back()\">hier</a>, um zum Formular zurückzukehren und die Fehler zu beheben.</center>";

####### Überprüfunge auf Fehler #######
if ((empty($kommentar)) || ((!ereg(".+@.+\..+", $email)) && (!empty($email))) || (empty($nname))) {echo "<center>


<h1>Fehler !</h1>

";}

### Kommentar ###
if (empty($kommentar))
{ echo "Sie keinen Kommentar eingegeben.

"; echo "$zurueck\n"; }

### Email ###
else
if(!ereg(".+@.+\..+", $email)&& !empty($email)) {
echo "Die Email-Adresse ist falsch.

"; echo "$zurueck\n"; }

### Name ###
else
if (empty($nname))
{ echo "Sie haben Ihren Namen nicht eingegeben.

"; echo "$zurueck\n"; }

####### Alles in Ordnung #######
else {

####### Daten werden gespeichert #######
$komm=ereg_replace(chr(10),"
",$kommentar);
if (!file_exists("gbuch.txt")) { $datei=fopen("gbuch.txt","w"); fclose($datei); }
$gbfile=fopen("gbuch.txt","a");
fputs($gbfile,"$sekunden|$anm|$nname|$email|$hpage |$komm\n");
fclose($gbfile);

####### FALLS $email_senden="ja", WIRD EINE EMAIL AN $myemail GESENDET #######
if ($email_senden=="ja")
{
$subject = "Eintrag";
$header = "From: Gästebuch <$myemail>\n";
$nachricht="Zeit - $anm\nName - $nname\nEmail - $email\nText - $komm";
mail($myemail,$subject,$nachricht,$header);
}

echo "<center>


<h1>Die Daten wurden gesendet.</h1>


\n";
echo "<a href=\"$PHP_SELF\">Gästebuch erneut anschauen</a></center>";
}
}

function admin_login()
{
global $PHP_SELF;

echo <<<ADMINFORMULAR
<p align="right">zum Gästebuch</p>
<center>


<form action="$PHP_SELF?admin=true" method="post">
Passwort:
<input type="password" name="passwort" size="20" maxlength="30">
<input type="submit" name="admin" value=" login ">
</form>
</center>
ADMINFORMULAR;
}

function admin($passwort)
{
global $PHP_SELF;
global $adminpasswort;

echo "<p align=\"right\"><a href=\"$PHP_SELF\">zum Gästebuch</a></p>\n";

if ($passwort==$adminpasswort)
{
echo "<form action=\"$PHP_SELF\" method=\"post\">";
echo "<table cellpadding=\"5\" cellspacing=\"5\" width=\"100%\">";

$eintrag=array();
$lesen=array();
$teil=array();

if (file_exists("gbuch.txt"))
{
$datei=fopen("gbuch.txt","r");
while (!feof($datei))
{
$lesen=fgets($datei,100000);
array_push($eintrag,$lesen);
}

array_pop($eintrag);
rsort($eintrag);

foreach ($eintrag as $zeile)
{
$teil=explode("|",$zeile);
$sekunden=$teil[0];
$zeit=$teil[1];
$name=$teil[2];
$email=$teil[3];
$hpage=$teil[4];
$text=$teil[5];
$time=ereg_replace("","",$zeit);
$time=ereg_replace(" ","",$time);
echo "<tr><td width=\"50\" align=\"right\" valign=\"top\">";
echo "<input type=\"radio\" name=\"to_delete\" value=\"$sekunden\">
";
echo "</td><td>";
echo"Zeit: $zeit
";
echo "Name: $name
";
echo "Email: $email
";
echo "Homepage: $hpage
";
echo "Kommentar: $text

";
echo "</td></tr>";
}
echo "<tr><td></td><td align=\"left\">";
echo "<input type=\"submit\" name=\"loeschen\" value=\"den markierten Eintrag löschen\">";
echo "<input type=\"reset\" value=\"abbrechen\"></td></tr>";
echo "</table></form>";
}

}

else
{
echo "<center><h1>



Falsches Passwort!</h1>\n";
echo "<p align=\center\"><a href=\"$PHP_SELF?admin_login=true\">Admin</a><center>\n";
}
}

function loeschen($to_delete)
{
global $PHP_SELF;
global $adminpasswort;

$zeile=array();
$tosave=array();

$to_delete=ereg_replace("","",$to_delete);
$to_delete=ereg_replace(" ","",$to_delete);

$datei=fopen("gbuch.txt","r");
while (!feof($datei))
{
$zeile=fgets($datei,100000);
$teil=explode("|",$zeile);
$datum=ereg_replace("","",$teil[0]);
$datum=ereg_replace(" ","",$datum);
if ($datum!=$to_delete) { array_push($tosave,$zeile); }
}
fclose($datei);

$datei=fopen("gbuch.txt","w");
foreach ($tosave as $x)
{
fputs($datei,"$x");
}
fclose($datei);

echo <<<FORMULAR
<p align="right">zum Gästebuch</p>
<center>
<h1>Der Eintrag wurde gelöscht</h1>



zum Gästebuch



<form action="$PHP_SELF" method="post">
<input type="hidden" name="passwort" value="$adminpasswort">
<input type="submit" name="admin" value="zurück zur Administration">
</form>
</center>
FORMULAR;
}
?>

So dann gibt es da noch die Textdatei wo die einträge rein gespeichert werden. Und all das funzt auch außer das folgende Fehlermeldungen immer da stehen:

Notice: Undefined variable: eintrag in c:\Inetpub\wwwroot\Bike\gaestebuch1.php on line 23

Notice: Undefined variable: senden in c:\Inetpub\wwwroot\Bike\gaestebuch1.php on line 24

Notice: Undefined variable: admin_login in c:\Inetpub\wwwroot\Bike\gaestebuch1.php on line 25

Notice: Undefined variable: admin in c:\Inetpub\wwwroot\Bike\gaestebuch1.php on line 26

Notice: Undefined variable: loeschen in c:\Inetpub\wwwroot\Bike\gaestebuch1.php on line 27


so aber ansonsten funktioniert es einwandfrei da aber diese Fehlermeldungen sehr hässlich aussehen wollte ich fragen wo da mein Fehler liegt das er mir diese Fehler anzeigt???

Kann mir einer Helfen???

Danke im Vorraus!
djrace ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.12.2004, 19:07  
Gast
 
Beiträge: n/a
Standard

1. Es ist schon ein Frechheit, so einen langen Quellcode unformatiert zu posten
2. Was hat diese Frage in einem Fortgeschrittenen-Forum zu suchen
3. Undefined variable ist doch sehr aussagekräftig, oder? PHP kennt diese Variable nicht
4. Mit Hilfe der Suchfunktion sollte sich eine Lösung finden lassen
5. Stichwort isset und register_globals

Gruß
phpfan
 
Alt 25.12.2004, 19:19  
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 102
djrace
Standard

register globals habe ich in der php.ini auf on gestellt trotzdem geht das net
djrace ist offline  
Alt 25.12.2004, 19:23  
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 102
djrace
Standard

was is isset???


ach ja außerdem was soll php net kennen??

das gästebuch funzt doch außer dieser fehler die angezeigt werden die aber eigentlich gar keine sind weil es ja funktioniert
djrace ist offline  
Alt 25.12.2004, 19:29  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von djrace
was is isset???
Zu faul, in der Doku nachsehen?

Zitat:
Zitat von djrace
ach ja außerdem was soll php net kennen??
Notice: Undefined variable: eintrag
Ist das wirklich so schwer zu verstehen???
Zitat:
Zitat von djrace
das gästebuch funzt doch außer dieser fehler die angezeigt werden die aber eigentlich gar keine sind weil es ja funktioniert
Wenn es richtig funktionieren würde, dann würdest du hier nicht nachfragen.

Gruß
phpfan

PS: Kann das mal ein Moderator ins Anfänger-Forum verschieben.
 
Alt 25.12.2004, 19:48  
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 102
djrace
Standard

Also

sorry ich verstehe schon was dieser Fehler heißt.

Ich zeige euch jetze hier mal den link zu dem orig. gästebuch.

http://www.widiker.de/php-skripte/ga...2.phtml?co=yes

genauso habe ich das auch gedownloadet d.h. das script ist nicht falsch irgendwas mit meinem php stimmt nicht. Aber ich weiß nicht was.

Und hatte gehofft das hier jemand schonmal das selbe problem hatte und mir helfen könnte
djrace ist offline  
Alt 25.12.2004, 20:27  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von djrace
sorry ich verstehe schon was dieser Fehler heißt.
Dann korrigiere doch die Fehler, verdammt noch mal!

Zitat:
genauso habe ich das auch gedownloadet d.h. das script ist nicht falsch irgendwas mit meinem php stimmt nicht.
Ein Script, das die Existenz von Variablen vor der Verwendung nicht testet, ist übelster Mist.
Zitat:
Aber ich weiß nicht was.
RTFM und RTFAQ.

btw: Kann mal jemand diese Anfängerfrage in das Forum verschieben, in dem Anfänger ihre Fragen stellen? Danke.
 
Alt 25.12.2004, 20:33  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von djrace
genauso habe ich das auch gedownloadet d.h. das script ist nicht falsch irgendwas mit meinem php stimmt nicht. Aber ich weiß nicht was.
Na geil! Ich hoffe, dass nicht jeder so denkt. Man kann doch nicht unsauber coden und wenn ein Fehler kommt, die php.ini so ändern, dass keine Fehlermeldungen mehr ausgegeben werden ... Dann hätten sich die Entwickler nicht die Mühe machen brauchen und Fehlermeldungen erstellen.
 
Alt 26.12.2004, 02:12  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum.

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

moved to PHP - Anfänger
__________________
mod = master of disaster
Waq ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
gb_person.gif, ga gästebuch admin standardpasswort, ga gästebuch admin passwort, ga gästebuch standard passwort, smarty php notice: \undefined variable: admin in\, php gästebuch und eintrag löschen, ffaf49, widiker gästebuch

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:46 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.