Hallo
Ich hab ein Textfeld für PM Empfänger.
Dort darf man bis zu 5 Empfänger hineinschreiben.
Die jeweiligen Empfänger sollen in je einer Zeile stehen, sodass ich sie exploden und dann in die Datenbank einfügen kann.
Ich hab da mal etwas probiert leider funktioniert es nicht richtig.
Das Problem ist jedoch , dass immer nur das letzte Array eingetragen wird.
Ich hab nun probiert mit "nl2br" es praktisch mit Zeilenumbrüchen auszugeben und da ergiebt sich daraus, dass nur beim letzten Namen kein Zeilenumbruch stattfindet und sonst bei den anderen schon.
Das könnte erklären warum nur dieser User gefunden und eingetragen wird.
Aber was kann ich machen um auch die anderen rein zu bekommen ?
mit replacen hab ichs bereits versucht funktioniert leider nicht !
Oder weiß jemand eine bessere Möglichkeit dies zu realisieren ?
Gruß SimonErich
Ich hab ein Textfeld für PM Empfänger.
Dort darf man bis zu 5 Empfänger hineinschreiben.
Die jeweiligen Empfänger sollen in je einer Zeile stehen, sodass ich sie exploden und dann in die Datenbank einfügen kann.
Ich hab da mal etwas probiert leider funktioniert es nicht richtig.
PHP-Code:
// explode reciever list and select user data
$recievers = explode("\n", $_POST['reciever'], 6);
// if count(recievers) is bigger than 5 show error
if($recievers[5] != "" OR $recievers[5] != "\n")
{
$error_msg = "
- Es dürfen maximal 5 Empfänger angegeben werden";
}
else
{
// foreach for checking user data
foreach($recievers as $recievers_select)
{
$select_reciever_query = mysql_query("SELECT userid, username, ignore_list, opt_contact_recieve_pms, opt_contact_email_if_new_pm, opt_contact_popup_if_new_pm FROM ". atnopis_prefix ."_users WHERE username = '". $recievers_select ."'") or die(mysql_error());
$select_reciever_row = mysql_fetch_array($select_reciever_query);
// check users contact options
if($select_reciever_row['userid'] < 1)
{
$error_msg = "$error_msg
- Der User ". $recievers_select ."existiert nicht in unserer Datenbank.Btte überprüfen sie die Schreibung!";
}
else if($select_reciever_row['opt_contact_recieve_pms'] == 0)
{
$error_msg = "$error_msg
- Der User ". $select_reciever_row['username'] ." will nicht kontaktiert werden";
}
else if(strpos($select_reciever_row['ignore_list'], ":". $_SESSION['userid']))
{
$error_msg = "$error_msg
- Der User ". $select_reciever_row['username'] ." will nicht von Ihnen kontaktiert werden";
}
else
{
mysql_query("INSERT INTO ". atnopis_prefix ."_privatemessages_rec ( pm_id, pm_recieverid, pm_reciever_name, blindcopy, folderid, deleted, view, reply, forward) VALUES ( '$pm_id', '". $select_reciever_row['userid'] ."', '". $select_reciever_row['username'] ."', '0', 'inbox', '0', '0', '0', '0')") or die(mysql_error());
}
}
}
Das Problem ist jedoch , dass immer nur das letzte Array eingetragen wird.
Ich hab nun probiert mit "nl2br" es praktisch mit Zeilenumbrüchen auszugeben und da ergiebt sich daraus, dass nur beim letzten Namen kein Zeilenumbruch stattfindet und sonst bei den anderen schon.
Das könnte erklären warum nur dieser User gefunden und eingetragen wird.
Aber was kann ich machen um auch die anderen rein zu bekommen ?
mit replacen hab ichs bereits versucht funktioniert leider nicht !
Oder weiß jemand eine bessere Möglichkeit dies zu realisieren ?
Gruß SimonErich
Kommentar