Autor Zpráva
jakubroz
Profil
Ahoj,
na webu builder jsem našel něco na posílání interních vzkazů.
Procházel jsem to, script jsem si upravoval, ale nevim proč se mi po odeslání formuláře stejně do databáze nic nevloží.
tady je ten script.:(ani to nepíše žádnou chybu)
<?  	require_once "../login/db.php";


// bude-li odeslán formulář, vložíme údaje do databáze
if ($send && $predmet && $zprava)
{
$zprava=HTMLSpecialChars($zprava); //odstraníme nebezpečné znaky
   if($odpoved_id=="")  // pokud vzkaz není odpověd
	$odpoved_id=0;
   $sql = mysql_query("INSERT INTO vzkazy VALUES('','$INFO[0]','$pro_id',
                               '$predmet', 'n','$zprava','$odpoved_id','0')");
   if($odpoved_id!="")
	MySQL_Query("UPDATE vzkazy SET stav='r' WHERE id='$odpoved_id'");
   if($email=="true")  // když máme odeslat upozornění na email
   {
	$a=mysql_query("SELECT email FROM uzivatele WHERE id='$pro_id'");
	$b=mysql_fech_row($sql);
	$zprava="Máte novou zprávu v admin centru uloženou dne 
                             ".date("j.m.Y v H:i:s:");
	mail($b[0],"Zpráva v admin centru",$zprava,"From: rs@rs.cz\n");  
   }
   ?>
  <H3 ALIGN="CENTER">Vzkaz vložen</H3>
  <?
   // ukončíme skript
  exit;
}
elseif($send) 
{
echo "<H3 ALIGN=\"CENTER\"><FONT COLOR=\"#FF0000\">Chybí povinné údaje
							</FONT></H3>\n";
}
// zobrazení formuláře
?>

<H3 ALIGN="CENTER">Psaní vzkazu</H3>

<FORM METHOD="POST" ACTION="">
<INPUT TYPE="HIDDEN" NAME="send" VALUE="true">
<TABLE BORDER="1" CELLSPACING="0" CELLPADDING="4" ALIGN="CENTER">
  <TR>
    <TD><B>Od:</B></TD>
    <TD><B><? echo $INFO[3]; ?></B>
     </TD>
  </TR>
  <TR>
    <TD><B>Pro:</B></TD>
    <TD>
      <SELECT NAME="pro_id">
        <?
	if($odpoved_id!=""):
	$sq=mysql_query("SELECT od_id,predmet,zprava FROM vzkazy 
                                           WHERE id='$odpoved_id'");
	$pro=mysql_fetch_row($sq);
	$predmet=$pro[1];
	$zprava=$pro[2];
	endif;
         @$sql = mysql_query("SELECT id,jmeno FROM uzivatele");
      while ($data = mysql_fetch_row($sql))
      {
	if($data[0]==$INFO[0]) continue;
      // zobrazíme výsledek
     ?>
	<OPTION VALUE="<? echo $data[0]; ?>" 
                <? if($data[0]==$pro[0] or $data[0]==$pro_id)echo"SELECTED" ?>>
		<? echo $data[1];?></OPTION>
    <?
     }
      mysql_free_result($sql);
        ?>
      </SELECT>
    </TD>
  </TR>
  <TR>
    <TD><B>Předmět:</B></TD>
    <TD><INPUT TYPE="TEXT" NAME="predmet" VALUE="<? 
					if($predmet!="" and $send!="true") 
					  echo "RE: ".$predmet; 
					else 
					  echo $predmet; ?>" SIZE="56" 
						MAXLENGTH=250></TD>
  </TR>
  <TR>
    <TD VALIGN="TOP"><B>Zpráva:</B></TD>
    <TD><TEXTAREA NAME="zprava" COLS="50" ROWS="10"><? 
	if($zprava!="" and $send!="true") 
	     echo "\n\n\nPůvodní zpráva:\n----------------------\n".$zprava; 
	else 
	     echo $zprava; ?></TEXTAREA>
	<INPUT TYPE="HIDDEN" NAME="odpoved_id" VALUE="<?=$odpoved_id?>">
    </TD>
  </TR>
  <TR>
    <TD><B>Poslat upozornění na e-mail:</B></TD>
    <TD><INPUT TYPE="CHECKBOX" NAME="email" VALUE="true" <? if($email=="true") 
			echo "CHECKED";?>></TD>
  </TR>
  <TR>
    <TD ALIGN="CENTER" COLSPAN="2"><INPUT TYPE="SUBMIT" 
						VALUE="ODESLAT"></TD>
  </TR>
</TABLE>
</FORM>
orava
Profil
skus klasicky $_POST['zprava'] atd.
jakubroz
Profil
a nevíte proč nejde tohle? když to na tom webu zveřejnili tak asi vědí proč ne?
nightfish
Profil
jakubroz
a nevíte proč nejde tohle? když to na tom webu zveřejnili tak asi vědí proč ne?
váš problém se jmenuje register_globals - skript počítá s jiným nastavením, než používáte vy (váš server)
jakubroz
Profil
takže stačí zapnout registr_globals?
jakubroz
Profil
tak jsem za celý script přidal tohle:
<?php 
$zprava = $_POST['zprava'];
$predmet = $_POST['predmet'];
$pro_id = $_POST['pro_id'];
?>

to by mělo už fungovat ne? no a ono nic
nightfish
Profil
tak jsem za celý script přidal tohle:
na konci skriptu to je houby platné

jinak jak se dívám, ještě se tam používá <?, což nebude fungovat v případě short_open_tag = off
jakubroz
Profil
no tak jsem to dal na začátek.
jakubroz
Profil
takže když to nahraju na mojí doménu webovestudio.eu tak to jde, protože tam mam register_globals na ON a na subdoméně to nejde.
Tak jak to bude nejjednodušší? zapnout registr globals nebo pomocí něčeho jiného?
Kdyžtak poradte jak to udělat. dik
jakubroz
Profil
nevíte proč mi to ted dělá tohle:
http://rs2.webovestudio.eu/vzkazy/vzkazy.php

přidal jsem tohle na začátek scriptu:
<?php 
$zprava = $_POST['zprava'];
$predmet = $_POST['predmet'];
$pro_id = $_POST['pro_id'];
?>

a do db to nevkládá
nightfish
Profil
nevíte proč mi to ted dělá tohle:
nevíme, co ti to dělá... na tom odkazu se zobrazí formulář s rozhozenou diakritikou
to opravíš tak, že uvedeš správné kódování v HTTP nebo HTML hlavičkách
jakubroz
Profil
no tak to vim, ale když se pokusíš odeslat formulář tak uvidíš co se stane
jakubroz
Profil
už to mam. dik všem

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0