abonnement Unibet Coolblue Bitvavo
pi_79294286
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
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
pi_79294344
Dan staat er in post.php waarschijnlijk ergens een fout. In je log file (php_error.log) kun je zien op welke regel het misgaat. Succes.
pi_79294561
quote:
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
output-buffers MrNiles=php-n00b
die post.php staat helemaal vol met code om een emailberichtje aan te laten komen met de gegevens uit het formulier..dit dus :
owja...hoe krijg je die mooie vensters met programmeertaal zoals je die hier in het forum ziet:

<?php
$organisatie= htmlspecialchars($_POST['organisatie']);
$naam = htmlspecialchars($_POST['naam']);
$telnr= htmlspecialchars($_POST['telnr']);
$email = htmlspecialchars($_POST['email']);
$naam = htmlspecialchars($_POST['naam']);
$regel1= htmlspecialchars($_POST['regel1']);
$regel2= htmlspecialchars($_POST['regel2']);
$bericht = htmlspecialchars($_POST['bericht']);
$dat= htmlspecialchars($_POST["dat"]);


if (!$organisatie) {
echo "u heeft geen organisatie ingevuld!";
exit; }

if (!$naam) {
echo "u heeft geen naam ingevuld!";
exit; }

if (!$telnr) {
echo "u heeft geen telefoonnummer ingevuld!";
exit; }

if (!$email) {
echo "u heeft geen e-mailadres ingevuld!";
exit; }

if (!$regel1) {
echo "u heeft regel1 ingevuld!";
exit; }

else {

$tijd = time();
$datum = strftime("%d/%m/%y %H:%M", $tijd);
$ip = getenv("REMOTE_ADDR");
$message = "" . $naam . " met het e-mailadres " . $email . " en het IP $ip stuurde op $datum het volgende bericht:
____________________________________
"."Organisatie: "."\t".$organisatie."\n"."Naam: "."\t\t".$naam."\n"."Telefoonr: "."\t".$telnr."\n"."Mail: "."\t"."\t".$email."\n"."Regel1: "."\t".$regel1."\n"."Regel2: "."\t".$regel2."\n"."Datum: "."\t".$dat."\n"."Bericht: "."\t".$bericht."
------------------------------------";

$mailadres = "nielsrijkers@gmail.com";
$message = str_replace ("<br>","\n", $message);
mail("$mailadres", "Bericht van publicatiebord",
$message, "From: " . $email . "");

header("Location: http://www.anderdomein.com"); exit();

}
?>
pi_79294741
Probeer eens ob_start(); helemaal aan het begin van je PHP-bestand te zetten (net na <?php dus) en ob_end_flush(); net voor ?>.
Daarmee creëer je een output buffer. Dat wil zeggen dat PHP eerst alle inhoud van de PHP opspaart voordat het aan de browser verstuurd wordt. Normaal als je echo doet wordt het direct naar de browser verstuurd. Met een output buffer verstuur je alles op een later tijdstip in 1 keer. Aangezien je niets naar de browser mag verzenden voor een header(); aanroep. Normaal zie je daar een foutmelding van, maargoed, het is het proberen waard
pi_79294865
er gebeurt niets...wit scherm
that's it
pi_79295097
In je log file kun je waarschijnlijk zien wat er fout gaat en op welke regel.
pi_79295127
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.
waar kan ik die vinden????
pi_79295373
Ben je lokaal aan het ontwikkelen of op een server?
pi_79295510
quote:
Op donderdag 18 maart 2010 14:35 schreef captaintokyo het volgende:
Ben je lokaal aan het ontwikkelen of op een server?
op server
ik kan de log niet vinden in de map waar ik bezig ben
pi_79295712
als ik een lege php heb met alleen

<?php header("Location: http://www.fok.nl");exit; ?>

dan werkt het wel.....
pi_79295961
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.

[ Bericht 18% gewijzigd door captaintokyo op 18-03-2010 14:57:19 ]
  donderdag 18 maart 2010 @ 14:53:04 #222
118585 Crutch
Filantroop || Taalzwengel
pi_79296018
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.....
zet header("Location: http://www.anderdomein.com"); exit(); eens buiten de laatste }
Je moeder is een hamster
pi_79296181
quote:
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.
Hier zou je inderdaad een stuk wijzer van moeten worden
pi_79297036
quote:
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.
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 53

regel53:
header("Location: http://www.anderdomein.com"); exit();
pi_79297122
Dat is dus waar Intrepidity het over had. Als er een spatie/newline/tab o.i.d. voor <?php staat moet je die verwijderen. Dan werkt het als het goed is wel. <?php moet helemaal aan het begin van je bestand staan, anders kun je geen redirect doen.
pi_79297206
ervoor??
daarvoor staat niets....dat is het begin van de file
  donderdag 18 maart 2010 @ 15:23:31 #227
12221 Tijn
Powered by MS Paint
pi_79297243
quote:
Op donderdag 18 maart 2010 15:22 schreef MrNiles het volgende:
ervoor??
daarvoor staat niets....dat is het begin van de file
Weet je zeker dat je geen enters of spaties voor de opening van je PHP-tag hebt?
pi_79297348
quote:
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?
yep...ik heb backspace gedaan...nothing happened
pi_79297438
als ik eest een lege regel heb dan krijg ik dit in de foutcode

pi_79297599
kan het iets te maken hebben met de if / else commandos? als ik de else functie (het versturen van de mail) uitschakel door // dan werkt de redirect wel

else {

//$tijd = time();
//$datum = strftime("%d/%m/%y %H:%M", $tijd);
//$ip = getenv("REMOTE_ADDR");
//$message = "" . $naam . " met het e-mailadres " . $email . " en het IP $ip stuurde op $datum het volgende bericht:
//____________________________________
//"."Organisatie: "."\t".$organisatie."\n"."Naam: "."\t\t".$naam."\n"."Telefoonr: "."\t".$telnr."\n"."Mail: "."\t"."\t".$email."\n"."Regel1: "."\t".$regel1."\n"."Regel2: "."\t".$regel2."\n"."Datum: "."\t".$dat."\n"."Bericht: "."\t".$bericht."
//------------------------------------";

//$mailadres = "nielsrijkers@gmail.com";
//$message = str_replace ("<br>","\n", $message);
//mail("$mailadres", "Bericht van publicatiebord",
//$message, "From: " . $email . "");

header("Location: http://www.anderdomein.com"); exit();

}
?>
pi_79297610
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?
pi_79297779
soort van notepad-achtig iets
gewoon de code
pi_79297827
quote:
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?
helaas geen succes
pi_79298107
Ik heb een regex probleem, voornamelijk omdat ik er super slecht in ben Ik 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 uit Ik 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?
pi_79298222
Zoiets
1#^(/[a-z0-9]+)+/?$#Ui
pi_79298494
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

[ Bericht 23% gewijzigd door Intrepidity op 18-03-2010 16:04:16 ]
  donderdag 18 maart 2010 @ 20:09:23 #237
159156 Dokay
Ago ergo sum
pi_79308956
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
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>


check.php:
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
<?php
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();
?>


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
  donderdag 18 maart 2010 @ 21:33:06 #238
75592 GlowMouse
l'état, c'est moi
pi_79313259
quote:
Op donderdag 18 maart 2010 15:43 schreef Intrepidity het volgende:
Ik heb een regex probleem, voornamelijk omdat ik er super slecht in ben Ik 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 uit Ik 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?
Die + maakt het stuk. Probeer het eens met de quantifier {0,1}, en zorg dat die / daar ook onder valt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 18 maart 2010 @ 21:33:48 #239
75592 GlowMouse
l'état, c'est moi
pi_79313297
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
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).
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_79315866
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
Ik heb nog eens wat geprobeerd:

1#(/([a-z0-9]+)+)#i


Wel gebruiken met preg_match_all(), anders werkt het niet goed.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')