Jautājums par php ielogošanos. Kādēļ man katru reizi uzsākas jauna sesija, nevis atjaunjoas iepriekšējā ar session_start()?
Mādiņa skripts, ja nu kas.
S J miniblogs
- 0
S J 09.11.2012. 21:32
- 0
S J 09.11.2012. 01:13
Velviens jautājums. Kāda velna pēc, ja man datubāzē teksts rādās šādi - "Ä»aunais admins.", lapā tas rādās normāli. Un ja datubāzē ieraksta normāli, šādi rādās lapā. The actual fuck. "SET NAMES utf8" un charset headeris neko nav devis. Collation arī ir utf8_latvian_ci.
- 0
mad 09.11.2012. 08:01
Kur tu liec to SET NAMES? Parādi kodu.
- 0
S J 09.11.2012. 21:10
To es salaboju SET NAMES kverijs bija aiz SELECT un echo, bet ir viena cita problēma, ar Tavu login skriptu. Man lietotājus izlogo pie citas lapas ielādes/esošās lapas pārlādes.
Kods -<?php
session_start();
require('/.http/scripts/class.mdb.php');
require('/.http/scripts/class.auth.php');
$db = new mdb();
$auth = new Auth($db);
if (isset($_POST['username']) && isset($_POST['password'])) {
$auth->login($_POST['username'], $_POST['password']);
}
if ($auth->id) {
echo '<div id="small"><center>Čau, <a href="/blog/user?id=' . $auth->id .'">' . $auth->username . '</a>!<br />';
echo 'Pēdējo reizi manīts: <br />' . $auth->accessed . '!<br />';
echo '<a href="?logout">Izlogoties?</a><br />';
echo '<a href="/blog/me/edit">Labot profilu?</a><br />';
echo '</center></div>';
$ip = $_SERVER["REMOTE_ADDR"];
$id = $auth->id;
$db = new mysqli();
$setip = $db->query("UPDATE users SET ip = '$ip' WHERE id = '$id'");
} else {
?>
<center><form action="" method="post">
<?php
if ($auth->error == 1) {
echo '<p>Nepareizs lietotājvārds un/vai parole!</p>';
}
?>
Lietotājvārds:<br /><input type="text" name="username" /><br />
Parole:<br /> <input type="password" name="password" />
<input type="submit" value="Ielogoties" /><br /><div id="small"><a href="/blog/register">Reģistrēties?</a></div></center>
</form>
<?php
}
if (isset($_GET['logout'])) {
$auth->logout();
CONTENT="0;URL=http://46.109.34.200/blog">';
}
?>
- 0
S J 09.11.2012. 00:20
Sveiki. Kur ir kļūda? Es jau aptuveni 2 stundas nevaru uztaisīt tā, lai nenotiek "if ($auth->id) $db->query("")"
Esmu mēģinājis gan elseif variantus, gan && isset($_POST['null']), nekas nestrādā.Es aizmirsu ielikt pašu kodu, lol.
Lai nu kā, laikam būs jāsāk izmantot "rubber duck debugging". Tiklīdz ierakstiju miniblogā, uzreiz risinājums tapa skaidrs.
<?php
if ($auth->id) {
$id = $auth->id;
$print = $db->query("SELECT * FROM users WHERE id = '$id'");
while ($new = $print->fetch_object())
echo '
<form action="/blog/me/edit" method="post"><center><b>Lietotājvārds: </b><br />' . $new->username . '<br />
<b>Lietotāja nosaukums: </b><br /><textarea name="title" rows="1" cols="30">' . $new->title . '</textarea><br />
<b>E-Pasts: </b><br /><textarea name="email" rows="1" cols="30">' . $new->email . '</textarea><br />
<b>Mājaslapa: </b><br /><textarea name="website" rows="1" cols="30">' . $new->website . '</textarea><br />
<b>Par sevi: </b><br /><textarea id="elm3" name="about" rows="20" cols="80">' . $new->about . '</textarea><br /><strong>Šeit ieraksti "123":</strong><br /><textarea name="null" rows="1" cols="80" ></textarea><br /><input type="submit" value="Labot" /><br /></center>';
}
if (isset($_POST['null']) && $auth->id) {
$db = new mysqli();
$title = $db->real_escape_string($_POST['title']);
$email = $db->real_escape_string($_POST['email']);
$website = $db->real_escape_string($_POST['website']);
$about = $db->real_escape_string($_POST['about']);
$null = $db->real_escape_string($_POST['null']);
$id = $auth->id;
$db->query("UPDATE `users` SET `title` = '$title', `email` = '$email', `website` = '$website', `about` = '$about' WHERE `id` = '$id'");
}
?>Pirmīt man tie abi nebija atdalīti, tapēc sanāca, ka refrešojot lapu, datubāzes ieraksts apdeitojas ar tukšām ailēm. Tad es sadaliju divos, viens iegūst pašreizējos datus, un otrs izpilda kveriju tikai tad, ja textarea null ieraksta vismaz 3 zīmes (lol).
- 0
S J 09.11.2012. 00:34
Ai, šādi arī nestrādā, man tikai likās, ka strādā. :/
EDIT: Ai, tomēr strādā, laikam jāiet gulēt.
- 0
S J 04.11.2012. 12:51
$message = $db->query("SELECT
`player_ban`.`until`,
`player_ban`.`admin`,
`player_ban`.`reason`,
`player_ban`.`player_id`,
`player`.`player`,
`ip`.`ip`
FROM
`player_ban`,
`player`,
`ip`
WHERE
`player`.`player_id` = `player_ban`.`player_id` AND `ip`.`player_id` = `player_ban`.`player_id`
ORDER BY
`player_ban`.`until` ASC");
if (isset($_POST['unban'])) {
$db->query("DELETE FROM player_ban WHERE player_id = '$message->fetch_object()->player id'");
}
while ($new = $message->fetch_object()) {
echo '<tr><th>' .$new->ip. '</th><th>' . $new->player . '</th><th>' . $new->player_id . '</th><th>' . $new->admin . '</th><th>' . $new->until . '</th><th>' . $new->reason . '</th><th><form action="" name="unban" method="post"><input type="submit" value="Unban" /></th></tr>';
}
Un kas tagad ir īsti nepareizi? :/
Ir vel šāds variants, kas arī nestrādā. :/echo '<tr><th>' .$new->ip. '</th><th>' . $new->player . '</th><th>' . $new->player_id . '</th><th>' . $new->admin . '</th><th>' . $new->until . '</th><th>' . $new->reason . '</th><th><form action="/admin/bans?unban=$new->player_id" name="unban" method="post"><input type="submit" value="Unban" /></th></tr>';
- 0
S J 04.11.2012. 21:20
Never mind. Ja kādam interesē tas, kā man izdevās salabot, tad šādi.
Tā kā man jau bija sagatavots $_GET[unban], atlika pielikt linku uz esošo lapu ar ?unban=' . $new->player_id '
- +1
S J 02.11.2012. 15:13
<?php
$db = new mysqli();
$message = $db->query("SELECT * FROM player_ban ORDER BY until ASC");
$player = $db->query("SELECT player FROM player WHERE player_id = '$new->player_id'");
while ($new = $message->fetch_object()) {
echo '<tr><th>' . $player->player . '</th><th>' . $new->player_id . '</th><th>' . $new->admin . '</th><th>' . $new->until . '</th><th>' . $new->reason . '</th></tr>';
}
?>
Kas šeit īsti ir nepareizi? Viss strādā, izņemot to, ka no otras tabulas izvelk spēlētāja niku un ieliek to tajā pašā tabulā.- +1
Mr Raccoon 02.11.2012. 15:33
Es uz šitiem skatoties jūtos kā zābaks.
Tas nav grūti visu šito atcerēties?
- 0
S J 01.11.2012. 17:27
Sveiki, kā var uztaisīt tā, lai no datubāzes izvilktos datus ieliek tabulā? Visi mani līdzšinējie mēģinājumi ir bijuši neveiksmīgi.
<?php
$db = new mysqli();
$message = $db->query("SELECT * FROM player_ban ORDER BY until DESC");
while ($new = $message->fetch_object()) {
echo '<p><b>Spēlētājis: </b>' . $new->player_id . '<b>Moderators: </b>' . $new->admin . '<b>Bans beigsies: </b>' . $new->until . '<b> Iemesls: </b>' . $new->reason . '</p>';
}
?>