Functie ga ergens anders verder

Status
Niet open voor verdere reacties.

jtheiner

Gebruiker
Lid geworden
4 mrt 2010
Berichten
104
Hoi,

Ik ben bezig met een e-mail script. Nu is het zo, wanneer je je voornaam ergens niet invuld moet hij dat zeggen. Maar nu staat er exit en laat hij alles wat er onder komt niet meer zien. Nu wil ik dat hij ergens anders dus verder gaat met het script.

Ik heb al geprobeerd:
PHP:
<?php vanafhierverder(); ?>
<?php function vanafhierverder(){ ?>

de rest

<?php }; ?>

Werkt heel mooi. Maar nu kan ik die laatste tag niet plaatsen. Ik doe met soort van frame's werken. Ik laad de andere pagina's nog in...

Is er niet iets van alleen de bovenste tag, zonder dat ik het tussen haakjes moet zetten?

Alvast bedankt!
 
Laatst bewerkt:
Ik snap niet helemaal wat je bedoelt met je code-voorbeeld, maar normaal gesproken doe je dat zo:
PHP:
if (trim($_POST['voornaam']) == '')
{
  // geef hier melding van lege voornaam
}
else
{
  // doe hier wat er moet gebeuren als de voornaam wel is ingevuld
}
// vanaf dit punt gaat het script verder of de voornaam is ingevuld of niet
// hier dus de rest van de code
Ik ben er in dit voorbeeld van uitgegaan dat de voornaam via een POST-formulier komt en dit $_POST['voornaam'] heet. Je zal dit zelf even moeten veranderen in de juiste variabele.
 
Hoi!

Bedankt voor het goed mee denke, ik zal mijn script even hier neer zetten.

PHP:
<?php
$ip = $_POST['ip']; 
$httpref = $_POST['httpref']; 
$httpagent = $_POST['httpagent']; 
$voornaam = $_POST['voornaam']; 
$achternaam = $_POST['achternaam'];
$adres = $_POST['adres'];
$woonplaats = $_POST['woonplaats'];
$geboortedatum = $_POST['geboortedatum'];
$email = $_POST['email'];
$telefoon = $_POST['telefoon'];
$cursus = $_POST['cursus'];
$opmerking = $_POST['opmerking'];

if(!$email == "" && (!strstr($email,"@") || !strstr($email,"."))) {
echo "U heeft een niet geldig e-mail aders ingevuld. <br /> A.u.b. probeer opnieuw.\n";
exit; 
}

if(empty($voornaam)) {
echo "U heeft uw voornaam niet ingevuld. <br /> A.u.b. probeer opnieuw. ";
exit;
}
if(empty($achternaam)) {
echo "U heeft uw achternaam niet ingevuld. <br /> A.u.b. probeer opnieuw. ";
exit;
}
if(empty($geboortedatum)) {
echo "U heeft uw geboortedatum niet ingevuld. <br /> A.u.b. probeer opnieuw. ";
exit;
}
if(empty($email)) {
echo "U heeft heeft uw e-mail niet ingevuld. <br /> A.u.b. probeer opnieuw. ";
exit;
}
if(empty($cursus)) {
echo "U heeft uw cursus niet aangeklikt. <br /> A.u.b. probeer opnieuw. ";
exit;
}

$attn = $attn;
$subject = "Aanmelding Curus EHBO Heeswijk Dinther.nl";
$subject2 = "Aanmelding Curus EHBO Heeswijk Dinther.nl - Kopie"; 
$message = "$voornaam $achternaam wil zicht aanmelden voor de cursus: $cursus. \n \n

Gegevens: \n
Voornaam: $voornaam \n
Achternaam: $achternaam \n
Adres en huisnummer: $adres \n
Woonplaats: $woonplaats \n
Geboortedatum: $geboortedatum \n
E-mail adres: $e-mail \n
Telefoon: $telefoon \n
Curus: $curus \n
Opmerking: $opmerking \n";


mail("joris@theiner.nl", $subject, $message, "From: $email"); 
mail("$email", $subject2, $message, "From: info@ehboheeswijkdinther.nl"); 

?>

Bedankt voor het aanvragen van een cursus! <br />
U krijg een kopie van uw aanvraag per e-mail ter controle toegestuurd.

Nu gaat het dus om het stukje
PHP:
if(!$email == "" && (!strstr($email,"@") || !strstr($email,"."))) {
echo "U heeft een niet geldig e-mail aders ingevuld. <br /> A.u.b. probeer opnieuw.\n";
exit; 
}

Daar wil ik doorverwijzen naar onder. dat hij de rest van de pagina nog wel laad. Maar niet het stuk er tussen in, want dan komt er ook te staan, U heeft uw voornaam niet ingevuld. enz.

Is er dan dus een verwijzing door naar onder het einde van je script? of nog verder eventueel?

Bedankt!
 
Laatst bewerkt:
Je zult ipv echo een exit, een variable moeten uitbreiden die je op het laatst uitprint. Dit doe je met een punt voor de = dus zo:

PHP:
<?php
if(empty($voornaam)) {
$foutmelding = "U heeft uw achternaam niet ingevuld. <br /> A.u.b. probeer opnieuw. "
}
if(empty($achternaam)) {
$foutmelding .= "U heeft uw achternaam niet ingevuld. <br /> A.u.b. probeer opnieuw. ";
}
echo $foutmelding;
?>

Voor de rest zou ik even een <br> achter de zinnen plakken anders komen ze naast elkaar.
Succes
 
Kijk! bijna helemaal topy!

Als er nu iets verkeerd is dan verstuurt hij toch de mail. Hoe kan ik dat dan nog omzeilen? Door fucntie else?
 
controleer if de foutmelding string bestaat.
zoiets:
PHP:
<?php
if(empty($voornaam)) {
$foutmelding = "U heeft uw achternaam niet ingevuld. <br /> A.u.b. probeer opnieuw. "
}
if(empty($achternaam)) {
$foutmelding .= "U heeft uw achternaam niet ingevuld. <br /> A.u.b. probeer opnieuw. ";
}
if(isset($foutmelding)) {
echo $foutmelding;
}else{
  ///hier de mail functie
}
?>
 
Yes supper!

Hij werkt! (niet... (hij zend niet)) Dus dan is het goed!

Nu nog 1 ander vraagje.
Als ik de pagina laat zien dat de voornaam niet goed is, en dan terug wil is alles weg. Hoe laat ik dat in het geheugen staan?

Bedankt!!!
 
je kan onderaan zetten
if not empty $foutmelding --> exit;
en dat dan voordat je het mailtje stuurt
 
ik neem aan dat je via een form na submit op deze pagina komt om de gegevens te verwerken.
In plaats van dat je de een error echo doet, dan doe je een header redirect, en in de url neem je de error als variabele mee en de gegevens die je retour wilt hebben op je form pagina. op de form pagina controleer je of er gegevens in de url staan en als dat het geval is laat je die op het scherm echoen.
 
@Jorryt

Als je op empty controleert, dan moet de string bestaan.
In dit geval kan de string ook niet bestaan (als de mail verzonden mag worden)

op dat moment zal php met een error komt dat empty een string moet contoleren die niet eens bestaat.

Okey, als je boven aan de pagina begint met $blahblah = ''; dan werkt het wel,
omdat de string dan wel bestaat.
 
of je veranderd de empty in isset
toch goed opgemerkt, dankje!
 
De gegevens terugsturen. En ophalen en vervolgens onder value neerzetten. Maar dat is nogal een gepruts...
 
of je veranderd de empty in isset
toch goed opgemerkt, dankje!

Je gebruikt isset() niet in plaats van empty(). Sterker nog, empty() gebruik je hiervoor sowieso niet.

PHP:
if(isset($var) &&  trim($var) != ''){

 // Bestaat en is niet leeg.

}
 
Bedankt allemaal! Hier kan ik goed mee vooruit!

Hier mag een slotje op van mij!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan