php-script ontvangt geen waarden
De twee bestanden ztten in dezelfde map op mijn server.
Script 'pagoproceduro' (mijn voertaal is Esperanto !):
<html>
<!-- Created on: 10-7-2011 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>retposhta reago</title>
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.5pt;
font-family:"Trebuchet MS";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Trebuchet MS";}
-->
</style>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="Unregistered User">
<meta name="generator" content="AceHTML Freeware">
<script language="Javascript" type="text/javascript">
<!--
function kashu()
{document.getElementById('konto1').style.visibility="hidden";
document.getElementById('konto2').style.visibility="hidden";
}
// -->
</script>
<script language="Javascript" type="text/javascript">
<!--
function malplenigu(x)
{document.getElementById(x).value="";
}
// -->
</script>
<script language="Javascript" type="text/javascript">
<!--
function valida()
{if (pago.famnomo.value=="familia nomo" || pago.famnomo.value=="" )
{alert("Enigu vian familian nomon !"); return false;}
if (pago.persnomo.value=="persona nomo" || pago.persnomo.value=="")
{alert("Enigu vian personan nomon !"); return false;}
if (pago.pagoproceduro[1].checked && pago.kontokodo.value=="")
{alert("Enigu vian kontokodon !"); return false;}
if (pago.retposhto.value=="")
{alert("Enigu vian retposhtadreson !"; return false}
}
// -->
</script>
<script language="Javascript" type="text/javascript">
<!--
function adresghust()
{if (pago.retposhto.value.indexOf("@")==-1)
{alert("Chi-tiu adreso ne ghustas");}
}
// -->
</script>
</head>
<body onload="kashu()">
<form name="pago" action="pagoreguligo.php" method="post"
onsubmit="return valida();" enctype="text/plain" mailto:>
<div><font size="-1">Al la sekcio 'financoj' de UEA<br><br>
Bonan tagon !<br><br>
Mi, <input type="text" name="famnomo" size="20" maxlength="30" value="familia nomo"
onfocus="malplenigu(this.id)" id="f">
<input type="text" name="persnomo" size="20" maxlength="30" value="persona nomo"
onfocus="malplenigu(this.id)" id="p">
petas vin</font> <font size="-5">(<i>elektu</i>)</font><br><br>
</div>
<table>
<tr>
<td><input type="radio" name="pagoproceduro" value="konto"
onclick="document.getElementById('konto1').style.visibility='visible'
document.getElementById('konto2').style.visibility='visible'
document.getElementById('malfermo').style.visibility='hidden'">
</input></td>
<td align=left colspan=2><font size="-1">pagi du eŭrojn el mia konto</font></td>
<td><div id="konto1" valign="center">
<input type="text" name="kontokodo" size="3" maxlength="6"></input>
</div></td>
</tr>
<tr>
<td></td>
<td align=left colspan=3><div id="konto2">
<font size="-1">al la konto idoj-p kun mencio "Cirkulaĵo RF, somero 2011".</font>
</div></td>
</tr>
<tr>
<td><input type="radio" name="pagoproceduro" value="malfermo" checked=true
onclick="document.getElementById('malfermo').style.visibility='visible'
document.getElementById('konto1').style.visibility='hidden'
document.getElementById('konto2').style.visibility='hidden'">
</td>
<td colspan=3><font size="-1">malfermi konton je mia nomo</font><br></td>
</tr>
<tr>
<td> </td>
<td align=left colspan=3><div id="malfermo">
<font size="-1">kaj tuj post enmeto de minimume dek eŭroj
debeti ĝin je du eŭroj<br> kredite al la konto idoj-p
kun mencio "Cirkulaĵo RF, somero 2011".</font></div>
</td>
</tr>
<tr>
<td></td>
<td align=left><br><font size="-1">Mia retpoŝtadreso estas</font></td>
<td colspan=2><br><input type="text" name="retposhto" size="50" maxlength="60"
onchange="adresghust()"></input></td>
</tr>
<tr>
<td align=center valign=bottom colspan=4><br><a href="">
<input type="submit" value="Sendu"></a>
</td>
</tr>
</table>
</form>
</body>
</html>
Script 'pagoreguligo.php':
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php /* Kreita je: 12-7-2011 */
ini_set('display_errors',1);
error_reporting(E_ALL&~E_NOTICE);
define('TITLE','Register');
$ekalparolo="Bonan tagon !
Al la sekcio 'financoj' de UEA \r\n";
$donitajhoj="Mi, ".strtoupper($famnomo)." ".ucwords(strtolower($persnomo)).", petas vin \r\n";
if($pagoproceduro=='konto')
{$peto="pagi du eurojn el mia konto {$_POST['kontokodo']} \r\n
al la konto idoj-p kun mencio 'Cirkulajho RF, somero 2011.'";}
else
{$peto="malfermi konton je mia nomo kaj tuj post enmeto de minimume dek euroj \r\n
debeti ghin je du euroj kredite al la konto idoj-p kun mencio 'Cirkulajho RF, somero 2011'.";}
$body=$ekalparol.$donitajhoj.$peto;
mail("[email protected]","pago por Cirkulajho RF, somero 2011", $body,
"From: $retposhto \r\n Cc: [email protected] \r\n Bcc: [email protected]");
?>
ini_set('display_errors',1);
error_reporting(E_ALL&~E_NOTICE);
define('TITLE','Register');
$ekalparolo="Bonan tagon !
Al la sekcio 'financoj' de UEA \r\n";
$donitajhoj="Mi, ".strtoupper($famnomo)." ".ucwords(strtolower($persnomo)).", petas vin \r\n";
if($pagoproceduro=='konto')
{$peto="pagi du eurojn el mia konto {$_POST['kontokodo']} \r\n
al la konto idoj-p kun mencio 'Cirkulajho RF, somero 2011.'";}
else
{$peto="malfermi konton je mia nomo kaj tuj post enmeto de minimume dek euroj \r\n
debeti ghin je du euroj kredite al la konto idoj-p kun mencio 'Cirkulajho RF, somero 2011'.";}
$body=$ekalparol.$donitajhoj.$peto;
mail("[email protected]","pago por Cirkulajho RF, somero 2011", $body,
"From: $retposhto \r\n Cc: [email protected] \r\n Bcc: [email protected]");
?>
Register_globals is ingesteld.
Ik hoop, dat iemand mij wil helpen.
Johan Derks op 13/07/2011 16:08:11:
Register_globals is ingesteld.
Staat op 'off' hoop ik/neem ik aan.
Gebruik de superglobal $_POST.
De html-code bevat veel fouten.
Mailheaders zijn niet juist.
http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders
Register_globals staat op 'on'. Ik heb gezocht naar de plaats van php.ini op de server, maar die verbergt hij waarschijnlijk. Ook iets met ini_set() doen snap ik niet en bovendien is de eigenschap CHANGEABLE niet in de php.ini te
Ik heb de globals vervangen door superglobals.
Ik heb de mailheaders gevolgd zoals die in Larry Ullmans boek 'PHP voor het WWW' staan. 'De_juiste_mailheaders' heb ik wel gelezen, maar ik weet niet, hoe ik dat toe moet passen. Opsporen van $headers op internet of Ullmans boek helpt ook niet.
Ik snap, dat ik voor mensen met een programmeer-opleiding een hopeloos geval ben, maar ook als 'senior' wil ik nog wat aan de samenleving bijdragen. Ik zal uitleggen, wat ik wil:
Als een bezoeker van de website waar het bulletin op staat, waar ik redacteur van ben, een nummer wil downloaden, wordt hij/zij doorverwezen naar mijn website www.esp-evoluo.org, die gast is op CSV Networks. Mijn html-pagina vraagt dan naar gegevens om een e-mail mee samen te stellen, die naar het emailadres van de penningmeetsre moet, met copie aan mij.
Overigens werkt de html-code van 'pagoproceduro' wel zoals ik het bedoeld heb. Ik snap niet, wat er fout aan is (behalve dat het misschien onhandig functioneert).
Hoe komt het dat de de door het formulier in pagoproceduro.html geposte variabelen niet door pagoreguligo.php ontvangen worden ?
<form name="pago" action="pagoreguligo.php" method="post"
onsubmit="return valida();" enctype="text/plain" mailto:>
eens dit:
<form name="pago" action="pagoreguligo.php" method="post">
en kijk wat er dan gebeurt.
Verder zie ik veel van deze syntax:
<td align=left colspan=2><font size="-1">
Zet in html altijd de dubbele quotes:
<td align="left" colspan="2"><font size="-1">
http://validator.w3.org/. Dat was alvast een goede oefening.
Vervolgens heb ik SanThe's advies opgevolgd en de invoercontrolefunctie valida() uitgeschakeld. Toen kwamen de POSTvariabelen wel door.
Wat was nu het struikelblok ? Waarschijnlijk het opnemen van 'return' in het javascript van valida() én achter 'submit'. In combinatie me teen invoerfout gaat het dan fout, neem ik aan.
Bedankt, Bas en SanThe !
Ik heb de tekst van pagoproceduro.html opgeschoond met nehulp van Vervolgens heb ik SanThe's advies opgevolgd en de invoercontrolefunctie valida() uitgeschakeld. Toen kwamen de POSTvariabelen wel door.
Wat was nu het struikelblok ? Waarschijnlijk het opnemen van 'return' in het javascript van valida() én achter 'submit'. In combinatie me teen invoerfout gaat het dan fout, neem ik aan.
Bedankt, Bas en SanThe !