Staat er in die post.php nog andere inhoud? Je mag geen inhoud naar de browser versturen voordat je headers verstuurt. Voor het eerste teken HTML naar de gebruiker verstuurd wordt zijn de headers al verzonden.quote:Op donderdag 18 maart 2010 14:03 schreef MrNiles het volgende:
[..]
tja...het zou dus moeten werken maar helaas krijg ik alleen een witte pagina tezien...
andere ideetjes
output-buffersquote:Op donderdag 18 maart 2010 14:06 schreef Intrepidity het volgende:
[..]
Staat er in die post.php nog andere inhoud? Je mag geen inhoud naar de browser versturen voordat je headers verstuurt. Voor het eerste teken HTML naar de gebruiker verstuurd wordt zijn de headers al verzonden.
Om zeker van je zaak te zijn op dat gebied kun je output-buffers gaan gebruiken
waar kan ik die vinden????quote:Op donderdag 18 maart 2010 14:27 schreef captaintokyo het volgende:
In je log file kun je waarschijnlijk zien wat er fout gaat en op welke regel.
op serverquote:Op donderdag 18 maart 2010 14:35 schreef captaintokyo het volgende:
Ben je lokaal aan het ontwikkelen of op een server?
zet header("Location: http://www.anderdomein.com"); exit(); eens buiten de laatste }quote:Op donderdag 18 maart 2010 14:44 schreef MrNiles het volgende:
als ik een lege php heb met alleen
<?php header("Location: http://www.fok.nl");exit; ?>
dan werkt het wel.....
Hier zou je inderdaad een stuk wijzer van moeten wordenquote:Op donderdag 18 maart 2010 14:51 schreef captaintokyo het volgende:
Hm, als het op de server is heb je misschien geen toegang tot het error log. Wat je dan nog kan proberen is de volgende regel toevoegen, na <?php
error_reporting(E_ALL);
Dit zou er voor moeten zorgen dat je ipv van een wit scherm een foutmelding met een regelnummer krijgt.
Warning: Cannot modify header information - headers already sent by (output started at /home/vhosts/subumbra.nl/httpdocs/post.php:1) in /home/vhosts/subumbra.nl/httpdocs/post.php on line 53quote:Op donderdag 18 maart 2010 14:51 schreef captaintokyo het volgende:
Hm, als het op de server is heb je misschien geen toegang tot het error log. Wat je dan nog kan proberen is de volgende regel toevoegen, na <?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
Dit zou er voor moeten zorgen dat je ipv van een wit scherm een foutmelding met een regelnummer krijgt.
Edit: let op via ini_set kun je ervoor zorgen dat errors op het scherm worden weergegeven.
Weet je zeker dat je geen enters of spaties voor de opening van je PHP-tag hebt?quote:Op donderdag 18 maart 2010 15:22 schreef MrNiles het volgende:
ervoor??
daarvoor staat niets....dat is het begin van de file
yep...ik heb backspace gedaan...nothing happenedquote:Op donderdag 18 maart 2010 15:23 schreef Tijn het volgende:
[..]
Weet je zeker dat je geen enters of spaties voor de opening van je PHP-tag hebt?
helaas geen succesquote:Op donderdag 18 maart 2010 15:32 schreef captaintokyo het volgende:
Ik denk dat het iets te maken heeft met je file encoding en/of line endings. Met welk programma edit je het php bestand?
Vreemd, dat is niet het deel waar de foutmelding over gaat... Misschien stond er een onzichtbaar teken aan het begin van je bestand. Probeer het nu nog eens met het mail-deel actief?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | session_start(); if (isset($_SESSION['ja'])) { // doe niks } else { // schop terug header("location:login.php"); } ?> <html> <body> Login Successful <?php echo "user ID = ". $_SESSION['ja']; //retrieve data ?> </body> </html> |
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 | ob_start(); $host="localhost"; // Host name $username=""; // Mysql username $password=""; // Mysql password $db_name="app"; // Database name $tbl_name="members"; // Table name // Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // Define $myusername and $mypassword $myusername=$_POST['myusername']; $mypassword=$_POST['mypassword']; // To protect MySQL injection (more detail about MySQL injection) $myusername = stripslashes($myusername); $mypassword = stripslashes($mypassword); $myusername = mysql_real_escape_string($myusername); $mypassword = mysql_real_escape_string($mypassword); $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"; $result=mysql_query($sql); // Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count==1){ // Register $myusername, $mypassword and redirect to file "index.php" session_start(); $_SESSION['ja'] = $id; // <-- hier moet dus de id van de user inkomen.. maar hoe deze erin te krijgen? header("location:index.php"); } else { echo "login failed"; } ob_end_flush(); ?> |
Die + maakt het stuk. Probeer het eens met de quantifier {0,1}, en zorg dat die / daar ook onder valt.quote:Op donderdag 18 maart 2010 15:43 schreef Intrepidity het volgende:
Ik heb een regex probleem, voornamelijk omdat ik er super slecht in benIk ben wat aan het klussen aan de routing-klasse van mijn framework, die de URL van de aanvraag ontleedt in een aantal delen: controller, actie en parameters. Ieder van deze delen is optioneel, dus:
/ --> default controller, default actie
/test --> 'test' controller, default actie
/test/blaat --> 'test' controller, 'blaat' actie
/test/blaat/1/2/3 --> 'test' controller, 'blaat' actie met parameters 1, 2, 3.
Voor ieder deel geldt dat de geldige karakters [a-zA-Z0-9] zijn.
Ik heb nu een gigantisch lelijke oplossing:
^/([a-zA-Z0-9]+)/([a-zA-Z0-9]+?)/(.+?)$
Daarbij is het dus nodig de string te manipuleren zodat er al minstens 3 slashes in staan, anders matched de regex al niet.
Maar zelfs dat werkt niet, want als ik geen actie opgeef wordt het patroon niet gematched. verander ik +? van de 2e subexpressie in ?+ dan werkt het wel, maar dan werkt het weer niet als er wél een actie is opgegeven.
Kortom, ik snap geen reet van regular expressions, moet hier nodig eens over gaan inlezen, maar momenteel kom ik er niet uitIk wil dus ieder afzonderlijk deel los uit de expressie trekken, behalve de parameters, die mogen in de vorm van 'param1/param2/param3' blijven in 1 string.
Help, anyone?
Je haalt al een rij op uit de database, kijk eens hoe je daar de data uithaalt (kan bv. met mysql_fetch_row of mysql_result of mysql_fetch_array).quote:Op donderdag 18 maart 2010 20:09 schreef Dokay het volgende:
Heuj, ik heb een relatief simpele login met sessions werkend weten te krijgen. Nu zou ik alleen de id van de gebruiker in de session waarde willen persen, zodat ik op de "member" pagina de bijbehorende sql rijen van deze specifieke gebruiker aan kan roepen. Ik heb veel geklooid maar krijg steeds parse errors. Wat ik nu heb:
index.php
[ code verwijderd ]
check.php:
[ code verwijderd ]
Ik weet het beginnersvraag maar ik kwakkel nog erg met PHP, vandaar dat ik enorm uit de brand geholpen zou zijn als iemand me dit uit kan leggen. Bvd
Ik heb nog eens wat geprobeerd:quote:Op donderdag 18 maart 2010 15:52 schreef Intrepidity het volgende:
Daar krijg ik dit als resultaat uit: Array ( [0] => /test/blaat/1/2/3/ [1] => /3 )
De bedoeling is om Array ( [0] => 'test', [1] => 'blaat', [2] => '1/2/3/' ) te krijgen :) (of desnoods de parameters ook verder uitgesplitst, dat boeit niet.
En als je denkt: explode dan simpelweg op de slash; dat zou kunnen, maar de routing regels moeten dynamisch kunnen wezen, die gaan in een .xml file opgeslagen worden en iemand anders moet wat mij betreft kunnen zeggen dat de delen op basis van een apenstaart of whatever gesplitst worden, als voorbeeld :P
1 |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |