abonnement Unibet Coolblue
pi_79289095
quote:
Op donderdag 18 maart 2010 11:47 schreef MrNiles het volgende:

[..]

het is een stukje code die ik van internet heb ge kopiet
ik ga het proberen...
is er ook een andere mogelijkheid om zo'n pulldown te maken?
Het is al gelukt...thanx...zal de volgende keer beter opletten op het sluiten :-)
pi_79292881
Volgende vraagje voor mijn formulier :-)
zoals eerder gezegd, ik heb het van internet geript...en ik ben het aan het leren, dus schiet me niet meteen af :-)
als ik het form verstuur dan krijg ik een volgende pagina met een echo, iets van bedankt voor bericht
Dit heb ik nu in een alertbox gestopt die je opkomt zodra op sendknop wordt gedrukt.
Het scripje wat achter de send knop zit toch nog een nieuwe pagina openen als echo oid
hoe kan ik dit nu maken dat er naar een bepaalde pagina wordt gegaan (bv fok.nl)
pi_79293287
Met header()

Verder: www.php.net
pi_79293358
Ik neem aan dat je het over javascript hebt nu (in een PHP/MySQL topic). Doorlinken naar een andere pagina in javascript kan met de volgende code:

location.href = 'http://www.fok.nl';

Of je kan de action van het form instellen en dan het form submitten, maar bovenstaande is denk ik makkelijk voor een beginner als jij. Misschien is het handig als je post wat je al hebt, dan begrijpen wij de bedoeling waarschijnlijk beter.
pi_79293459
quote:
Op donderdag 18 maart 2010 13:40 schreef Xcalibur het volgende:
Met header()

Verder: www.php.net
In PHP idd met header, maar hij heeft het over een alertbox... klinkt als javascript
pi_79293627
quote:
Op donderdag 18 maart 2010 13:30 schreef MrNiles het volgende:
Volgende vraagje voor mijn formulier :-)
zoals eerder gezegd, ik heb het van internet geript...en ik ben het aan het leren, dus schiet me niet meteen af :-)
als ik het form verstuur dan krijg ik een volgende pagina met een echo, iets van bedankt voor bericht
Dit heb ik nu in een alertbox gestopt die je opkomt zodra op sendknop wordt gedrukt.
Het scripje wat achter de send knop zit toch nog een nieuwe pagina openen als echo oid
hoe kan ik dit nu maken dat er naar een bepaalde pagina wordt gegaan (bv fok.nl)
Je bedoelt dat je de Alerts uit een andere pagina wil inladen? In die Alert box?
en als er geen alertbox is doorsturen? Want je kan niet EN een alert box EN een nieuwe pagina laden
Redacted
pi_79293914
misschien ben ik niet helemaal duidelijk
ik heb een formulier gemaakt
als je op verzend drukt dan komt er een alertbox waarin staat dat het verzonden is.

<input type="submit" name="Submit" value="Verzenden" onclick="show_alert()" value="Show alert box" /></p>

in dit formulier staat een verwijzing naar een php file (post.php)
deel vd code

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

//echo "Uw bericht is met succes verzonden. We helpen u zo snel mogelijk.";

}
?>

nu wil ik graag ipv die echo een redirect naar een pagina
ik heb dit geprobeert met

header("location: www.fok.nl");

maar dat werkt niet
pi_79293978
Ik heb dat boek van Ward van der Put, is dat wat?
pi_79293980
Location is ten eerste met een hoofdletter, en ik gok dat je ook http:// voor de URL moet zetten Voor de rest klopt 'ie. Het is echter wel zo netjes er ook: header("HTTP/1.0 302 Temporary Redirect"); voor te zetten.
pi_79294193
quote:
Op donderdag 18 maart 2010 13:57 schreef Intrepidity het volgende:
Location is ten eerste met een hoofdletter, en ik gok dat je ook http:// voor de URL moet zetten Voor de rest klopt 'ie. Het is echter wel zo netjes er ook: header("HTTP/1.0 302 Temporary Redirect"); voor te zetten.
tja...het zou dus moeten werken maar helaas krijg ik alleen een witte pagina tezien...
andere ideetjes
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.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')