ph-Code überarbeiten
killa_jan
- php
0 Felix Riesterer0 Tom
Hallo,
von einem Freund habe ich einen Quelltext bekommen. Er soll Einträge für ein Gästebuch speichern. Das funktionert auch und ich kann es anwenden. Jedoch funktioniert das nur, wenn man Name, email, eine Webside und den EIntrag selber abgibt. Das sind die Pflichtfelder, die man ausfüllen muss.
Wie muss ich den Code nun umstellen, damit nurnoch der Name und der Eintrag Pflichtfelder sind?
<?php
// Kontrolle ob settings.inc.php vorhanden
if(file_exists("settings.inc.php")) {
// settings.inc.php includieren
include("settings.inc.php");
}
else {
// wenn settings.inc.php nicht vorhanden ist
echo "<br><br><center><font face="Verdana" size="2"><font color="#FF0000">Datei</font><i> 'settings.inc.php' </i><font color="#FF0000">wurde nicht gefunden!</font></font></center>";
}
// Verbindung zur Datenbank herstellen
$link = mysql_connect($db_host, $db_user, $db_pass)
or die("<br><br><center><font face="Verdana" size="2"><font color="#FF0000">Keine Verbindung zur Datenbank möglich!</font></font></center>");
mysql_select_db($db_name)
or die("<br><br><center><font face="Verdana" size="2"><font color="#FF0000">Auswahl der Datenbank</font><i> '".$db_name."' </i><font color="#FF0000">fehlgeschlagen!</font></font></center>");
$settings = mysql_query("SELECT * FROM ".$prefix."settings");
while($set=mysql_fetch_array($settings)) {
$titel = $set['titel'];
$steps = $set['steps'];
$ueber = $set['ueber'];
$titel_bild = $set['titel_bild'];
$titel_text = $set['titel_text'];
$ff_ueber = $set['ff_ueber'];
$fs_ueber = $set['fs_ueber'];
$fc_ueber = $set['fc_ueber'];
$ff_normal = $set['ff_normal'];
$fs_normal = $set['fs_normal'];
$fc_normal = $set['fc_normal'];
$ff_name = $set['ff_name'];
$fs_name = $set['fs_name'];
$fc_name = $set['fc_name'];
$ff_extra = $set['ff_extra'];
$fs_extra = $set['fs_extra'];
$fc_extra = $set['fc_extra'];
$ff_entry = $set['ff_entry'];
$fs_entry = $set['fs_entry'];
$fc_entry = $set['fc_entry'];
$ff_menu = $set['ff_menu'];
$fs_menu = $set['fs_menu'];
$fc_menu = $set['fc_menu'];
$bg_color_1 = $set['bg_color_1'];
$bg_color_2 = $set['bg_color_2'];
$color_no = $set['color_no'];
$deco_no = $set['deco_no'];
$color_mo = $set['color_mo'];
$deco_mo = $set['deco_mo'];
$cursor_mo = $set['cursor_mo'];
}
echo "<html>
<head>
<title>".$titel."</title>
<style>
a {
color: ".$color_no.";
text-decoration: ".$deco_no.";
}
a:hover {
color: ".$color_mo.";
text-decoration: ".$deco_mo.";
cursor: ".$cursor_mo.";
}
table {
border-color: #000000;
}
</style>
</head>
<body>
<br>
<center>";
$result = mysql_query("SELECT * FROM ".$prefix."entry WHERE (IP='".$REMOTE_ADDR."' AND text='".$_POST['text']."' AND name='".$_POST['name']."')");
$ident = mysql_num_rows($result);
if(!$_POST['name'] OR !$_POST['email'] OR !$_POST['text']) {
echo "<center>
<br>
<br>
<font style="font-size:".$fs_normal."px;color:".$fc_normal.";font-family:".$ff_normal."">
Bitte alle Pflichtfelder ausfüllen!<br>
[<a href="javascript:history.back()">zurück</a>]
</font>
</center>";
}
elseif($ident=="1") {
echo "<center>
<br>
<br>
<font style="font-size:".$fs_normal."px;color:".$fc_normal.";font-family:".$ff_normal."">
Bitte kein Doppelposting!<br>
[<a href="javascript:history.back()">zurück</a>]
</font>
</center>";
}
else {
$muster = "^([a-zA-Z0-9.\_-]+)@([a-zA-Z0-9.-]+.[A-Za-z][A-Za-z]+)$";
// E-Mail kontrollieren
if(ereg($muster, $_POST['email'])) {
mysql_query("INSERT INTO ".$prefix."entry (name,email,homepage,text,datum,IP) VALUES ('".$_POST['name']."','".$_POST['email']."','".$_POST['homepage']."','".$_POST['text']."','".$datum."','".$REMOTE_ADDR."')");
echo "<center>
<br>
<br>
<font style="font-size:".$fs_normal."px;font-color:".$fc_normal.";font-family:".$ff_normal."">
Eintrag erfolgreich!<br>
Sie werden nun zum Gästebuch weitergeleitet. Falls dies nicht der Fall ist nutzen Sie bitte diesen <a href="index.php">Link</a>.
</font>
</center>";
echo "<script>setTimeout("location.href='index.php'",2000)</script>";
}
else {
echo "<center>
<br>
<br>
<font style="font-size:".$fs_normal."px;color:".$fc_normal.";font-family:".$ff_normal."">
Bitte gültige E-Mail Adresse angeben!
</font>
</center>";
}
}
?>
Ich weiß, dass ich mehrer Tags löschen muss. Bei einigen weiß ich es auch. Jedoch habe ich es bis jetzt noch nicht gemacht, da ich das falsche löschen könnte und somit evtl. Fehler einbaue könnte, die euch irritieren.
Um es besser zu lernen, würde ich dann gerne den richtigen, fertigen Code zum Lernen verwenden.
Vielen Dank
killa jan
Lieber killa_jan,
Um es besser zu lernen, würde ich dann gerne den richtigen, fertigen Code zum Lernen verwenden.
mit dem fertigen Code lernst Du nix mehr, da Du Dich dann nicht mehr damit auseinandersetzen musst.
Du möchtest Dich in die Grundlagen einlesen, um den Code zu _verstehen_ und anschließend nach Deinen Vorstellungen abändern zu können. Dazu lohnt es sich nach "PHP Tutorial" zu suchen.
Liebe Grüße,
Felix Riesterer.
hallo,
stimmt das so ?
<?php
// Kontrolle ob settings.inc.php vorhanden
if(file_exists("settings.inc.php")) {
// settings.inc.php includieren
include("settings.inc.php");
}
else {
// wenn settings.inc.php nicht vorhanden ist
echo "<br><br><center><font face="Verdana" size="2"><font color="#FF0000">Datei</font><i> 'settings.inc.php' </i><font color="#FF0000">wurde nicht gefunden!</font></font></center>";
}
// Verbindung zur Datenbank herstellen
$link = mysql_connect($db_host, $db_user, $db_pass)
or die("<br><br><center><font face="Verdana" size="2"><font color="#FF0000">Keine Verbindung zur Datenbank möglich!</font></font></center>");
mysql_select_db($db_name)
or die("<br><br><center><font face="Verdana" size="2"><font color="#FF0000">Auswahl der Datenbank</font><i> '".$db_name."' </i><font color="#FF0000">fehlgeschlagen!</font></font></center>");
$settings = mysql_query("SELECT * FROM ".$prefix."settings");
while($set=mysql_fetch_array($settings)) {
$titel = $set['titel'];
$steps = $set['steps'];
$ueber = $set['ueber'];
$titel_bild = $set['titel_bild'];
$titel_text = $set['titel_text'];
$ff_ueber = $set['ff_ueber'];
$fs_ueber = $set['fs_ueber'];
$fc_ueber = $set['fc_ueber'];
$ff_normal = $set['ff_normal'];
$fs_normal = $set['fs_normal'];
$fc_normal = $set['fc_normal'];
$ff_name = $set['ff_name'];
$fs_name = $set['fs_name'];
$fc_name = $set['fc_name'];
$ff_extra = $set['ff_extra'];
$fs_extra = $set['fs_extra'];
$fc_extra = $set['fc_extra'];
$ff_entry = $set['ff_entry'];
$fs_entry = $set['fs_entry'];
$fc_entry = $set['fc_entry'];
$ff_menu = $set['ff_menu'];
$fs_menu = $set['fs_menu'];
$fc_menu = $set['fc_menu'];
$bg_color_1 = $set['bg_color_1'];
$bg_color_2 = $set['bg_color_2'];
$color_no = $set['color_no'];
$deco_no = $set['deco_no'];
$color_mo = $set['color_mo'];
$deco_mo = $set['deco_mo'];
$cursor_mo = $set['cursor_mo'];
}
echo "<html>
<head>
<title>".$titel."</title>
<style>
a {
color: ".$color_no.";
text-decoration: ".$deco_no.";
}
a:hover {
color: ".$color_mo.";
text-decoration: ".$deco_mo.";
cursor: ".$cursor_mo.";
}
table {
border-color: #000000;
}
</style>
</head>
<body>
<br>
<center>";
$result = mysql_query("SELECT * FROM ".$prefix."entry WHERE (IP='".$REMOTE_ADDR."' AND text='".$_POST['text']."' AND name='".$_POST['name']."')");
$ident = mysql_num_rows($result);
if(!$_POST['name'] OR !$_POST['text']) {
echo "<center>
<br>
<br>
<font style="font-size:".$fs_normal."px;color:".$fc_normal.";font-family:".$ff_normal."">
Bitte alle Pflichtfelder ausfüllen!<br>
[<a href="javascript:history.back()">zurück</a>]
</font>
</center>";
}
elseif($ident=="1") {
echo "<center>
<br>
<br>
<font style="font-size:".$fs_normal."px;color:".$fc_normal.";font-family:".$ff_normal."">
Bitte kein Doppelposting!<br>
[<a href="javascript:history.back()">zurück</a>]
</font>
</center>";
}
else {
$muster = "^([a-zA-Z0-9.\_-]+)@([a-zA-Z0-9.-]+.[A-Za-z][A-Za-z]+)$";
// E-Mail kontrollieren
//Emailkontrole auskommentiert
//if(ereg($muster, $_POST['email'])) {
mysql_query("INSERT INTO ".$prefix."entry (name,email,homepage,text,datum,IP) VALUES ('".$_POST['name']."','".$_POST['email']."','".$_POST['homepage']."','".$_POST['text']."','".$datum."','".$REMOTE_ADDR."')");
echo "<center>
<br>
<br>
<font style="font-size:".$fs_normal."px;font-color:".$fc_normal.";font-family:".$ff_normal."">
Eintrag erfolgreich!<br>
Sie werden nun zum Gästebuch weitergeleitet. Falls dies nicht der Fall ist nutzen Sie bitte diesen <a href="index.php">Link</a>.
</font>
</center>";
echo "<script>setTimeout("location.href='index.php'",2000)</script>";
/*}
else {
echo "<center>
<br>
<br>
<font style="font-size:".$fs_normal."px;color:".$fc_normal.";font-family:".$ff_normal."">
Bitte gültige E-Mail Adresse angeben!
</font>
</center>";
}*/
}
?>
Lieber killa,
hallo,
stimmt das so ?
keine Ahnung. Hast Du's ausprobiert?
Im Übrigen halte ich das gepostete GB-Script für absoluten Müll. Der HTML-Code, den es ausspuckt, verdient diese Bezeichnung nicht wirklich... Es gibt viel modernere und bessere Möglichkeiten. Hier im Forumsarchiv wirst Du bestimmt die ein oder andere Empfehlung für ein GB-Script finden - darunter auch meine eigene.
Liebe Grüße,
Felix Riesterer.
Hello Jan,
grundsätzlich schließe ich mich Felix' Meinung an.
eine von vielen Empfehlungen: http://tut.php-quake.net/de/
[...] soll Einträge für ein Gästebuch speichern. Das funktionert auch und ich kann es anwenden. Jedoch funktioniert das nur, wenn man Name, email, eine Webside und den EIntrag selber abgibt. Das sind die Pflichtfelder, die man ausfüllen muss.
Wie muss ich den Code nun umstellen, damit nurnoch der Name und der Eintrag Pflichtfelder sind?
Um herauszufinden, an welcher Stelle überprüft wird, ob die entsprechenden Felder ausgefüllt sind, solltest Du Dir das HTML anschauen, was im Browser ankommt, dort nach dem Formular ausschau halten und im Formular die Namen der <input>-Elemente feststellen, um die es geht.
Außerdem solltest Du die Formular-Request-Methode feststellen, um zu wissen, ob die Parameter über $_GET oder $_POST ins PHP-Script gelangen werden.
Dann kannst Du anschließend im Script nach dem passenden globalen Array ($_GET oder $_POST) ausschau halten, und die Vergleiche suchen, die das Ausfüllen der Formularfelder erzwingen.
<body>
<br>
<center>";
$result = mysql_query("SELECT * FROM ".$prefix."entry WHERE (IP='".$REMOTE_ADDR."' AND text='".$_POST['text']."' AND name='".$_POST['name']."')");
$ident = mysql_num_rows($result);
if(!$_POST['name'] OR !$_POST['email'] OR !$_POST['text'])
{
echo "<center>
<br>
<br>
<font style="font-size:".$fs_normal."px;color:".$fc_normal.";font-family:".$ff_normal."">
Bitte alle Pflichtfelder ausfüllen!<br>
[<a href="javascript:history.back()">zurück</a>]
</font>
</center>";
// E-Mail kontrollieren
if(ereg($muster, $_POST['email'])) {
mysql_query("INSERT INTO ".$prefix."entry (name,email,homepage,text,datum,IP) VALUES ('".$_POST['name']."','".$_POST['email']."','".$_POST['homepage']."','".$_POST['text']."','".$datum."','".$REMOTE_ADDR."')");
echo "<center>
<br>
<br>
Liebe Grüße aus dem Cyberspace
Tom vom Berg