1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | ini_set("session.use_cookies",1); mysql_connect("localhost","****","***#*"); mysql_select_db("*********"); session_start(); if(isset($_POST['Username']) && isset($_POST['Password'])) { $user = addslashes(strip_tags($_POST['Username'])); $pass = md5($_POST['Password']); $check = mysql_query("SELECT * FROM `users` WHERE `Username` = '".$user."' AND `Password` = '".$pass."'") or die(mysql_error()); if(mysql_num_rows($check) == 1) { $_SESSION['SID'] = session_id(); $_SESSION['userID'] = $user; $_SESSION['userPW'] = $pass; header("Location:http://".$_SERVER['HTTP_HOST']."/anime_argeweb/admin/admin.php"); } else { $error = mysql_errno(); include("login.html"); } else if(isset($_COOKIE['PHPSESSID'])) { header("Location:http://".$_SERVER['HTTP_HOST']."/anime_argeweb/admin/admin.php"); } else { include("login.html"); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ini_set("session.use_cookies",1); if(isset($_COOKIE['PHPSESSID'])) { session_start(); session_id($_COOKIE['PHPSESSID']); print_r($_SESSION); print_r($_COOKIE); } else { header("Location:http://".$_SERVER['HTTP_HOST']."/anime_argeweb/admin/"); } ?> |
quote:If id is specified, it will replace the current session id. session_id() needs to be called before session_start() for that purpose.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | else { $sql_gebruiker = "SELECT * FROM `css_gebruikers` WHERE `gebruikersnaam` = '$_POST[gebruikersnaam]' LIMIT 0,1"; $res_gebruiker = mysql_query($sql_gebruiker) or die("Kan de gebruiker niet uit de Database halen"); if(mysql_num_rows($res_gebruiker) == 0){ echo "<span class=\"foutmelding\">De ingevoerde gebruikersnaam is niet gevonden in de database.</span>"; echo "<p class=\"koptext\">Inloggen</p> <form id=\"form1\" name=\"form1\" method=\"post\" action=\"index.php?action=inloggen\"> <table width=\"381\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\"> <tr> <td width=\"170\" class=\"text\">Gebruikersnaam:</td> <td width=\"200\"><input name=\"gebruikersnaam\" type=\"text\" size=\"30\" /></td> </tr> <tr> <td width=\"170\" class=\"text\">Wachtwoord:</td> <td width=\"200\"><input name=\"wachtwoord\" type=\"password\" size=\"30\" /></td> </tr> </table> <p> <span id=\"btn\"><input type=\"submit\" name=\"submit\" value=\"Inloggen\" /></span> </p> </form>"; } else { $gebruiker = mysql_fetch_object($res_gebruiker); if (md5($_POST['wachtwoord']) == $gebruiker->wachtwoord) { $_SESSION['gebruikersnaam'] = $gebruiker->gebruikersnaam; $_SESSION['login'] = "test"; echo "<script language=\"JavaScript\">"; echo "document.location='index.php'"; echo "</script>"; } else { echo "<span class=\"foutmelding\">Het ingevoerde wachtwoord is onjuist. Probeer het opnieuw.</span>"; echo "<p class=\"koptext\">Inloggen</p> <form id=\"form1\" name=\"form1\" method=\"post\" action=\"index.php?action=inloggen\"> <table width=\"381\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\"> <tr> <td width=\"170\" class=\"text\">Gebruikersnaam:</td> <td width=\"200\"><input name=\"gebruikersnaam\" type=\"text\" size=\"30\" /></td> </tr> <tr> <td width=\"170\" class=\"text\">Wachtwoord:</td> <td width=\"200\"><input name=\"wachtwoord\" type=\"password\" size=\"30\" /></td> </tr> </table> <p> <span id=\"btn\"><input type=\"submit\" name=\"submit\" value=\"Inloggen\" /></span> </p> </form>"; } } } } ?> |
1 2 3 4 5 6 | if ($login != 'test') { inloggen(); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | include( "config.php"); include( "mmslib.php" ); include( "hooks.php" ); import_request_variables( "gp" ); function apply_hooks( $contentType, $filename ) { global $hooks; if ( array_key_exists( $contentType, $hooks ) ) { $hooklist = $hooks[$contentType]; foreach( $hooklist as $hook ) { $hook( $contentType, $filename ); // Apply the hook } } } $typeToExtension = array( IMAGE_GIF => ".gif", IMAGE_JPEG => ".jpg", IMAGE_PNG => ".png", IMAGE_WBMP => ".wbmp", TEXT_PLAIN => ".txt", "application/smil" => ".smil", "audio/amr" => ".amr", "x-music/x-midi" => ".mid", "audio/midi" => ".mid", "audio/x-wav" => ".wav", "text/x-imelody" => ".imy" ); function writeInfo( $dir, $md ) { $fp = fopen( $dir . "/info.txt", "wb" ); $var_names = array_keys( $_SERVER ); fwrite( $fp, "CONTENT_TYPE: " . $_SERVER['CONTENT_TYPE'] . "\n" ); fwrite( $fp, "HTTP_USER_AGENT: " . $_SERVER['HTTP_USER_AGENT'] . "\n" ); fwrite( $fp, "HTTP_WAP_CONNECTION: " . $_SERVER['HTTP_WAP_CONNECTION'] . "\n" ); fwrite( $fp, "REMOTE_ADDR: " . $_SERVER['REMOTE_ADDR'] . "\n" ); fwrite( $fp, "REMOTE_PORT: " . $_SERVER['REMOTE_PORT'] . "\n\n" ); /* Message comes here */ fwrite( $fp, "X-Mms-Message-Type: " . messageTypeToString( $md->messageType ) . "\n" ); fwrite( $fp, "X-Mms-Transaction-ID: " . $md->transactionId . "\n" ); fwrite( $fp, "X-Mms-MMS-Version: " . mmsVersionToString( $md->mmsVersion ) . "\n" ); fwrite( $fp, "Date: " . date("Y-m-d H:i:s", mktime() ) . "\n" ); fwrite( $fp, "From: " . "<removed before web publish>" . "\n" ); fwrite( $fp, "To: " . "<removed before web publish>" . "\n" ); fwrite( $fp, "Subject: " . $md->subject . "\n" ); fwrite( $fp, "X-Mms-Message-Class: " . messageClassToString($md->messageClass) . "\n" ); fwrite( $fp, "X-Mms-Sender-Visibility: " . senderVisibilityToString($md->senderVisibility) . "\n" ); fwrite( $fp, "X-Mms-Delivery-Report: " . deliveryReportToString( $md->deliveryReport ) . "\n" ); fwrite( $fp, "X-Mms-Read-Reply: " . readReplyToString( $md->readReply ) . "\n" ); fwrite( $fp, "Content-Type: " . contentTypeToString( $md->contentType ) . "\n\n" ); fclose( $fp ); } function writeBackSendConf( $md ) { $reply[0] = 0x8c; /* X-Mms-Message-Type */ $reply[1] = 0x81; /* = m-send-conf */ $reply[2] = 0x98; /* X-Mms-Transaction-ID */ for ( $i = 3; $i < strlen( $md->transactionId ) + 3; $i++ ) $reply[$i] = ord( $md->transactionId{$i-3} ); $reply[$i++] = 0; /* Terminate string */ $reply[$i++] = 0x8D; /* X-Mms-Version */ $reply[$i++] = 0x90; /* = 1.0 */ $reply[$i++] = 0x92; /* X-Mms-Response-Status */ $reply[$i++] = 128; /* = OK */ /* Finally write it back to the client */ for ( $j = 0; $j < $i; $j++ ) print( chr( $reply[$j] ) ); } function getExtension( $contentType ) { global $typeToExtension; if ( array_key_exists( $contentType, $typeToExtension ) ) return $typeToExtension[$contentType]; return ".bin"; } /* Program starts here */ set_magic_quotes_runtime(0); header("Content-Type: application/vnd.wap.mms-message"); if ( $_SERVER['CONTENT_TYPE'] == "application/vnd.wap.mms-message" && strlen( $HTTP_RAW_POST_DATA ) > 0 ) { $md = new MMSDecoder( $HTTP_RAW_POST_DATA ); $md->parse(); $cur_time = mktime(); $dir_name = MSG_STORE_DIR . "/" . $cur_time . "_" . $md->transactionId; mkdir( $dir_name ); $parts = $md->parts; for ( $i = 0; $i < sizeof( $parts ); $i++ ) { $p = $parts[$i]; $ext = getExtension( $p->contentType ); $filename = $dir_name . "/part_" . $i . $ext; $p->writeToFile( $filename ); apply_hooks( contentTypeToString($p->contentType), $filename ); } writeInfo( $dir_name, $md ); writeBackSendConf( $md ); } ?> |
ik ben nu wel meteen ingelogd jaquote:Op maandag 24 juli 2006 15:57 schreef Siegfried het volgende:
Mijn prob is al fixed..
De session moest ik boven controlleren met ($_SESSION['login'] ipv $login.
aha..quote:Op maandag 24 juli 2006 15:00 schreef JeRa het volgende:
@mschol
Van http://nl2.php.net/session_id:
[..]
Dus er gaat iets mis met je cookies. Kijk eens naar de headers die je van je PHP-pagina krijgt en naar de cookies die je browser opslaat.quote:Op maandag 24 juli 2006 18:42 schreef mschol het volgende:
[..]
aha..
maar dan heb ik nie eens mer een cookie ..(als ik em in de 2de pagina aanpas)
Een goede eerste stap lijkt me het kijken naar de tabelstructuur van de usertabel van dat forumquote:Op maandag 24 juli 2006 22:37 schreef MrDoegewoon het volgende:
Hehe ik vraag het hier maar eens mss dat iemand er al ervaring in heeft ook..
Op m'n website posten we nu de nieuwsberichten via het forum (SMF) en via een file dat mee geleverd is tonen we dit op de frontpage en kunnen de leden reageren.
Nu willen we een eigen nieuws systeem maken (wat vast wel lukt) maarrr hikken we tegen het volgende aan, hoe krijgen we de users van SMF in een eigen userdatabase,
voor het nieuwsysteem.
Of nog beter hoe kunnen we die userdatabse van SMF gebruiken, zodat als je inlogt op de frontpage ook inlogt op het forum en visa versa
Die is best simpel eigelijk, zal morgen (waarom ik het niet eerder gedaan heb moet je aan Joost vragenquote:Op maandag 24 juli 2006 22:41 schreef JeRa het volgende:
[..]
Een goede eerste stap lijkt me het kijken naar de tabelstructuur van de usertabel van dat forum
cookie was wel goed gezet, alleen je script liet me niet door. nadat je het zelf gewijzigd had bekeek ik de pagina nog een keer en heb ik leuk een stylesheet gemaakt en weer verwijderdquote:
iemand enig idee? dev.mysql.com helpt me niet iigquote:Op dinsdag 25 juli 2006 16:37 schreef qu63 het volgende:
LOAD DATA INFILE 'test.txt' INTO TABLE mms (Inhoud1)
en
INSERT INTO mms (Locatie, Datum, Onderwerp, Inhoud1, Inhoud2, Inhoud3, Bijlage1, Bijlage2, Bijlage3) VALUES('$dir_name','$cur_time','$onderwerp','$Inhoud1','$Inhoud2','$Inhoud3','$Bijlage1','$Bijlage2','$Bijlage3')
hoe kan ik deze nou combineren? of kan ik bij de LOAD DATA INTO ook een "WHERE Id=mysql_insert_id()" er achter plakken en deze dus na de INSERT uitvoeren?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $hc = file_get_contents("http://www.iidesk.com/water/water"); preg_match_all("/\<tr.*?\>(.*?)\<\/tr\>/s",$hc,$rows); foreach($rows[1] as $row){ preg_match_all("/\<td.*?\>(.*?)\<\/td\>/s",$row,$cols); preg_match("/\<a.*?\>(.*?)\<\/a\>.*?\((.*?)\)/s",$cols[0][0],$locatie_arr); $locatie = trim($locatie_arr[1]); $uur = trim($locatie_arr[2]); if($locatie != ""){ for($i = 1 ; $i <= 7 ; $i++){ preg_match("/(.*?)\<br\>/",$cols[1][$i],$stand_arr); $waterstanden[$locatie][$uur][$i] = strip_tags($stand_arr[1]); } } } print_r($waterstanden); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | $dir_name = "msgstore/1153921398_E0F73027A65781"; if(file_exists($dir_name . "/part_0.txt")){ $Inhoud1_temp = file( $dir_name . "/part_0.txt"); $count = count($Inhoud1_temp); for ($i = 0; $i <= $count; $i++) { $Inhoud1 .="". $Inhoud1[$i]."<br />\n"; } }elseif(file_exists($dir_name . "/part_0.jpg")){ $Bijlage1 = $dir_name . "/part_0.jpg";} echo $Inhoud1; ?> |
1 |
1 2 3 4 5 6 7 8 | $Inhoud1 = file("msgstore/1153921398_E0F73027A65781/part_0.txt"); $test = count($Inhoud1); for ($i = 0; $i <= $test; $i++) { $hoi .="". $Inhoud1[$i]."<br />\n"; } echo $hoi; ?> |
1 |
quote:Op woensdag 26 juli 2006 15:38 schreef Mr_Zoidberg het volgende:
Ik heb de volgende "timestamp": Sat, 22 Jul 2006 23:59:15 -0400
Weet iemand of er een makkelijke manier is om deze om te zetten naar GMT en een normaal formaat?
1 2 3 4 | $str = strtotime('Sat, 22 Jul 2006 23:59:15 -0400e'); echo $str? date('yymmdd',$str) : 'invalid format'; ?> |
quote:Op woensdag 26 juli 2006 15:59 schreef Roonaan het volgende:
@qu
Regel 8 van de eerste zou denk ik moeten zijn:
$Inhoud1 .="". $Inhoud1_temp[$i]."<br />\n";
Je wilt dus waarden uit een textfile naar bestaande records importeren? Volgens mij gaat dat niet, zul je handmatig moeten doen.quote:Op dinsdag 25 juli 2006 16:37 schreef qu63 het volgende:
LOAD DATA INFILE 'test.txt' INTO TABLE mms (Inhoud1)
en
INSERT INTO mms (Locatie, Datum, Onderwerp, Inhoud1, Inhoud2, Inhoud3, Bijlage1, Bijlage2, Bijlage3) VALUES('$dir_name','$cur_time','$onderwerp','$Inhoud1','$Inhoud2','$Inhoud3','$Bijlage1','$Bijlage2','$Bijlage3')
hoe kan ik deze nou combineren? of kan ik bij de LOAD DATA INTO ook een "WHERE Id=mysql_insert_id()" er achter plakken en deze dus na de INSERT uitvoeren?
daar was ik ook al aan begonnen en dat is nu ook geluktquote:Op woensdag 26 juli 2006 16:03 schreef JeRa het volgende:
[..]
Je wilt dus waarden uit een textfile naar bestaande records importeren? Volgens mij gaat dat niet, zul je handmatig moeten doen.
Je moet de COUNT() aggregate functie uitvoeren op de kolom die je wilt tellen. Je groepeert op op_ID, en je wilt bijvoorbeeld het aantal reactie-ID's tellen. Dan doe je dus COUNT(id) AS aantal (oid)quote:Op donderdag 27 juli 2006 00:11 schreef qu63 het volgende:
SELECT op_ID, COUNT(*) FROM reacties WHERE op_ID = ".$row['ID']."GROUP BY op_ID
deze code werkt niet, daar ben ik ondertussen ook al achter
de bedoeling is alsvolgt:
ik wil het aantal reacties laten zien op een bericht. (in cijfers dus)
iemand enig idee hoe ik het wel werkend kan krijgen?
maar eenquote:Op donderdag 27 juli 2006 01:02 schreef JeRa het volgende:
[..]
Je moet de COUNT() aggregate functie uitvoeren op de kolom die je wilt tellen. Je groepeert op op_ID, en je wilt bijvoorbeeld het aantal reactie-ID's tellen. Dan doe je dus COUNT(id) AS aantal (oid)
dan krijg ik:quote:Op donderdag 27 juli 2006 12:42 schreef Siegfried het volgende:
SELECT COUNT(op_ID) FROM reacties WHERE op_ID = ".$row['ID']."GROUP BY op_ID
Zo?
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 'BY op_ID' at line 1quote:Op donderdag 27 juli 2006 13:03 schreef Darkomen het volgende:
$result2 = mysql_query("SELECT COUNT(op_ID) FROM reacties WHERE op_ID = .$row['ID']."GROUP BY op_ID") or die (mysql_error());
r80 $row2 = mysql_fetch_assoc($result2);
Probeer het ff zo, en laat dan de foutmelding weten
dat lost idd die melding op, alleen de uitkomst klopt nu nietquote:Op donderdag 27 juli 2006 13:13 schreef SuperRembo het volgende:
Dan ontbreekt er waarschijnlijk een spatie voor GROUP BY.
1 2 3 4 5 | 1 1 Test Hoi! 2 1 Jan Jan! 3 2 123 123 4 2 456 456 |
quote:Op donderdag 27 juli 2006 13:13 schreef SuperRembo het volgende:
Dan ontbreekt er waarschijnlijk een spatie voor GROUP BY.
die staan om .$row['ID'] en de laatste is een aflsuiter voor de mysql_queryquote:Op donderdag 27 juli 2006 13:26 schreef Siegfried het volgende:
Waarom die aanhalingstekens om GROUP BY?
Zeg, als je toch een WHERE op_ID = zoveel doet, waarom dan niet gewoon zónder GROUP BY?quote:Op donderdag 27 juli 2006 13:30 schreef qu63 het volgende:
[..]
die staan om .$row['ID'] en de laatste is een aflsuiter voor de mysql_query
1 |
thanksquote:Op donderdag 27 juli 2006 14:31 schreef JeRa het volgende:
[..]
Zeg, als je toch een WHERE op_ID = zoveel doet, waarom dan niet gewoon zónder GROUP BY?
[ code verwijderd ]
En geen aanhalingstekens waar dan ook, het zijn getallen en geen strings.
vi, gedit, kate, Crimson Editor, Eclipse. Afhankelijk van het type project en het besturingssysteem waarop ik het schrijfquote:Op vrijdag 28 juli 2006 02:22 schreef Libris het volgende:
Even een vraagje tussendoor:
Wat voor editor of ontwikkelomgeving (IDE) gebruiken jullie voor PHP?
Zend Studio, of Eclipse. Alleen Eclipse heeft nog niet zulke goeie plugins.quote:Op vrijdag 28 juli 2006 02:22 schreef Libris het volgende:
Even een vraagje tussendoor:
Wat voor editor of ontwikkelomgeving (IDE) gebruiken jullie voor PHP?
Welke plugin gebruik je?quote:Op vrijdag 28 juli 2006 08:19 schreef Scorpie het volgende:
[..]
Zend Studio, of Eclipse. Alleen Eclipse heeft nog niet zulke goeie plugins.
PHPEclipse, maar op de 1 of andere manier ligt het mij nog niet zo. Was wel een half jaar geleden, zal binnenkort het wel weer een keer oppakken denkquote:Op vrijdag 28 juli 2006 09:09 schreef Libris het volgende:
[..]
Welke plugin gebruik je?
-edit- Issue is dat ik een cursus voor 700 studenten aan het voorbereiden ben en we een kleine discussie over de ontwikkelomgeving hebben.
Ik gebruik jedit, een java-based editor die voor alle gewone talen (java, php, c++, javascript, html, css, etc.) gebruikt kan worden. Hij is wel vrij zwaar, maar heeft ( voor mij althans ) genoeg optiesquote:Op vrijdag 28 juli 2006 09:09 schreef Libris het volgende:
[..]
Welke plugin gebruik je?
-edit- Issue is dat ik een cursus voor 700 studenten aan het voorbereiden ben en we een kleine discussie over de ontwikkelomgeving hebben.
dreamweaver en notepadquote:Op vrijdag 28 juli 2006 02:22 schreef Libris het volgende:
Even een vraagje tussendoor:
Wat voor editor of ontwikkelomgeving (IDE) gebruiken jullie voor PHP?
Dat gaat je niet op een mooie manier lukken. Ik zal je twee suggesties geven:quote:Op zaterdag 29 juli 2006 11:17 schreef splendor het volgende:
Even een klein vraagje.
Ik heb een tabel met een aantal "status-en" erin. 1 betekent offline, 2online, 3inactive, enz..
Nu lees ik dat uit met mysql en doe een ORDER BY wat verder allemaal klopt, maar ik zou graag dat ie offline en online omdraaide maar de rest wel op volgorde doet. Is dat in mysql netjes op te lossen in de ORDER BY? Of moet dat echt in php gebeuren, en hoe dan?
(Ik wil dus niet die offline gewoon 1 maken en online 0 in de database want dan moet ik overal teveel aanpassen en dit werkt net iets mooier)
Toch nog ff laten zien hoe het wel kan:quote:Op zaterdag 29 juli 2006 11:22 schreef JeRa het volgende:
[..]
Dat gaat je niet op een mooie manier lukken.
1 2 3 | FROM mytable ORDER BY CASE status WHEN 0 THEN 1 WHEN 1 THEN 0 ELSE status END |
Dat moet volgens mij prima lukken, zolang je de verandering in één keer doet en niet in tussentijdse stapjes bepaalde waardes uit de ENUM gaat weglatenquote:Op zaterdag 29 juli 2006 12:09 schreef SuperRembo het volgende:
Kan je die enum later nog makkelijk aanpassen zodat de volgorde anders wordt?
Ja, zo heb ik het wel gedaan. Ze komen dan ook gewoon in de $_POST-array terecht, dus het afhandelen is heel makkelijk.quote:Op zondag 30 juli 2006 22:24 schreef mschol het volgende:
hoe werkt het idee van een preview button eigenlijk???
2x een submit button met verschillende namen ofzo?
Zo heb ik het inderdaad ook gedaan.quote:Op zondag 30 juli 2006 22:30 schreef Tijn het volgende:
[..]
Ja, zo heb ik het wel gedaan. Ze komen dan ook gewoon in de $_POST-array terecht, dus het afhandelen is heel makkelijk.
je kan ook het .sql file openen, ctrl+a, ctr+c, dan naar phpmyadmin en daar de sql-qeury uitvoerenquote:Op maandag 31 juli 2006 11:10 schreef Oldbie het volgende:
Als ik een .sql file wil importeren zie ik in phpmyadmin dat de maximale grootte 2048kb is.
Ik heb zojuist een backup van mijn database gemaakt en die is 2514kb. Hoe krijg ik die dan weer draaiend als er wat fout gaat?
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.quote:Op maandag 31 juli 2006 13:01 schreef fokME2 het volgende:
Sessiemanagement via een database (MySQL). Hier wil ik me graag in verdiepen, heeft iemand wat goede resources (buiten google) voor me?
Of wat uitleg?![]()
Pfoeh, even denkenquote: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?
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.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?
1 2 3 4 5 6 7 8 | SQL-query : ALTER TABLE `freeroll` CHANGE `update_date` `update_date` TIMESTAMP DEFAULT 'now()' MySQL retourneerde: #1067 - Invalid default value for 'update_date' |
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 uitzoekenik 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
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 echtquote:Op dinsdag 1 augustus 2006 18:45 schreef Scorpie het volgende:
je moet niet now() als in php gebruiken, gebruik de SQL now
Op z'n minst door er quotes omheen te zetten en het bericht goed te escapen: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?
Nogmaals, quotes om je strings.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
heb je wel een linkje dan?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.
1 2 3 4 5 6 | if (isset($_POST['search']) { //formulierveld 'search' heeft een waarde > voer db connectie uit //code db connectie enzo } //formulier ?> |
1 2 3 4 5 6 7 8 9 | $quoteFile = "quote.txt"; $content = file($quoteFile); $quotes = explode("\n",$content); //$index = (rand(1, sizeof($quotes)) - 1); print_(r)($quotes); //echo $quotes[$index]; ?> |
HINT!!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.
ik heb het inmiddels opgelost door $search alvast n beginwaarde te geven op deze manier;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'] != "")
1 |
1 2 3 4 5 6 | { return isset($_GET[$key]) ? $_GET[$key] : false; } $search = getGet('search'); |
bah!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![]()
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.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?
1 2 3 4 | <input type="text" name="veld" /> <input type="submit" name="submit" value="Verzenden" /> </form> |
1 2 3 4 5 6 | if(isset($_POST["submit"]) && $_POST["submit"] == "Verzenden") // verzonden else //niet verzonden ?> |
Gewoon in MySQL van die eerste server de config aanpassen en server2 dmv van ip ook toegang geven tot de db...quote:Op dinsdag 8 augustus 2006 12:06 schreef HuHu het volgende:
Ik heb een vraagje.
Ik heb een server+database en nog een server. Die laatste server kan niet bij de database van de eerste server komen, terwijl ik dat wel zou willen. Hoe kan ik er voor zorgen dat die server toch gegevens met de database kan uitwisselen?
Ik kan natuurlijk op beide servers een scriptje neerzetten die gegevens heen en weer sturen naar elkaar, om zo de query's uit te voeren en de data terug te zenden. Maar dat lijkt mij niet de meest betrouwbare oplossing.
Nu zag ik op PHP.net iets over OpenSSL. Is dat iets om te gebruiken? Of is het makkelijker om een scriptje te maken dat de data op een bepaalde manier 'versleuteld' en het script op de andere server deze weer leesbaar maakt, de query uitvoert, de data 'versleuteld' en deze terug zend?
Ik kan de config files van die database niet aanpassen, want die staat gehost bij XS4all. En ik kan maar maximaal 3 IP adressen toegang geven tot de server via het Service Center en dat is te weinig.quote:Op dinsdag 8 augustus 2006 16:55 schreef wobbel het volgende:
[..]
Gewoon in MySQL van die eerste server de config aanpassen en server2 dmv van ip ook toegang geven tot de db...
geen rare scriptjes gaan maken die over SSL verbindingen lopen etc...
Dan doe je gewoon een mailtje de deur uit naar XS4ALL...zover ik XS4ALL ken doen ze daar totaal niet moeilijk overquote:Op dinsdag 8 augustus 2006 18:30 schreef HuHu het volgende:
[..]
Ik kan de config files van die database niet aanpassen, want die staat gehost bij XS4all. En ik kan maar maximaal 3 IP adressen toegang geven tot de server via het Service Center en dat is te weinig.
1 2 | preg_match_all($pattern, $html, $matches); |
je .+ geeft aan dat er NA de eerste dubbelquote nog minstens 1 andere karakter matched, vandaar dat ungreedy niet helptquote:Op dinsdag 8 augustus 2006 21:16 schreef wipes66 het volgende:
[ code verwijderd ]
Weet iemand hoe ik er voor kan zorgen dat hij bij de eerste " stopt? Nu matched hij bv ook:
action="" onsubmit="
maar hij moet alleen dit matchen:
action=""
![]()
1 |
(.+) en (.*) doen toch precies het zelfde? Alleen .* matched ook wanneer er niks staat.quote:Op dinsdag 8 augustus 2006 21:19 schreef ralfie het volgende:
[..]
je .+ geeft aan dat er NA de eerste dubbelquote nog minstens 1 andere karakter matched, vandaar dat ungreedy niet helpt
probeer:
[ code verwijderd ]
ff uit het hoofd, kan fout zijn)![]()
Wat moet dan wel matchen? En wat niet? Kun je wat voorbeelden geven?quote:Op dinsdag 8 augustus 2006 21:29 schreef wipes66 het volgende:
[..]
(.+) en (.*) doen toch precies het zelfde? Alleen .* matched ook wanneer er niks staat.
edit: ik heb het net eff getest en het lijkt wel te werken.
dit matched hij nu niet:
action="" onsubmit="
maar
action=""
matched hij nu wel, dat dus niet moet, omdat er niks tussen "" staat.
alle waardes van href, action, onclick, enz tenzij hij leeg isquote:Op dinsdag 8 augustus 2006 22:03 schreef Light het volgende:
[..]
Wat moet dan wel matchen? En wat niet? Kun je wat voorbeelden geven?
Zo moeilijk isquote:Op dinsdag 8 augustus 2006 23:21 schreef wipes66 het volgende:
[..]
alle waardes van href, action, onclick, enz tenzij hij leeg is
dus:
<a href="bla"> wel
<a href=""> niet
maar laat maar zitten, ik heb nu gewoon opgelost met een if statement.![]()
1 |
Dat weet ik niet. Als oplossing zou ik suggereren om & niet in de namen van style sheets op ten nemenquote:Maar ik heb nog een vraag, misschien dat iemand het weet die ervaring heeft met xhtml:
<?xml-stylesheet href="&&&&" type="text/css"?>
Als er een & teken voorkomt in href wordt de stijlesheet niet geladen in opera, wannneer ik deze veranderen naar &'a'm'p; doet hij het weer niet in firefox. Weet iemand hoe dit komt![]()
Iemand?quote:Op dinsdag 8 augustus 2006 06:14 schreef Libris het volgende:
Wederom een vraagje: Gebruiken mensen hier ook MVC frameworks voor ontwikkeling? Zo ja, welke?
1 |
wel dus...:zquote:Here's a short explanation of the configuration directives.
short_open_tag boolean
Tells whether the short form (<? ?>) of PHP's open tag should be allowed. If you want to use PHP in combination with XML, you can disable this option in order to use <?xml ?> inline. Otherwise, you can print it with PHP, for example: <?php echo '<?xml version="1.0"'; ?>. Also if disabled, you must use the long form of the PHP open tag (<?php ?>).
Note: This directive also affects the shorthand <?=, which is identical to <? echo. Use of this shortcut requires short_open_tag to be on.
oftewelquote:Op donderdag 10 augustus 2006 12:32 schreef mschol het volgende:
[..]
wel dus...:z
http://nl2.php.net/ini.core
en het werkt vlekkeloosquote:; Allow the <? tag. Otherwise, only <?php and <script> tags are recognized.
; NOTE: Using short tags should be avoided when developing applications or
; libraries that are meant for redistribution, or deployment on PHP
; servers which are not under your control, because short tags may not
; be supported on the target server. For portable, redistributable code,
; be sure not to use short tags.
short_open_tag = On
1 2 | short_open_tag "1" PHP_INI_PERDIR PHP_INI_ALL in PHP <= 4.0.0. |
Tip: array_rand()quote:Op zaterdag 12 augustus 2006 19:02 schreef wobbel het volgende:
De onderstaande code:
[ code verwijderd ]
geeft af en toe helemaal niks terug, dus gewoon wit beeld...hoe kan dat?![]()
beter nog...hoe los ik het op
Nou gewoon:quote:Op zaterdag 12 augustus 2006 21:29 schreef the_disheaver het volgende:
wat staat er dan in de bronode? Opera heeft er geen last van
1 2 | <form etc... |
1 2 3 4 | if ( @unset ( $_SESSION['RoG']['Code'] ) ) { ?> |
rechtstreeks van php.net:quote:Op maandag 14 augustus 2006 08:57 schreef Desdinova het volgende:
if empty($_SESSION['RoG']['Code']) moet je hebben denk ik
unset is een commando, alsin verwijder variabele
unset is geen functie, hij geeft geen successboolean terug ofzo. Daarom zal if (unset()) niet werken...quote:Op maandag 14 augustus 2006 10:26 schreef wobbel het volgende:
[..]
rechtstreeks van php.net:
Example 2. Unregistering a variable with $_SESSION and register_globals disabled.
<?php
session_start();
unset($_SESSION['count']);
?>
quote:unset() destroys the specified variables. Note that in PHP 3, unset() will always return TRUE (actually, the integer value 1). In PHP 4, however, unset() is no longer a true function: it is now a statement. As such no value is returned, and attempting to take the value of unset() results in a parse error.
http://mcrdev.guitarist.nl/menu/test/quote:RewriteEngine On
RewriteRule ^index/(.*)/$ /index.php?page=$1
RewriteRule ^menu/(.*)/$ /menu.php?page=$1
RewriteRule ^message/(.*)/$ /messages.php?page=$1
Maar hij doet het nietquote:if(isset($_GET['page']) && $_GET['page'] == "test")
{
echo "Blaaaaaaaaaar";
}
ook niet.quote:RewriteEngine On
RewriteBase /
RewriteRule ^index/(.*)/$ /index.php?page=$1
RewriteRule ^menu/(.*)$ /menu.php?page=$1
RewriteRule ^message/(.*)/$ /messages.php?page=$1
1 2 3 4 5 | RewriteBase / RewriteRule ^index/(.*)/$ index.php?page=$1 RewriteRule ^menu/(.*)/$ menu.php?page=$1 RewriteRule ^message/(.*)/$ messages.php?page=$1 |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |