Personal Messenger

sakanoue

Grünschnabel
Hi,

mein Problem liegt mal wieder in der foreach Schleife.
Speichere die Daten wohl nicht in ret[data] nur weiß ich nicht genau wie ich das machen soll. Hat da einer einen Rat`?

Mein Vorhaben: PM Empfänger als dropdown Feld anzeigen lassen. Also alle User der Seite ins dropdown Feld anzeigen.

Hier der Code mit:

PHP:
<?php

$ret = array();
$ret['filename'] = 'pm_new.tpl';
$ret['data'] = array();
if ('POST' == $_SERVER['REQUEST_METHOD']) {
    if (!isset($_POST['Empfaenger'], $_POST['Betreff'], $_POST['Nachricht'], $_POST['formaction'])) {
        return INVALID_FORM;
    }
    if (($Empfänger = trim($_POST['Empfaenger'])) == '' OR
            ($Betreff = trim($_POST['Betreff'])) == '' OR
            ($Nachricht = trim($_POST['Nachricht'])) == '') {
        return EMPTY_FORM;
    }
    $sql = 'SELECT
                ID,
				Vorname,
				Nachname
            FROM
                mkhw_User
            WHERE
                Username = ? AND
                ID != ?';
    if (!$stmt = $db->prepare($sql)) {
        return $db->error;
    }
    $stmt->bind_param('si', $Empfänger, $UserID);
    if (!$stmt->execute()) {
        return $stmt->error;
    }
    $stmt->bind_result($ZielID);
    if (!$stmt->fetch()) {
        return 'Es wurde kein Benutzer mit diesem Namen gefunden.';
    }
    $stmt->close();
    $sql = 'INSERT INTO
                mkhw_Nachricht(Quelle, Ziel, Datum, Betreff, Inhalt, Sichtbar)
            VALUES
                (?, ?, NOW(), ?, ?, 1)';
    if (!$stmt = $db->prepare($sql)) {
        return $db->error;
    }
    $stmt->bind_param('iiss', $UserID, $ZielID, $Betreff, $Nachricht);
    if (!$stmt->execute()) {
        return $stmt->error;
    }
    return showInfo('Die Nachricht wurde gesendet.');
}
return $ret;
?>

PHP:
<?php
/* Daten:
 *     keine
 */
?><form action="index.php?section=pm&amp;action=new" method="post">
    <fieldset>
        <legend>Neue Nachricht schreiben</legend>
        <label>Empfänger:<br  /> 			
        	<select name="UserID">
            	<option value="0">Bitte wählen</option>
			<?php foreach ($data['Empfaenger'] as $key => $value) { ?>
				<option value="<?php echo $key; ?>"><?php echo htmlspecialchars($value); ?></option>
            <?php } ?>
			</select><br  />
        <label>Betreff:<br  /> <input type="text" name="Betreff" /></label><br  />
        <label>Nachricht:<br  /> <textarea name="Nachricht" cols="40" rows="10"></textarea></label><br  />
        <input type="submit" name="formaction" value="Nachricht senden" />
    </fieldset>
</form>

$Empfänger = array();
while ($row = $result->fetch_assoc()) {
...;
}
$ret['data']['Empfänger '] = $Empfänger ;

irgendwie so oder? nur wie genau :)
 
Zuletzt bearbeitet von einem Moderator:
Hallo @sakanoue

Sehe ich nicht richtig oder wo liest du bitte die ganzen User aus der DB aus
bzw. wo ist die Schleife, die erstmal in $ret eintragen soll ?

Ich seh da nur ein Script, dass checkt ob ein User, der per Formular übergeben wurde existiert und wenn ja eine Nachricht in die DB einträgt.


Grüße Simon
 

Neue Beiträge

Zurück