Diskuze: urlencode/urldecode
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ked sa naucis pouzivat funkciu pre vlozenie kodu, potom ti mozno niekto pomoze.
Jen takovej dotaz, než použiješ funkci na vložení kódu... tj. script ze hry sfgame.cz? Pokud jo, tak to se zdrojáky mohou ukazovat?
case $ACT_SEND_CHAT :
$data = explode ( ';', $action_extra );
$msg = urlencode($data[0]);
$time = new DateTime ();
$time = $time->getTimestamp ();
$recid = $data[1];
// get some ids
$qry = $db->prepare ( "SELECT user_id, guild_id FROM user_data WHERE ssid = :ssid" );
$qry->bindParam ( ':ssid', $SSID );
$qry->execute ();
$ids = $qry->fetchAll ();
// put into db
$qry = $db->prepare ("INSERT INTO guild_chat(guild_id, sender_id, reciver_id, time, msg)
VALUES(:guildid, :uid, :recid, :time, :msg)");
$qry->bindParam ( ':guildid', $ids [0] ['guild_id'] );
$qry->bindParam ( ':uid', $ids [0] ['user_id'] );
$qry->bindParam ( ':recid', $recid );
$qry->bindParam ( ':time', $time );
$qry->bindParam ( ':msg', $msg );
$qry->execute ();
break;
case $ACT_GET_CHAT_HISTORY :
// Get guild id
$qry = $db->prepare ( "SELECT gchat_last, guild_id FROM user_data WHERE ssid = :ssid" );
$qry->bindParam ( ':ssid', $SSID );
$qry->execute ();
$udata = $qry->fetchAll ();
// get last 5 messages
$qry2 = $db->prepare ( "SELECT * FROM guild_chat WHERE guild_id = :gid ORDER BY time DESC LIMIT 5");
$qry2->bindParam ( ':gid', $udata [0] ['guild_id'] );
$qry2->execute ();
$gcdata = $qry2->fetchAll ();
/*
if($gcdata [4] ['msg_id'] > $udata [0] ['gchat_last'])
{ */
// construct message
$msg = array();
$resto = array();
foreach($gcdata as $row)
{
$qry = $db->prepare ( "SELECT user_name FROM user_data WHERE user_id = :sid" );
$qry->bindParam ( ':sid', $row['sender_id'] );
$qry->execute ();
$una = $qry->fetchAll();
// pretty time
$pt = date('G:i',$row["time"]);
$msg[] = $pt . " " . $una[0]['user_name'].": " . urldecode($row['msg']);
$resto[] = $row['msg_id'];
}
$msgs = implode("/", $msg);
$pitm = ";".$gcdata [0] ['msg_id'].";;";
$rest = implode("/", $resto) . "/";
// return packet
$ret = array (
"161".$msgs.$pitm.$rest
);
/*
// loopswitch
$qry = $db->prepare ( "UPDATE user_data SET gchat_last = " . gcdata [0] ['msg_id']. " WHERE ssid = :ssid" );
$qry->bindParam ( ':ssid', $SSID );
$qry->execute ();
} */
break;
mňa by zaujímali hodnoty, ktoré to vracia ale aj ktoré vkladáš.
Nevím, kde je přesně problém, ale funkce urlencode() přemění diakritiku na procenta a znaky, ale když to proženu zpět funkcí urldecode(), tak mi to vrací písmena s diakritikou správně.
Zobrazeno 7 zpráv z 7.