foutmelding form verzenden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Maarten Vossen

Maarten Vossen

23/09/2011 13:00:22
Quote Anchor link
beste mensen.

Ik heb een script voor het verzenden van een formulier. Het bestand wordt wel goed verzonden.
Ik heb het al meerdere malen toegepast zonder problemen. Nu krijg ik plotseling deze fout melding:
Warning: strlen() expects parameter 1 to be string, array given in ..... on line 1975. De fout zit in de tweede regel.

$ph_section = "user template";
if (strlen($PHORM_ALERTTO) && !strlen($PHORM_TO) && !$PHORM_INFONLY && !$ph_GotData) {
$PHORM_TO = $PHORM_ALERTTO;
settype($PHORM_TO, "array");
}
if (isset($PHORM_TMPL) && isset($PHORM_TO) && !$ph_Abort) {
if ($ph_debug2) echo "<B>JS:</B> Mail Template(s)<BR>";

if (count($PHORM_TMPL) > $ph_MaxTMPL) $ph_Alerts['120'] = ph_Message("A120");

list(,$fPHORM_TO) = each($PHORM_TO);
list(,$fPHORM_SUBJECT) = each($PHORM_SUBJECT);

while ($ph_MaxTMPL-- && list($ph_key, $lPHORM_TMPL) = each($PHORM_TMPL)) {
if ($lPHORM_TMPL == ph_GENERIC) $lPHORM_TMPL = "$ph_root/files/generic.txt";
else $lPHORM_TMPL = "$ph_tpd/$lPHORM_TMPL";

$ph_Message = "";
$ph_Headers = "";
$ph_NonHeader = "";

$lPHORM_TO = "";
$lPHORM_FROM = "";
$lPHORM_SUBJECT = "";
$lPHORM_HEADERS = "";

$ph_TemplateHeaders = false;
if (ereg("(.+) +\+h$", $lPHORM_TMPL, $ph_regs)) {
$lPHORM_TMPL = trim($ph_regs[1]);
$ph_TemplateHeaders = true;
}

if ($ph_debug8) echo "Mail Template <B>$lPHORM_TMPL</B><BR>";

if (!$ph_Template = @implode("", file($lPHORM_TMPL))) {
$ph_Alerts['005'] = ph_Message("A005");
if ($php_errormsg) $ph_Alerts['005P'] = "%%%: $php_errormsg";
continue;
}

Kan iemand hier een oplossing voor vinden?
Gewijzigd op 23/09/2011 13:09:43 door Maarten Vossen
 
PHP hulp

PHP hulp

25/11/2024 23:46:30
 
Jeroen van Veldhuizen

Jeroen van Veldhuizen

23/09/2011 13:27:07
Quote Anchor link
Hoi Maarten,

De errormelding is opzich duidelijk genoeg. Hij geeft aan dat de functie strlen een variabele als string moet krijgen, maar dat hij een array heeft gegeven.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if (strlen($PHORM_ALERTTO) && !strlen($PHORM_TO) && !$PHORM_INFONLY && !$ph_GotData)


In jou geval zou $PHORM_ALERTTO of $PHORM_TO een array zijn terwijl het een string moet zijn.
 
Maarten Vossen

Maarten Vossen

23/09/2011 13:30:10
Quote Anchor link
Dank u wel voor je reactie.
Dus ik moet de html aanpassen?
Welke code moet ik dan gebruiken?
 
Ozzie PHP

Ozzie PHP

23/09/2011 13:44:10
Quote Anchor link
Weet je wat het verschil is tussen een string en een array?
 
Maarten Vossen

Maarten Vossen

23/09/2011 13:56:06
Quote Anchor link
in een array word de informatie van een variabele opgeslagen.
een string controleert of het correct ingevuld is.
althans dat denk ik.

dit staat nog verder in de code:
if (!strlen($lPHORM_TO)) $lPHORM_TO = $PHORM_TO[$ph_key];
if (!strlen($lPHORM_FROM)) $lPHORM_FROM = $PHORM_EFROM[$ph_key];
if (!strlen($lPHORM_SUBJECT)) $lPHORM_SUBJECT = $PHORM_SUBJECT[$ph_key];

if (!strlen($lPHORM_TO)) $lPHORM_TO = $fPHORM_TO;
if (!strlen($lPHORM_FROM)) $lPHORM_FROM = $PHORM_FROM;
if (!strlen($lPHORM_SUBJECT)) $lPHORM_SUBJECT = $fPHORM_SUBJECT;

$lPHORM_HEADERS.= ereg_replace("\r\n?", "\n", $PHORM_HEADERS[$ph_key]);
if (strlen($lPHORM_FROM)) {
if (strlen($lPHORM_HEADERS) && !ereg("\n$", $lPHORM_HEADERS)) $lPHORM_HEADERS.= "$ph_nl";
$lPHORM_HEADERS.= "From: $lPHORM_FROM$ph_nl";
}
Gewijzigd op 23/09/2011 13:58:06 door Maarten Vossen
 
B a s
Beheerder

B a s

23/09/2011 13:57:43
 
Ozzie PHP

Ozzie PHP

23/09/2011 14:01:53
Quote Anchor link
Maarten Vossen op 23/09/2011 13:56:06:
in een array word de informatie van een variabele opgeslagen.
een string controleert of het correct ingevuld is.
althans dat denk ik.

Daar was ik al bang voor. Deze informatie klopt niet. Wellicht is het handiger om eerst eens wat basisinformatie te gaan lezen over PHP. Je bent nu bezig dingen aan te passen terwijl je geen idee hebt wat je aan het doen bent.
Gewijzigd op 23/09/2011 14:02:11 door Ozzie PHP
 
Maarten Vossen

Maarten Vossen

23/09/2011 14:18:40
Quote Anchor link
ja, dat ben ik ook van plan. string staat in de echo. Alles wat ik hierover lees gaat over invul opties, niet over het versturen ervan...

dus de php in dit bestand klopt wel? maar moet het andere bestand dan aanpassen aan de array en string.
<form onsubmit="return checkform(this)" method="post" action="distribution_fox/phorm.php">
<input type="hidden" name="PHORM_CONFIG" value="quickconfig.php">
<tr>
<td class="form">
&nbsp;&nbsp;Incasso bedrag*
</td>
</tr>
<tr>
<td>
&nbsp;&nbsp;<input name="Incasso bedrag" id="Incasso bedrag" size="30">
</td>
</tr>
<tr>
<td class="form">
&nbsp;&nbsp;Opdrachten per jaar*
</td>
</tr>
<tr>
<td>
&nbsp;&nbsp;<select id="Opdrachten per jaar" name="Opdrachten per jaar">
<option value="0"></option>
<option value="1-10">1-10</option>
<option value="11-50">11-50</option>
<option value=">51">>51</option>
</selectT>
</td>
</tr>


maar kan je uitleggen waarom het nu opeens een foutmelding geeft en de afgelopen 5 keer niet?
Gewijzigd op 23/09/2011 14:26:14 door Maarten Vossen
 
Ozzie PHP

Ozzie PHP

23/09/2011 14:25:59
Quote Anchor link
Nogmaals, je mist een stuk basiskennis. Begin daar eerst mee, want uit hetgeen je zegt leid ik af dat je niet exact weet waar je mee bezig bent.

Ik weet ook niet waarom je ineens een foutmelding krijgt. Je zal waarschijnlijk wel iets veranderd hebben in de code.
 
Maarten Vossen

Maarten Vossen

23/09/2011 14:31:21
Quote Anchor link
Ik heb alleen een probleempje.
De opdrachtgever wacht er wel op dat het snel opgelost is.

Wil je wel vertellen waar de fout zit. Ik bedoel dan in welk bestand. php of html. array werken toch alleen in de php. dus als ik het bestand vervang voor een werkend formulier, dan moet het probleem toch ook opgelost zijn?
Zoek voor nu een snelle oplossing.
 
Ozzie PHP

Ozzie PHP

23/09/2011 14:35:50
Quote Anchor link
Maarten Vossen op 23/09/2011 14:31:21:
Ik heb alleen een probleempje.
De opdrachtgever wacht er wel op dat het snel opgelost is.

Wil je wel vertellen waar de fout zit. Ik bedoel dan in welk bestand. php of html. array werken toch alleen in de php. dus als ik het bestand vervang voor een werkend formulier, dan moet het probleem toch ook opgelost zijn?
Zoek voor nu een snelle oplossing.

Met alle respect, maar dat is absoluut niet mijn probleem. Als iemand jou inhuurt dan ben jij zelf verantwoordelijk... en als je dan al niet weet wat een array en een string is, tja... dan wordt het lastig.
 
Maarten Vossen

Maarten Vossen

23/09/2011 14:54:20
Quote Anchor link
wat ik ook raar vind is dat hetzelfde bestand op een andere server geen foutmelding geeft en bij een andere wel. waar kan dat aan liggen?
 
Ozzie PHP

Ozzie PHP

23/09/2011 14:58:34
Quote Anchor link
Ik heb helaas geen glazen bol, maar het kan zijn dat beide servers een andere php versie hebben.
 
Jacco Brandt

Jacco Brandt

23/09/2011 15:04:38
Quote Anchor link
Hoe kun je het in godsnaam in je hoofd halen op je op jouw niveau door een opdrachtgever in te laten huren.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.