Problem mit dem Script-Einfügen

Hier werden Probleme rund um das Zahlen Captcha behandelt

Moderator: frameguard

Problem mit dem Script-Einfügen

Beitragvon Freestylz » 30.12.2006, 19:57

Ich benutze das phpkit, ich habe alles so eingebaut wie beschrieben. Der code ist da und die eingabe ist möglich. Nur wird der Code nicht überprüft. wenn ich die abfrage so in mein gästebuch template einfüge erscheint dieser fehler:

Parse error: parse error, unexpected T_CHARACTER, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/web13/html/guestbook/signgb.php(96) : eval()'d code on line 16

der code vom gästebuch template sieht sieht so aus:

Code: Alles auswählen

function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
   $char = substr($string, $i, 1);
   $keychar = substr($key, ($i % strlen($key))-1, 1);
   $char = chr(ord($char)+ord($keychar));
   $result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "123456789");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);

<script language="Javascript" src="admin/lib/mycode.js"></script>

<table class="standard" cellspacing="1" cellpadding="4" width="100%">
<tr>
  <td class="heads" colspan="3">Eintragen</td>
</tr>
<tr>
   <form name="myform" method="post" action="include.php?path=guestbook/signgb.php">
   <input type="hidden" name="mode" value="0" onFocus="mymode()" />
   <input type="hidden" name="mode" value="0" onFocus="mymode()" />
  <td class="left" width="15%">Autor</td>
  <td class="right" width="35%">
   <input type="text" size="30" name="gbook_autor" value="$gbook_autor" style="width:90%" /></td>
  <td class="right" width="50%" rowspan="8" align="center">$sign_message</td>
</tr>
<tr>
  <td class="left">Titel</td>
  <td class="right">
   <input type="text" size="30" name="gbook_title" value="$gbook_title" style="width:90%" />
</tr>
<tr>
  <td class="left" nowrap>E-Mail-Adresse</td>
  <td class="right">
   <input type="text" size="30" name="gbook_email" value="$gbook_email" style="width:90%" /></td>
</tr>
<tr>
  <td class="left" nowrap>E-Mail-Optionen</td>
  <td class="right">
   <input class="checkbox" type="checkbox" name="gbook_check" value="1" $check1 /> <font class="small">Im G&auml;stebuch anzeigen</font>
   $sign_comment
  </td>
</tr>
<tr>
  <td class="left">Homepage</td>
  <td class="right">
   <input type="text" size="30" name="gbook_hpage" value="$gbook_hpage" style="width:90%" /></td>
</tr>
<tr>
  <td class="left">ICQ</td>
  <td class="right">
   <input type="text" size="10" name="gbook_icqnr" value="$gbook_icqnr" maxlength="10" /></td>
</tr>
<tr>
  <td class="left">Code</td>
  <td class="right">
   <img src="captcha/captcha.php" border="0" title="sicherheitscode"></td>
</tr>
<tr>
  <td class="left">Code Eingabe</td>
  <td class="right">
   <input type="text" name="sicherheitscode" size="4"></td>
</tr>
   
  <tr>
  <td class="left" valign="top">Text</td>
  <td class="right" colspan="2">
   <table width="100%" cellpadding="0" cellspacing="0" border="0">
    <tr>
     <td width="80%" valign="top" rowspan="2">
      <textarea rows="12" name="content" cols="60" style="width:100%" wrap="soft" onFocus=myselection(this) onclick=myselection(this) onChange=myselection(this)>$gbook_text</textarea></td>
     <td width="20%" valign="top">$sign_format</td>
    </tr>
   </table>
  </td>
</tr>
<tr>
  <td class="heads" colspan="3" align="center">
   <input type="hidden" name="gbook_time" value="$gbook_time" />
   <input type="hidden" name="gb_uid" value="$gb_uid" />
   <input type="submit" name="action" value="$lang[preview]" />
   <input type="hidden" name="preview" value="$lang[preview]" />
   <input type="submit" name="action" value="$lang[save]" />
   <input type="hidden" name="save" value="$lang[save]" /></td>
</tr>

   </form>
</table>


Es gibt eine datei namens "mycode.js" die code enthält. schreibe ich es darein hat es denselben effekt als würde ich es draussen lassen.

Mich interessiert wo ich die abfrage einfügen soll da ich bis auf mycode.js sonst keine scriptdatei habe ind der ansatzweise funktionen aufgezeichnet sind. Ich bin kein php-progger. das was ich kann hab ich durch probieren und testen erlernt und das ist nicht viel.


wäre gut wenn jemand mir dabei helfen könnte das script einzufügen


mfg
Freestylz
 
Beiträge: 5
Registriert: 30.12.2006, 19:52

Beitragvon Sebi » 31.12.2006, 10:38

hey,

du rufst ja deine "guestbook/signgb.php" auf, d.h. du schreibst dort folgenden Code am Anfang der Datei rein:


Code: Alles auswählen
if ($_POST['action']) //Name deines Submit Buttons
{
session_start();
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
   $char = substr($string, $i, 1);
   $keychar = substr($key, ($i % strlen($key))-1, 1);
   $char = chr(ord($char)+ord($keychar));
   $result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "123456789");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);

/*Hier schreibst du dann deine restlichen Dinge rein die passieren, wenn der Gästebuch eintrag erfolgreich war */

}
else {
echo 'Der eingetragene Code ist falsch!';
}
}
Sebi
 
Beiträge: 44
Registriert: 26.12.2006, 12:05

Beitragvon Freestylz » 31.12.2006, 14:38

Wenn ich das in den anfang reinschreibe erscheint wieder ein fehler:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/web13/html/guestbook/signgb.php(96) : eval()'d code on line 2

Ich habe in dieser datei anscheinend keine abfrage die mir sagt was passiert wenn der eintrag erfolgreich war

soetwas steht aber in etwa in der mycode.js die aufgerufen wird:

Code: Alles auswählen

// *** Text bei der Eingabeaufforderung ***********
standard = "Geben Sie bitte den gewünschten Text ein:";
texteingabe = "Geben Sie bitte Ihren Text ein - ";
linkname = "Geben Sie bitte den Linknamen an (optional).";
linkadresse = "Geben Sie bitte die vollständige Adresse des Links an.";
emailname = "Geben Sie bitte die Email Adresse ein.";
listentyp = "Für eine numerierte Liste geben Sie eine '1' an. Für eine alphabetische ein 'a'.\nFür eine einfache Punktliste drücken Sie ok.";
listenwerte = "Geben Sie bitte die Listenpunkte ein und drücken Sie anschliessend ok.\nAlternativ können Sie 'Abbrechen' wählen, um die Liste direkt fertigzustellen.";
highlightmsg = "Alles markiert und in die Zwischenablage kopiert.";
searchfailed = "Die Suche lieferte kein Ergebnis.";
admincss = "<link rel='stylesheet' href='style.css' type='text/css'>";

//**** Für Einzelzeichen *****
function singler(beammeup) {
document.myform.content.value+= beammeup+" ";
document.myform.content.focus();
}
//**** Pop-Fenster **********
function helpwindow(w,h,e) {
window.open("include.php?path=misc/help.php&explain="+e,"helpwindow","toolbar=yes,scrollbars=yes,resizable=yes,location=yes,directories=yes,status=yes,menubar=yes,width="+w+",height="+h);
}
function smiliewindow(w,h) {
window.open("popup.php?path=misc/smiliewindow.php&window_w_size="+w+"&window_h_size="+h,"smilies","toolbar=no,scrollbars=yes,resizable=yes,width="+w+",height="+h);
}
function windowsmilie(w,h,opt) {
window.open("popup.php?path=smilies&window_w_size="+w+"&window_h_size="+h+"&option="+opt,"smilies","toolbar=no,scrollbars=yes,resizable=yes,width="+w+",height="+h);
}
function morelinkswindow(w,h,opt) {
window.open("popup.php?path=morelinks&window_w_size="+w+"&window_h_size="+h+"&option="+opt,"morelinks","toolbar=no,scrollbars=yes,resizable=yes,width="+w+",height="+h);
}
function readfilewindow(w,h,opt) {
window.open("popup.php?path=readfile&window_w_size="+w+"&window_h_size="+h+"&option="+opt,"readfile","toolbar=no,scrollbars=yes,resizable=yes,width="+w+",height="+h);
}
function finduserID(w,h,opt) {
window.open("popup.php?path=finduser&window_w_size="+w+"&window_h_size="+h+"&option="+opt,"finduser","toolbar=no,scrollbars=yes,resizable=yes,width="+w+",height="+h);
}
function downloadwindow(w,h,opt) {
window.open("popup.php?path=download&window_w_size="+w+"&window_h_size="+h+"&option="+opt,"download","toolbar=no,scrollbars=yes,resizable=yes,width="+w+",height="+h);
}
function attachment(w,h) {
window.open("popup.php?path=script/attachment.php","attachment","toolbar=no,scrollbars=yes,resizable=yes,width="+w+",height="+h);
}
function previewWindow(w,h) {
window.open("../popup.php?path=admin/popup/preview.php&window_w_size="+w+"&window_h_size="+h,"preview","toolbar=no,scrollbars=yes,resizable=yes,width="+w+",height="+h);
}

function previewTemplate() {
var inf=document.edittemplate.template_value.value + admincss;
popupwindow=window.open(", ","popup","toolbar=no,status=no,scrollbars=yes,resizable=yes");
popupwindow.document.write("" + inf + "");
}

//******** Wahl modus *******
function modus(mymode) {
document.cookie = "mycodemode="+0+"; path=/; expires=Wed, 1 Jan 2020 00:00:00 GMT;";
}
function mymode(myform) {
if (myform.mode[0]) return true;
else return false;
}

function mystatus(myvalue) {
document.myform.status.value = eval(myvalue+"_text");
}

function setfocus(myform) {
myform.content.focus();
}

var textmarkiert = "";
auswahltext = "";

//********* Textauswahl ******
function myselection(doit) {
textmarkiert = (document.all) ? document.selection.createRange().text : document.getSelection();
if (doit.createTextRange) doit.caretPos = document.selection.createRange().duplicate();
return true;
}

function mytextadd(textneu,myform) {
if (myform.content.createTextRange && myform.content.caretPos) {
  var caretPos = myform.content.caretPos;
  caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? textneu + ' ' : textneu;
} else myform.content.value+=textneu
auswahltext = "";
setfocus(myform);
}

function mycode(myform,mycode,fensterausgabe) {
setfocus(myform);
if ((mymode(myform)) || (mycode=="IMG")) {
  if (textmarkiert) var direkttext=textmarkiert;
  else var direkttext=fensterausgabe;
  inserttext = prompt(standard+"\n["+mycode+"]Ihr Text[/"+mycode+"]",direkttext);
  if ((inserttext != null) && (inserttext != "")) {
   auswahltext = "["+mycode+"]"+inserttext+"[/"+mycode+"]";
   mytextadd(auswahltext,myform);
  }
}
else {
  untersagt = false;
  for (i = 0; i < bbtags.length; i++) {
   if (bbtags[i] == mycode) untersagt = true;
  }
  if (!untersagt) {
   myform.content.value += "["+mycode+"]";
   arraypush(bbtags,mycode);
  }
}
setfocus(myform);
}

//**** Link und email***********

function speciallink(myform,mytype) {
   if (textmarkiert) { var direkttext=textmarkiert; } else { var direkttext=""; }
   linktext = prompt(linkname,direkttext);
      var fensterausgabe;
      if (mytype == "URL") {
         ausgabe = linkadresse;
         ausgabeinhalt = "http://";
         }
      else {
         ausgabe = emailname;
         ausgabeinhalt = "";
         }
   linkurl = prompt(ausgabe,ausgabeinhalt);
   if ((linkurl != null) && (linkurl != "")) {
      if ((linktext != null) && (linktext != "")) {
         auswahltext = "["+mytype+"="+linkurl+"]"+linktext+"[/"+mytype+"] ";
         mytextadd(auswahltext,myform);
         
         }
      else{
         auswahltext = "["+mytype+"]"+linkurl+"[/"+mytype+"] ";
         mytextadd(auswahltext,myform);
         
      }
   }
}

// ***** liste **************
function createlist(myform) {
   listtype = prompt(listentyp, "");
   if ((listtype == "a") || (listtype == "1")) {
      mylist = "[list="+listtype+"]\n";
      listend = "[/list="+listtype+"] ";
      }
   else {
      mylist = "[list]\n";
      listend = "[/list] ";
      }
   listentry = "initial";
   while ((listentry != "") && (listentry != null)) {
      listentry = prompt(listenwerte, "");
      if ((listentry != "") && (listentry != null))
         mylist = mylist+"[*]"+listentry+"\n";
      }
   auswahltext = mylist+listend;
   mytextadd(auswahltext,myform);
}

var NS4=(document.layers);
var IE4=(document.all);
var win=window;
var n=0;
function highlightSearch(str) {
var txt, i, found;
if (str == '') return false;
if (NS4) {
  if (!win.find(str)) while(win.find(str, false, true)) n++;
  else n++;
  if (n == 0) alert(searchfailed);
  }
if (IE4) {
  txt = win.document.body.createTextRange();
  for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
   txt.moveStart('character', 1);
   txt.moveEnd('textedit');
   }
  if (found) {
   txt.moveStart('character', -1);
   txt.findText(str);
   txt.select();
   txt.scrollIntoView();
   n++;
   }
  else {
   if (n > 0) {n = 0; findit(str);}
   else alert(searchfailed);
   }
  }
return false;
}

function HighlightAndCopy() {
var tempval=eval("document.edittemplate.template_value")
tempval.focus()
tempval.select()
if (document.all){
  therange=tempval.createTextRange()
  therange.execCommand("Copy")
  window.status=highlightmsg
  setTimeout("window.status=''",1800)
  }
}

function checkall(status,theelement) {
for (i=0;i<document.myform.length;i++) {if(document.myform.elements[i].name=="" + theelement + "[]") document.myform.elements[i].checked=status;}
}

function selectUser() {
if(document.finduser.User.options[document.finduser.User.selectedIndex].value != -1) {
  opener.document.myform.im_receiver.value = document.finduser.User.options[document.finduser.User.selectedIndex].value; opener.myform.im_receiver.focus();
  }
}
function selectBuddy() {
if(document.finduser.Buddy.options[document.finduser.Buddy.selectedIndex].value != -1) {
  opener.document.myform.im_receiver.value = document.finduser.Buddy.options[document.finduser.Buddy.selectedIndex].value;
  opener.myform.im_receiver.focus();
  }
}



ich weiss nicht ob ich es da einfügen soll oder nicht, ich kenn mich da nicht aus, jedenfalls ist das der einzige code mit abfragen

mfg
Freestylz
 
Beiträge: 5
Registriert: 30.12.2006, 19:52

Beitragvon Sebi » 31.12.2006, 16:13

hmmm wo speicherst du die Daten denn hin ??? In eine Datenbank oder textfile ??? also in deinem Code kann ich weder Datenbank noch file erkennen...
Sebi
 
Beiträge: 44
Registriert: 26.12.2006, 12:05

Beitragvon Freestylz » 31.12.2006, 16:17

das ganze läuft über phpkit, gespeichert wird es in einer mysql datenbank. deswegen, ich habe so kaum code mit abfragen und ähnlichem. die signgb.php ist das hauptfile wo die codeabfrage, namen autor und text reinkommt. am anfang des files wird die mycode.js aufgerufen. ich habe keine ahnung bo die abfrage durch diese datei stattfindet ob der eintrasg erfolgreich war oder nicht. deswegen ist es auch so schwierig für mich die captcha abfrage einzubaun.

das ganze geht über eine mysql datenbank also denke ich das es darin gespeichert wird


mfg
Freestylz
 
Beiträge: 5
Registriert: 30.12.2006, 19:52

Beitragvon Sebi » 31.12.2006, 16:20

suche mal nach einem Befehl der ungefähr wie folgt aussieht:

"Insert into deineGästebuchTabelle ....."

dann poste mal den codeschnipsel dazu.
Sebi
 
Beiträge: 44
Registriert: 26.12.2006, 12:05

Beitragvon Freestylz » 31.12.2006, 17:58

ich habe dazu nichts gefunden, habe doch eine lösun g für das kit selbst gefunden, die funktioniert einwandfrei. trotzdem danke für deine mühen :)


mfg
Freestylz
 
Beiträge: 5
Registriert: 30.12.2006, 19:52

Beitragvon Sebi » 31.12.2006, 19:14

kein ding :-)
Sebi
 
Beiträge: 44
Registriert: 26.12.2006, 12:05

Beitragvon Rob [Admin] » 31.12.2006, 20:52

Problem war, dass du die falsche signgb.php gepostet hast, denn beim PHPKit sieht die anders aus :wink:

aber ist gut, wenns nun geht!
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon Freestylz » 01.01.2007, 05:27

das war die sgngb.php ne andere hab ich nicht gefunden ^^


mfg und frohes neues ^^
Freestylz
 
Beiträge: 5
Registriert: 30.12.2006, 19:52

Beitragvon Rob [Admin] » 01.01.2007, 12:04

Naja, ich poste jetzt mal meine :wink:
Dort sind auch MySql Inserts drinen, wo man das Captcha einbauen könnte.

guestbook/signgb.php => PHPKit
Code: Alles auswählen
<?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_ip='".$thisUSER['ipaddr']."' && gbook_userid='".$USER['id']."' && gbook_time>'".$floodcontrol."' LIMIT 1"));

  if (trim($_POST['content'])=='' || trim($_POST['gbook_title'])=='' || trim($_POST['gbook_autor'])=='') $error=1;
  elseif (strlen(trim($_POST['content']))>$config['gbook_maxchars']) {$event=2; $charcount=strlen($_POST['content']);}
  elseif ($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_autor, gbook_title, gbook_email, gbook_icqnr, gbook_time, gbook_text, gbook_check, gbook_hpage, gbook_ip, gbook_userid, gbook_notify) VALUES ('".$_POST['gbook_autor']."','".addslashes($_POST['gbook_title'])."','".$_POST['gbook_email']."','".$_POST['gbook_icqnr']."','".time()."','".addslashes($_POST['content'])."','".$_POST['gbook_check']."','".$_POST['gbook_hpage']."','".$thisUSER['ipaddr']."','".$USER['id']."','".$_POST['gbook_notify']."')")) {
    $gbid=$DB->insert_id();
    $autor=$_POST['gbook_autor'];
   
     $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);
    
     $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&PHPKITSID=".session_id()); exit();
    }
   $error=6;
   }
   elseif ($ACTION==$_POST['preview']) {
    $counter=$DB->fetch_array($DB->query("SELECT COUNT(*) FROM ".$db_tab['gbook'].""));
   $gbook_number=$counter[0]+1;
   
    if ($_POST['gbook_check']==1 && $_POST['gbook_email']!='') {      
     $userinfo['user_email']=$gbook_email;
    eval ("\$gbook_email= \"".getTemplate("member_email_iconlink")."\";");
     }
    else $gbook_email=' ';      
      
    if ($_POST['gbook_hpage']!='') {
    if (eregi("http://",$_POST['gbook_hpage'])) $info_link=$_POST['gbook_hpage'];
    else $info_link="http://".$_POST['gbook_hpage'];
    eval ("\$gbook_hpage= \"".getTemplate("member_hpage_iconlink")."\";");
    }
    else $gbook_hpage=' ';
   
   if ($_POST['gbook_icqnr']>0) {
    $userinfo['user_icqid']=$_POST['gbook_icqnr'];
    eval ("\$gbook_icq= \"".getTemplate("member_icq_iconlink")."\";");
     }
   else $gbook_icq=' ';

    $gbook_title=htmlentities($_POST['gbook_title']);
   $gbook_text=$PARSE->parse($_POST['content'],0,$config['gbook_ubb'],$config['gbook_smilies'],$config['gbook_images'],1);
    $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 ($_POST['gbook_hpage']!='') $gbook_hpage=htmlentities($_POST['gbook_hpage']);
elseif ($USER['hpage']!='') $gbook_hpage=$USER['hpage'];
if (intval($_POST['gbook_icqnr'])>0) $gbook_icqnr=$_POST['gbook_icqnr'];
elseif (intval($USER['icqid'])>0) $gbook_icqnr=intval($USER['icqid']);
if (trim($_POST['gbook_title'])!='') $gbook_title=htmlentities($_POST['gbook_title']);
if (trim($_POST['content'])!='') $gbook_text=htmlentities($_POST['content']);

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");}
?>
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27


Zurück zu Zahlen Captcha

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron