abonnement Unibet Coolblue Bitvavo
pi_40364203
quote:
Op maandag 31 juli 2006 20:57 schreef Swetsenegger het volgende:
Wat is het voordeel van sessie zelf managen, behalve het obvious dat mensen ingelogged kunnen blijven. Zijn er daarnaast nog voordelen?
Pfoeh, even denken
- je hebt zelf alle controle over hoe sessions werken en worden geďdentificeerd
- je kunt direct via een JOIN gegevens bij je session betrekken
- je bepaalt zelf hoe en wanneer sessions worden getrashed
- op een (slechte) shared webserver zit je niet meer met session IDs van andere websites
- je kunt zo gebruikers toestaan hun actieve sessies te beheren (ala Tweakers.net)
- het is leuk & leerzaam
- etc
pi_40369226
Ik heb een rss feed met ongeveer 150 items. De description is bij elk item uniek.

Deze rss feed wil ik in mijn eigen database zetten zodat ik makkelijk wat kan sorteren etc. Om het uur wil ik deze verversen. Nu is het zo dat er per uur misschien 5 oude items weg zijn er wellicht 5 nieuwe bij zijn.

Wat is nu de makkelijkste manier om enkel de nieuwe items in de DB te zetten? Steeds op die description zoeken en dan num_rows lijkt me namelijk iets te omslachtig... Dat moet toch makkelijker kunnen?
pi_40370541
quote:
Op maandag 31 juli 2006 23:12 schreef Mr_Zoidberg het volgende:
Ik heb een rss feed met ongeveer 150 items. De description is bij elk item uniek.

Deze rss feed wil ik in mijn eigen database zetten zodat ik makkelijk wat kan sorteren etc. Om het uur wil ik deze verversen. Nu is het zo dat er per uur misschien 5 oude items weg zijn er wellicht 5 nieuwe bij zijn.

Wat is nu de makkelijkste manier om enkel de nieuwe items in de DB te zetten? Steeds op die description zoeken en dan num_rows lijkt me namelijk iets te omslachtig... Dat moet toch makkelijker kunnen?
Hou een timestamp bij. Elke keer als je je database update schrijf je de timestamp op dat moment ergens weg, en bij de volgende update INSERT je alleen de nieuwe items sinds die timestamp.
pi_40389326
Ik probeer een now() in de database te zetten, maar het werkt niet echt. Ik krijg de volgende error in phpmyadmin:
1
2
3
4
5
6
7
8
Fout

SQL-query : 

ALTER TABLE `freeroll` CHANGE `update_date` `update_date` TIMESTAMP DEFAULT 'now()'

MySQL retourneerde:
#1067 - Invalid default value for 'update_date' 

Iemand een idee wat ik fout doe?
pi_40392629
je moet niet now() als in php gebruiken, gebruik de SQL now
pi_40398699
quote:
Op maandag 31 juli 2006 15:54 schreef JeRa het volgende:

[..]

Je moet eerst weten wat een session precies is. Het is in feite niets meer dan wat data gekoppeld aan een unieke identifier, de session ID. Voor die session ID wordt heel vaak de md5- of sha1-hash van een hoop random input genomen. Die session ID is het énige wat je van je sessies als cookie opslaat bij de gebruiker.

Als een gebruiker een van je pagina's opvraagt, kijk je of er een session ID in z'n cookie te vinden is. Zo nee, dan genereer je een nieuwe random session ID, insert je die in de database en zet je een cookie bij de gebruiker die na een bepaalde tijd verloopt. Zo ja, dan vraag je de bijbehorende session uit de database op.

Zo'n session tabel kán er zo uitzien, op z'n simpelst:

sid - VARCHAR(32/40)
data - TEXT
timestamp - UNSIGNED INT

Op 'sid' zet je dan een INDEX voor een bepaald aantal karakters. Om data op te slaan in een session kun je die data opslaan in een array in PHP, en op het eind van elk script (indien gewijzigd) opslaan in de database door gebruik te maken van serialize() (en weer ongedaan te maken via unserialize().

In 'timestamp' sla je de UNIX_TIMESTAMP() op van de láátste keer dat een bezoeker een pagina heeft opgevraagd. Bij het laden van de sessions controleer je of een session niet verlopen is, bijvoorbeeld na 30 minuten.

Verder kun je in de database nog meer criteria opnemen zoals IP-adres en User Agent, zodat je sessions als ongeldig verklaart zodra daaraan iets verandert bij de gebruiker. Dan kan iemand, zodra hij een session ID van iemand heeft weten te stelen, nog niet meteen bij de session.

Als laatste moet je natuurlijk af en toe een grote schoonmaken houden waarbij je oude sessions uit de database verwijdert, hoe je dat doet moet je zelf even uitzoeken ik voer meestal een cleanup uit op ongeveer 1 vd 200 requests.
quote:
Op maandag 31 juli 2006 21:06 schreef JeRa het volgende:

[..]

Pfoeh, even denken
- je hebt zelf alle controle over hoe sessions werken en worden geďdentificeerd
- je kunt direct via een JOIN gegevens bij je session betrekken
- je bepaalt zelf hoe en wanneer sessions worden getrashed
- op een (slechte) shared webserver zit je niet meer met session IDs van andere websites
- je kunt zo gebruikers toestaan hun actieve sessies te beheren (ala Tweakers.net)
- het is leuk & leerzaam
- etc


Kijk, daar heb ik wat aan! Ik ga spelen, bedankt
pi_40401969
quote:
Op dinsdag 1 augustus 2006 18:45 schreef Scorpie het volgende:
je moet niet now() als in php gebruiken, gebruik de SQL now
Dat heb ik nu als oplossing, maar je zou now() of CURRENT_TIMESTAMP ook gewoon als default value in je tabel kunnen zetten en dat werkt niet echt
Niet dat het een heel groot probleem is, maar ik wil gewoon weten waarom het niet werkt
  woensdag 2 augustus 2006 @ 13:50:32 #233
62215 qu63
..de tijd drinkt..
pi_40417511
vraag 1:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'bericht van veel tekens)' at line 1
$bericht = $_POST['Bericht'];
mysql_query("INSERT INTO reacties (op_ID, Naam, Bericht) VALUES($id, $naam, $bericht)");

en $bericht bestaat dus uit: "mijn bericht van veel tekens"
hoe los ik dit nou netjes op?

vraag 2:
Unknown column 'testertester' in 'field list'

$naam = $_POST['Naam'];
mysql_query("INSERT INTO reacties (op_ID, Naam, Bericht) VALUES($id, $naam, $bericht)");

testertester heb ik zelf ingevuld bij Naam in mn invulpagina, maar hoe de fuck komt ie er bij dat die kolom niet bestaat? de kolommen zijn toch op_ID, Naam en Bericht? en daarin moet ie die zooi invullen

It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_40417912
quote:
Op woensdag 2 augustus 2006 13:50 schreef qu63 het volgende:
vraag 1:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'bericht van veel tekens)' at line 1
$bericht = $_POST['Bericht'];
mysql_query("INSERT INTO reacties (op_ID, Naam, Bericht) VALUES($id, $naam, $bericht)");

en $bericht bestaat dus uit: "mijn bericht van veel tekens"
hoe los ik dit nou netjes op?
Op z'n minst door er quotes omheen te zetten en het bericht goed te escapen:

mysql_query('INSERT INTO reacties (op_ID, Naam, Bericht) VALUES ($id, \'' . addslashes($naam) . '\', \'' . addslashes($bericht) . '\')');

Tenminste, addslashes() als magic_quotes_gpc op Off staat. Het beste doe je zoiets grondiger en door bijvoorbeeld prepared statements te gebruiken, maar dat is even teveel uitleg.
quote:
vraag 2:
Unknown column 'testertester' in 'field list'

$naam = $_POST['Naam'];
mysql_query("INSERT INTO reacties (op_ID, Naam, Bericht) VALUES($id, $naam, $bericht)");

testertester heb ik zelf ingevuld bij Naam in mn invulpagina, maar hoe de fuck komt ie er bij dat die kolom niet bestaat? de kolommen zijn toch op_ID, Naam en Bericht? en daarin moet ie die zooi invullen

Nogmaals, quotes om je strings.
  woensdag 2 augustus 2006 @ 14:10:14 #235
62215 qu63
..de tijd drinkt..
pi_40418160
quote:
Op woensdag 2 augustus 2006 14:02 schreef JeRa het volgende:
Het beste doe je zoiets grondiger en door bijvoorbeeld prepared statements te gebruiken, maar dat is even teveel uitleg.
heb je wel een linkje dan?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_40436264
hoi mensen,
ben net begonnen met php (wat natuurlijk vooral bestaat uit t aanpassen van bestaande scripts om zo n idee te krijgen hoe alles een beetje in elkaar zit)

maar goed.. ik heb een database met een aantal tabellen waar een zoekmachine aan gekoppeld is.
de zoekmachine werkt op zich prima...maarrrr wanneer de zoekmachine getoond wordt is het de bedoeling dat er in 1e instantie nog GEEN resultaten getoond worden. op dit moment toont hij direct alles wat in de database staat.

er zou dus een soort van start-value ingevoegd moeten worden welke niet in de database aanwezig is..en zodoende de eerste query geen resultaten oplevert. ik heb al een aantal dingen geprobeerd maar helaas zonder gewenst resultaat.

waar en wat moet ik precies aanpassen?


Het script --> (search.php);

<?php

//Error reporting aan

error_reporting(E_ALL);

// set your infomation.
$dbhost='blabla';
$dbusername='blabla';
$dbuserpass='blabla';
$dbname = 'blabla';

// connect to the mysql database server.
mysql_connect ($dbhost, $dbusername, $dbuserpass);
//select the database
mysql_select_db($dbname) or die('Cannot select database');
if(isset($_GET['search']))
{
$search = $_GET['search'];
}

$keywords = explode("", $search);

$query = "SELECT VOORNAAM,ACHTERNAAM, PLAATS FROM VRIJWILLIGER " .
"WHERE VOORNAAM LIKE '%".$keywords['0']."%'
OR ACHTERNAAM LIKE '%".$keywords['0']."%'
OR PLAATS LIKE '%".$keywords['0']."%'";

for ($i=1; $i<count($keywords); $i++) {
$query = $query." OR ACHTERNAAM LIKE '%".$keywords[$i]."%'";
}

$result = mysql_query($query) or die(mysql_error());
?>
<center>
<form method="GET" action="search.php">
<input type="text" name="search" value="typ hier de zoekterm" size="20" />
<input type="submit" value="Zoek" />
</form>
<table width="450" style="border:1px solid #000000;">
<tr>
<td width="150">
Voornaam
</td>
<td width="150">
Achternaam
</td>
<td width="150">
Plaats
</td>
</tr>

<?php
while($row = mysql_fetch_array($result))
{

echo "<tr>";

echo "<td width='150'>";
echo "".$row['VOORNAAM']."";
echo "</td>";


echo "<td width='150'>";
echo "".$row['ACHTERNAAM']."";
echo "</td>";


echo "<td width='150'>";
echo "".$row['PLAATS']."";
echo "</td>";

echo "</tr>";


}
?>
</table>
</center>
pi_40436759
Je kan eenvoudigerwijs een if(!empty($search)) doen toch?
pi_40436760
1
2
3
4
5
6
<?php
if (isset($_POST['search']) { //formulierveld 'search' heeft een waarde > voer db connectie uit
//code db connectie enzo
}
//formulier
?>


ofwel: via if (isset()) bekijken of een variable is 'gezet'.

Door een leeg formulier te versturen set je de varable ook, dus krijg je ook alle waarde.

Als je dat niet wilt, kun je if ( empty() ) gebruiken. Echter is ook de waarde 0 false.

Wil je 0 wel toestaan: if ($_POST['search'] != "")
pi_40451882
Ik lees een txt bestand uit met PHP (doh ) en daar van staan een paar quotes op aparte regels. Daar word nu dus een array van gemaakt dmv explode.
maar als ik die array print krijg ik
Array ( [0] => Array )
en dus niks uit het tekst bestand. Waar zit de fout of wat mist er waar?

1
2
3
4
5
6
7
8
9
<?php
$quoteFile
= "quote.txt";
$content = file($quoteFile);  
$quotes = explode("\n",$content);

//$index = (rand(1, sizeof($quotes)) - 1);  
print_(r)($quotes);
//echo $quotes[$index];
?>


gelieve alleen aanwijzingen geven, en niet de code voor mij klaar stomen, zo leer ik er van
en als je je afvraagt waarom dit is, gewoon als oefening.
pi_40451925
quote:
file
(PHP 3, PHP 4, PHP 5)

file -- Leest het volledige bestand in een array

Hetzelfde als readfile(), behalve dat file() het bestand in een array terug geeft. Elk element van de array komt overeen met een regel uit het bestand, met het newline teken er nog aan. Als het faalt, geeft file() FALSE terug.
HINT!!
pi_40451960
hehe, er miste dus niks, maar er stond iets te veel
dankje
pi_40453550
quote:
Op donderdag 3 augustus 2006 00:03 schreef the_disheaver het volgende:

[ code verwijderd ]

ofwel: via if (isset()) bekijken of een variable is 'gezet'.

Door een leeg formulier te versturen set je de varable ook, dus krijg je ook alle waarde.

Als je dat niet wilt, kun je if ( empty() ) gebruiken. Echter is ook de waarde 0 false.

Wil je 0 wel toestaan: if ($_POST['search'] != "")
ik heb het inmiddels opgelost door $search alvast n beginwaarde te geven op deze manier;


$search = 'blablabla';

if(isset($_GET['search']))
{
$search = $_GET['search'];
}


evengoed bedankt voor de reacties
pi_40455156
Mag ik dat lelijk vinden? Als er toevallig een result voor 'blablabla' is, krijg je een resultaat. Lijkt een beetje vreemd... beetje lelijk...
pi_40455324
Ik zou zoiets doen:

1$search = isset($_GET['search']) ? $_GET['search'] : false;


Of in functievorm:

1
2
3
4
5
6
function getGet($key)
{
    return isset($_GET[$key]) ? $_GET[$key] : false;
}

$search = getGet('search');
pi_40455841
quote:
Op donderdag 3 augustus 2006 16:03 schreef warezguy05 het volgende:

[..]

ik heb het inmiddels opgelost door $search alvast n beginwaarde te geven op deze manier;


$search = 'blablabla';

if(isset($_GET['search']))
{
$search = $_GET['search'];
}


evengoed bedankt voor de reacties
bah!


doe anders if (!empty($search))

werkt altijd prima
As a rule, I never touch anything more sophisticated and delicate than myself.
  vrijdag 4 augustus 2006 @ 22:51:58 #246
71610 Black-Hole
Deep in my soul
pi_40495925
Misschien hoort de vraag hier niet helemaal thuis maar ik probeer het toch.

Heb net een backup gemaakt van mijn mySQL-database, deze backup wil ik importeren in een andere database. Nu is de backup file alleen 9mb groot, ik kan hem dus niet in een keer importeren via phpmyadmin. Nu weet ik dat er splitters zijn die de backup kunnen opsplitsen zodat ik het stukje voor stukje kan importeren. Aleen waar zijn die te vinden, heb al flink gezocht maar kan niks vinden.

Wie heeft er een linkje naar een splitter?
  zaterdag 5 augustus 2006 @ 04:53:25 #247
19840 Libris
Live from Singapore
pi_40504159
Je kan het zelf ook vrij makkelijk splitten, als je het maar tussen SQL in statements doet.
  zaterdag 5 augustus 2006 @ 15:35:49 #248
71610 Black-Hole
Deep in my soul
pi_40512284
Het is al gelukt, heb de database beetje voor beetje geexporteerd. De enige file die alsnog te groot was heb ik met wordpad geopend en op de helft gesplits. Ging prima zonder dataverlies.
pi_40523964
je kan toch ook een vinkje zetten bij het importeren van een file, dattie het automatisch zelf opsplitst?
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_40524641
quote:
Op zaterdag 5 augustus 2006 22:41 schreef Desdinova het volgende:
je kan toch ook een vinkje zetten bij het importeren van een file, dattie het automatisch zelf opsplitst?
Dat zal niet helpen als je een 9mb file probeert te uploaden op een server met een lagere upload limiet. De file komt gewoon niet aan op de server.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')