entweder leer und user ist normal
oder leer und user ist gründer.
Das leer mus in jedemfall in verbindung mit einem der beiden anderen zusammen true ergeben.
Sonst würde der Block ja jedesmall ausgefüllt wenn das forum geladen wird.
Um mal zum verständniss den genazen code der diese aufgabe macht:
Code: Alles auswählen
if (empty($this->user->data['csstamp']) && $this->user->data['user_type'] == USER_NORMAL || $this->user->data['user_type'] == USER_FOUNDER)
{
$cs_timestamp = time();
$sql = 'UPDATE ' . USERS_TABLE . '
SET csstamp = "' . $this->db->sql_escape($cs_timestamp) . '"
WHERE user_id = "' . $this->db->sql_escape($this->user->data['user_id']) . '"';
$this->db->sql_query($sql);
}
$sql = 'SELECT id
FROM ' . $this->callsign_table . '
WHERE csstamp = "' . $this->db->sql_escape($this->user->data['csstamp']) . '"';
$result = $this->db->sql_query($sql);
$id = $this->db->sql_fetchrow($result);
$this->db->sql_freeresult($result);
if (empty($id) && $this->user->data['user_type'] == USER_NORMAL || $this->user->data['user_type'] == USER_FOUNDER)
{
$sql_ary = [];
$sql_ary[] = [
'csstamp' => $this->user->data['csstamp'],
'callsign_1' => '',
'callsign_2' => '',
'callsign_3' => '',
'callsign_4' => '',
'callsign_5' => '',
'vorname' => '',
'nachname' => '',
'street' => '',
'plz' => '',
'city' => '',
'country' => '',
'email' => '',
'flag' => '',
'qslmgrcallsign ' => '',
'homepage' => '',
'twitter' => '',
'skype' => '',
'bio' => '',
'lat_n' => '',
'lat_n_deg' => '',
'lat_n_min' => '',
'lat_n_sec' => '',
'len_e' => '',
'len_e_deg' => '',
'len_e_min' => '',
'len_e_sec' => '',
'pic' => '',
'tech' => '',
'gridsq' => '',
'itzone' => '',
'cqzone' => '',
'qslmgr' => 0,
'qslvorname' => '',
'qslnachname' => '',
'qslstreet' => '',
'qslcity' => '',
'qslcountry' => '',
];
$this->db->sql_multi_insert($this->callsign_table, $sql_ary);
}
Wenn du den auseinander pflückst ist der erste teil:
Code: Alles auswählen
if (empty($this->user->data['csstamp']) && $this->user->data['user_type'] == USER_NORMAL || $this->user->data['user_type'] == USER_FOUNDER)
{
$cs_timestamp = time();
$sql = 'UPDATE ' . USERS_TABLE . '
SET csstamp = "' . $this->db->sql_escape($cs_timestamp) . '"
WHERE user_id = "' . $this->db->sql_escape($this->user->data['user_id']) . '"';
$this->db->sql_query($sql);
}
Also der teil macht folgendes.
Wenn also jetzt die Seite aufgerufen soll erstmal geprüft werden ob der Benutzer eine csstamp Eintrag in der Tabelle hate und falls nicht dann wird geprüft ob eben normaler oder Gründer ist. dann wird ein csstamp (Hashwert aus time()) erstellt.
Das hab ich halt so gemacht weil wenn ein Benutzer sich registriert wird ja in dem Feld nix eingetragen. Ja ich weis man könnte das wahrscheinlich auch so programmieren das bei der Registrierung der Hashwert eingetragen wird. Ich weis nur leider nicht wie. Weil mein wissen dafür eben noch nicht ausreichend ist. Wenn man das so machen könnte das bei der Registrierung eben schon der wert individuell eingetragen wird würde man diesen Code teil nämlich nicht brauchen.
Nachfolgend der zweite Code teil:
Code: Alles auswählen
$sql = 'SELECT id
FROM ' . $this->callsign_table . '
WHERE csstamp = "' . $this->db->sql_escape($this->user->data['csstamp']) . '"';
$result = $this->db->sql_query($sql);
$id = $this->db->sql_fetchrow($result);
$this->db->sql_freeresult($result);
if (empty($id) && $this->user->data['user_type'] == USER_NORMAL || $this->user->data['user_type'] == USER_FOUNDER)
{
$sql_ary = [];
$sql_ary[] = [
'csstamp' => $this->user->data['csstamp'],
'callsign_1' => '',
'callsign_2' => '',
'callsign_3' => '',
'callsign_4' => '',
'callsign_5' => '',
'vorname' => '',
'nachname' => '',
'street' => '',
'plz' => '',
'city' => '',
'country' => '',
'email' => '',
'flag' => '',
'qslmgrcallsign ' => '',
'homepage' => '',
'twitter' => '',
'skype' => '',
'bio' => '',
'lat_n' => '',
'lat_n_deg' => '',
'lat_n_min' => '',
'lat_n_sec' => '',
'len_e' => '',
'len_e_deg' => '',
'len_e_min' => '',
'len_e_sec' => '',
'pic' => '',
'tech' => '',
'gridsq' => '',
'itzone' => '',
'cqzone' => '',
'qslmgr' => 0,
'qslvorname' => '',
'qslnachname' => '',
'qslstreet' => '',
'qslcity' => '',
'qslcountry' => '',
];
$this->db->sql_multi_insert($this->callsign_table, $sql_ary);
Ich hoffe ich konnte es somit verdeutlichen.