PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

24-03-2005, 10:53
|
bistar
Junior Member
|
|
Registriert seit: May 2003
Beiträge: 60
|
|
Gästebuchumbau: Nicht alle Felder werden gespeichert, fehler im Code?
Hallo,
ich habe mein Gästebuch ein wenig umgebaut, d.h. ein paar Felder (reine Textfelder) hinzugefügt. Die DB habe ich dementsprechend angepasst. Nach dem Speichern bekomme ich keine Fehlermeldung und auch die generierte Mail wird erfolgreich gesendet. Doch in der Datenbank werden nicht alle Daten aus den Feldern gespeichert, sondern nur die Daten aus den Feldern, die vor meinem Umbau auch schon vorhanden waren (nämlich gbook_title, gbook_autor und gbook_text)...Hinzugefügt von mir: gbook_text1 - gbook_text5
Untenstehend der Code. Evtl. ein wenig undurchsichtig, da andere Fuktionen dabei sind (email, userid), aber ich wollte nur mal wissen, ob dort ein definitiver Fehler zu finden ist...
PHP-Code:
<?php
if ($config['gbook_eod']==1) {
$error=0;
if (isset($_REQUEST['action'])) $ACTION=$_REQUEST['action'];
else $ACTION='view';
if ($ACTION==$_POST['save'] || $ACTION==$_POST['preview']) {
$floodcontrol=time() - ($config['gbook_floodctrl']*60);
$infocount=$DB->fetch_array($DB->query("SELECT COUNT(*)
FROM ".$db_tab['gbook']." WHERE gbook_userid='".$USER['id']."' &&
gbook_time>'".$floodcontrol."' LIMIT 1"));
if ($infocount[0]>0) $error=3;
elseif (!checkusername($_POST['gbook_autor'],1)) $error=4;
elseif (($_POST['gbook_notify']==1 || $_POST['gbook_email']!='') && !
emailcheck($_POST['gbook_email'],1)) $error=5;
else {
if ($ACTION==$_POST['save']) {
if ($DB->query("INSERT INTO ".$db_tab['gbook']." (gbook_time,
gbook_autor, gbook_title, gbook_email, gbook_check, gbook_text1,
gbook_text2, gbook_text3, gbook_text4, gbook_text5, gbook_text,
gbook_userid, gbook_notify) VALUES ('".time()."','".$_POST
['gbook_autor']."','".addslashes($_POST['gbook_title'])."','".$_POST
['gbook_email']."','".$_POST['gbook_check']."','".$_POST
['gbook_text1']."','".$_POST['gbook_text2']."','".$_POST
['gbook_text3']."','".$_POST['gbook_text4']."','".$_POST
['gbook_text5']."','".$_POST['gbook_text']."','".$USER['id']."','".$_POST
['gbook_notify']."')")) {
$gbid=$DB->insert_id();
$autor=$_POST['gbook_autor'];
//jetzt kommt die generierte Mail
$mail_title=$config['site_name'].' - '.$lang['new_gbentry'].': '.$_POST
['gbook_title'];
eval ("\$mail_text= \"".getTemplate
("guestbook/signgb_mail_notify")."\";");
notifymail('gbook',$mail_title,$mail_text);
//jetzt kommt die generierte IM
$im_title=$lang['new_gbentry'].': '.$_POST['gbook_title'];
eval ("\$im_text= \"".getTemplate("guestbook/signgb_im_notify")."\";");
notifyim('gbook',$im_title,$im_text);
header("location: include.php?event=7&bimondoSID=".session_id());
exit();
}
$error=6;
}
//jetzt kommt die Preview
elseif ($ACTION==$_POST['preview']) {
$counter=$DB->fetch_array($DB->query("SELECT COUNT(*)
FROM ".$db_tab['gbook'].""));
$gbook_number=$counter[0]+1;
//hier wird festgelegt, ob die Email angeziegt wird
if ($_POST['gbook_check']==1 && $_POST['gbook_email']!='') {
$userinfo['user_email']=$gbook_email;
eval ("\$gbook_email= \"".getTemplate("member_email_iconlink")."\";");
}
else $gbook_email=' ';
$gbook_title=htmlentities($_POST['gbook_title']);
$gbook_text=htmlentities($_POST['gbook_text']);
$gbook_text1=htmlentities($_POST['gbook_text1']);
$gbook_text2=htmlentities($_POST['gbook_text2']);
$gbook_text3=htmlentities($_POST['gbook_text3']);
$gbook_text4=htmlentities($_POST['gbook_text4']);
$gbook_text5=htmlentities($_POST['gbook_text5']);
$gbook_time=formattime();
eval ("\$site_body.= \"".getTemplate("guestbook/signgb_preview")."\";");
}
}
}
if ($error>0) eval ("\$sign_message= \"".getTemplate
("guestbook/signgb_error".$error."")."\";");
else eval ("\$sign_message= \"".getTemplate("guestbook/signgb_message")."\";");
if ($_POST['gbook_autor']!='') $gbook_autor=$_POST['gbook_autor'];
else $gbook_autor=$USER['nick'];
if ($_POST['gbook_email']!='') $gbook_email=$_POST['gbook_email'];
else $gbook_email=$USER['email'];
if ($_POST['gbook_check']==1) $check1="checked";
elseif ($ACTION=='view') $check1="checked";
if ($config['gbook_commenteod']==1) {
if ($_POST['gbook_notify']==1) $check2="checked";
eval ("\$sign_comment= \"".getTemplate("guestbook/signgb_comment")."\";");
}
if (trim($_POST['gbook_title'])!='') $gbook_title=htmlentities($_POST
['gbook_title']);
if (trim($_POST['gbook_text1'])!='') $gbook_text1=htmlentities($_POST
['gbook_text1']);
if (trim($_POST['gbook_text2'])!='') $gbook_text2=htmlentities($_POST
['gbook_text2']);
if (trim($_POST['gbook_text3'])!='') $gbook_text3=htmlentities($_POST
['gbook_text3']);
if (trim($_POST['gbook_text4'])!='') $gbook_text4=htmlentities($_POST
['gbook_text4']);
if (trim($_POST['gbook_text5'])!='') $gbook_text5=htmlentities($_POST
['gbook_text5']);
if (trim($_POST['gbook_text'])!='') $gbook_text=htmlentities($_POST
['gbook_text']);
unset($sign_format);
if ($config['gbook_ubb']==1) eval ("\$sign_format= \"".getTemplate
("format_text")."\";");
if ($config['gbook_smilies']==1) {
$smilies=new smilies();
$sign_format.=$smilies->getSmilies("1");
}
if ($sign_format) eval ("\$sign_format= \"".getTemplate
("format_table")."\";");
eval ("\$site_body.= \"".getTemplate("guestbook/signgb")."\";");
}
else {$event=23; include ("admin/config/event.php");}
?>
Gruß
bistar
Geändert von bistar (24-03-2005 um 10:55 Uhr)
|

24-03-2005, 10:59
|
Shurakai
Master  
|
|
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.084
|
|
Heißen die Felder denn auch richtig? Was sagt mysql_error()?
Übrigens: NIE NIE NIE $_POST u.ä. irgendwas direkt in die DB einfügen....!!! IMMER escapen..!
|

24-03-2005, 11:06
|
bistar
Junior Member
|
|
Registriert seit: May 2003
Beiträge: 60
|
|
Hallo,
ich bekomme ja keine Fehlermeldung! Nach dem Speichern erhalte ich die Bestätigung, dass die Daten erfolgreich eingetragen wurden und ebenso die Email mit "Ein neuer Eintrag in die Liste".
Wenn ich dann auf die Übersicht des Gäsebuches gehe (viewgb.php), dann erscheinen die Einträge vom Autor, Titel und gbook_text aber halt nicht die anderen...sie bleiben leer und die DB-Tabelle ebenso.
$_POST war ja schon im Ursprungsscript definiert, deswegen habe ich halt "meine Zusätze" ebenfalls so gelegt...
hier ein Screen der Übersicht:
klick
wobei meine Zusätze:
Telefon=gbook_text1
Kennzeichen=gbook_text2
Auftrag=gbook_text3
Terminam=gbook_text4
informiert=gbook_text5
bistar
Geändert von bistar (24-03-2005 um 11:12 Uhr)
|

24-03-2005, 11:52
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
|
|
|

24-03-2005, 12:11
|
bistar
Junior Member
|
|
Registriert seit: May 2003
Beiträge: 60
|
|
*verwirrt*
...es bleibt dabei...keine Fehlermeldung
|

28-03-2005, 11:20
|
bistar
Junior Member
|
|
Registriert seit: May 2003
Beiträge: 60
|
|
Hallo,
nach (fast) tagelanger Suche im php-Code, habe ich endlich das Maleur gefunden...
Der Fehler lag im Template:
Code:
<input type="text" size="30" name="gbook_text_a" value="$gbook_text_a".....
...ich hatte vergessen name="" der Variablen anzupassen, deswegen wurden die Inhalte aus den betreffenden Textfeldern nicht gespeichert, und deswegen auch keine Fehlermeldung.
Danke an diejenigen, die mir geholfen haben...
bistar
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|