Jump to content
php.lv forumi

cepumi


rumpels

Recommended Posts

luk ka izskatas piemers kursh iebazh datus bazee, izveido cepumu un aizved visu pasakumu uz to pashu lapu, lai refreshojot nepostojas velreiz:

<?
if ($teksts){
mysql_query("INSERT INTO guest SET vards='$vards', teksts='$teksts', pievienots=NOW( )");
setcookie ("selga", $vards);
echo '<meta http-equiv="refresh" content="0; url=?id=guest">';
}
?>

sekojoshi pie varda laucinja ir value="<? echo $niks;?>" ar nosacijumu ka $niks = $_COOKIE['selga']; skripts ir viena faila veidots un action notiek php_self un ticiet vai nea nav ne kukija ne value johny piemeram:) izmegjinaju uz trim serveriem un neviena neka nebija, panjemu gatavus skriptus lai izmegjinatu vai kukiji postojas un tieshi ta tur viss o.k., tatad jautajiens vai setcookie jabazh pats pirmais vai der ari pec kverija?

Edited by rumpels
Link to comment
Share on other sites

Ar setCookie izceptie cepumi parādās tikai tad, kad tu attaisi krāsns durvis, jeb programmētāju valodā runājot pie nākamās lapas ielādes. Ja gribi šos cepumus dabūt neattaisot krāsns durvis, tad pašam ir jālien krāsnī, tas ir, manuāli jāuzstāda $_COOKIE['mainiigais'].

Link to comment
Share on other sites

kaklzs es tak izvadu $niks = $_COOKIE['selga']; bet value neparada mainigo $niks:(

 

shitais aiziet, bet ari pirmo reizi postojot shis value neatrod tikai velreiz iepostojot tas paradas tatad ja butu pec posta refresh tad butu pie pirma jau?!

<?
if($teksts) {
setcookie ("selga", $vards);
}
?>
<table align="center" cellpadding="1" cellspacing="0">
<form method="POST" action="<? $php_self; ?>">
 <tr>
<td>
<p align="right">Vārds:</td>
<td>
<input class="def" type="text" class="textfield" name="vards" value="<?=$_COOKIE['selga'];?>" size="20"></td>
 </tr>
 <tr>
<td valign="top">
<p align="right">Teksts:</td>
<td>
<textarea rows="4" class="textfieldns" name="teksts" cols="103"></textarea>
</td>
 </tr>
 <tr>
<td> </td>
<td><input type="submit" class="textfield" value="Pievienot"></td>
 </tr>
</form>
</table>

Link to comment
Share on other sites

izskatas ja velies kadu postoshanas formu lai vel saglaba cepumus un nakama reize atrodoties shini forma ar kadu aizpilditu lauku ir jataisa divi keisi ar linku uz pirma keisa saturu !!! tad bus o.k. bet vienalga kukijs pie pirma skripta nesaglabajas vispar:(

Link to comment
Share on other sites

mysql_query("INSERT INTO guest SET vards='$vards', teksts='$teksts', pievienots=NOW( )");

Iesaku paskatīties MySQL manuālī INSERT teikuma sintaksi! :) Šitais jau nu 100 punkti nav pareizs :D

Link to comment
Share on other sites

Bāc, tak INSERT teikums rakstāms šādi:

 INSERT INTO table (colon1, colon2, ....) VALUES (value1, value2, ....)

a bet UPDATE rakstāms šādi:

 UPDATE table SET colon1 = value1, conon2 = value2, ...

Link to comment
Share on other sites

Apskatiiju savu skriptu - tiesa kas tiesa, man shitaa raxtiits

"INSERT INTO spekosimies VALUES('" . $id . "', '0','0','0','0','" . $_SESSION['vards'] . "')"

 

Jautaajiens pa teemai - a shitaa tjipa " . $mainiigais . " nestraadaa labaak?

Link to comment
Share on other sites

Jautaajiens pa teemai - a shitaa tjipa " . $mainiigais . " nestraadaa labaak?

Tīri teorētiskā līmenī esmu dzirdējis, ka:

$str = 'blablabla ' . $mainigais . ' blablabla2';

strādā ātrāk, un ir potenciāli mazāks risks uzrauties uz to, ka, ja gadījumā PHP "variable expansion" kodā ir (tiek atrasta) kāda bufera pārpildīšanās, tad to lietu var izmantot uzbrukumam (Protams, var strīdēties pretī, ka arī konkatenācijas operācijā varētu atrasties šādas problēmas, tomēr, manuprāt, konkatenāciju norealizēt ir vieglāk - tātad mazāka iespēja nokļūdīties).

Bet:

$str = "blablabla $mainigais blablabla2";

var pieļaut mazāk kļūdas sintaksē.

 

No praktiskā viedokļa... domāju, ka vienaalga (-:

Link to comment
Share on other sites

mysql_query("INSERT INTO guest SET vards='$vards', teksts='$teksts', pievienots=NOW( )");

Iesaku paskatīties MySQL manuālī INSERT teikuma sintaksi! :) Šitais jau nu 100 punkti nav pareizs :D

bubu, šite nu tev ir 50%/50% taisnība. SQL-92 standartā tiešām nav šādas sintakses, taču paldies MySQL, kurš to neskatoties uz neesamību standartā ir ieviesis. Saki ko gribi, bet insertus šādi ir rakstīt daudz ērtāk, kaut vai gadījumos, kad viņi ir palieli. Tev ir iespējas insertu sarakstīt apmēram šādi:

 

foreach ($insertArray as $key => $value){
   $insertPairs[] = $key . ' = "' . mysql_escape_string($value) . '"';
}
$qry = 'INSERT INTO tabula SET ' . join (', ', $insertPairs);

 

Pamēģini šādu triku izveikt ar pierasto SQL-92 standartā rakstīto sintaksi ;)

 

Protams, savā ziņa taisnība tev būs, ja teiksi, ka ir slikti pierast pie vienas DBPS, bet iespējas ir tāpēc, lai viņas izmantotu. Es arī pirmajā reizē tieši tāpat kā tu protestēju pret šādu sintaksi, bet palasot manuāli atradu, ka tas ir legāli un mazliet aplauzos :)

 

Edit:

Nobeigumā citāts no MySQL manuāļa:

INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
   [INTO] tbl_name
   SET col_name={expr | DEFAULT}, ...
   [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

Edited by Kaklz
Link to comment
Share on other sites

×
×
  • Create New...