Ich habe folgendes Problem ... Ich brauchte das Kontakt-Formular (von agon), allerdings etwas abgeaendert. Hier der Output-Bereich (der das Problem verursacht):
Code: Alles auswählen
<?php
$email_to_name = explode(",","CMS_VALUE[8]");
$email_to_mail = explode(",","CMS_VALUE[9]");
$betreff = explode(",","CMS_VALUE[7]");
$mail = $_REQUEST['mail'];
$email_from_name = strip_tags($_REQUEST['email_from_name']);
$email_from_mail = strip_tags($_REQUEST['email_from_mail']);
$kommentar = strip_tags($_REQUEST['kommentar']);
if($mail == 1 && count($email_to)!==0)
{
$header='From:'.$email_from_name.'<'.$email_from_mail.'>';
for($x=0;$x<count($email_to_name);$x++){
if(in_array($x,$email_to)) {
$mailto .= $email_to_name[$x]." <".$email_to_mail[$x].">,";
$adressat .= $email_to_name[$x]." ";
}
}
for($y=0;$y<count($betreff);$y++){
if(in_array($y,$betr)) {
$anliegen .= $betreff[$y]." ";
}
}
mail("$mailto",$anliegen,$kommentar,$header);
echo '<h2 class="headline">Folgende Nachricht wurde versendet:</h2>
<table border="1" cellpadding="3" cellspacing="0" width="100%">
<tr>
<td>Absender:</td>
<td width="90%">';
if ($email_from_mail=="") { echo '<i>keine Absenderangabe</i>'; }
else { echo $email_from_name.' &l'.'t;'.$email_from_mail.'&g'.'t;'; }
echo '</td>
</tr>
<tr>
<td>Adressat(en):</td>
<td width="90%">'.$adressat.'</td>
</tr>
<tr>
<td>Betreff:</td>
<td width="90%">'.$anliegen.'</td>
</tr>
<tr>
<td colspan="2">'.stripslashes(nl2br($kommentar)).'</td>
</tr>
</table>';
} else
{
echo '<form name="mail" action="'.$auth->url().'" method="post">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td colspan="3">'; echo "<h1 class=\"headline\">CMS_HTMLHEAD[1]</h1>
<span id=\"font\" class=\"subheadline\">CMS_HTML[1]</span>"; echo '</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td class="subheadline" width="150">Ihr Name:</td>
<td> </td>
<td><input type="text" name="email_from_name" size="30"
value="'.$email_from_name.'" class="Input"></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td class="subheadline" width="150">Ihre E-Mail-Adresse:</td>
<td> </td>
<td><input type="text" name="email_from_mail" size="30"
value="'.$email_from_mail.'" class="Input"></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td valign="top" class="subheadline" width="150">Adressat:<br>(Mehrfachauswahl
mit <br>gedrückter Strg-Taste)</td>
<td> </td>
<td><select name="email_to[]" size="'.count($email_to_name).'" multiple class="Input">';
for($x=0;$x<count($email_to_name);$x++){
echo '<option value="'.$x.'">'.$email_to_name[$x].'</option>';
}
echo ' </select>';
if ($mail == 1) {
echo '<br><i>Sie müssen mindestens einen Adressaten <br>auswählen, um die
Nachricht abzuschicken.</i>'; }
echo ' </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td class="subheadline" width="150">Betreff:</td>
<td> </td>
<td><select name="betr" size="1" class="Input">';
for($y=0;$y<count($betreff);$y++)
{
if (in_array($y,$betr))
{
echo '<option value="'.$y.'" selected>'.$betreff[$y].'</option>';
} else
{
echo '<option value="'.$y.'">'.$betreff[$y].'</option>';
}
}
echo ' </select>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td valign="top" class="subheadline" width="150">Ihre Nachricht:</td>
<td> </td>
<td><textarea cols="45" rows="10" name="kommentar" style="width:250px"
class="InputArea">'.stripslashes($kommentar).'</text'.'area></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td valign="top" class="subheadline" width="150"> </td>
<td> </td>
<td align="left"><input type="submit" value="E-Mail senden" name="submit" class="InputButton"></td>
<input type="hidden" name="mail" value="1">
</tr>
</table>
</fo'; echo 'rm>';
}
?>
[11-Mar-2004 08:51:08] PHP Warning: in_array(): Wrong datatype for second argument in /www0901/www.halchter.com/contenido-halchter/cms ... t.php(546) : eval()'d code on line 534
Ich weiss auch, wodurch das verursacht wird, da ich aber mehr oder weniger keine Ahnung von PHP habe (ich habe nur hier und da fertige Sachen geaendert), weiss ich nicht, was ich wie aendern muss. Die problematische Stelle muss diese hier sein:
Code: Alles auswählen
<td><select name="betr" size="1" class="Input">';
for($y=0;$y<count($betreff);$y++)
{
if (in_array($y,$betr))
{
echo '<option value="'.$y.'" selected>'.$betreff[$y].'</option>';
} else
{
echo '<option value="'.$y.'">'.$betreff[$y].'</option>';
}
}
echo ' </select>
</td>
Worum es mir geht: bei dem Modul hat man die Moeglichkeit, einen oder mehrere Empfaenger aus einer Liste auszuwaehlen. Die Betreffzeile muss ebenfalls aus einer vorgegebenen Liste ausgewaehlt werden. Nun war das so, dass wenn KEIN Empfaenger ausgewaehlt wurde, aber die Betreffzeile geaendert wurde (also ein anderer als der erste Eintrag ausgewaehlt wurde), eine Meldung kam, dass man einen Empfaenger auswaehlen sollte. Gleichzeitig wurde aber die Betreffzeile 'zurueckgesetzt', und dies soll mit obiger for-Schleife verhindert werden.
Kann mir jemand sagen, wie ich die PHP-Warnung loswerde?
Viele Gruesse
Christa