Waarschijnlijk hele simpele vraag?

Status
Niet open voor verdere reacties.

eatsoup

Gebruiker
Lid geworden
16 nov 2009
Berichten
29
Ik heb een script geschreven in php met allerlei if else statements, binnen dit statements worden variabelen ge-set, maar ik kan deze daarna niet oproepen.

Ik heb een simpel scriptje geschreven om mijn probleem duidelijk te maken:

PHP:
<?php
$test = 1;

if (test==1){
	$variabel = "test";
}
echo "variabel is:";
echo $variabel;
?>


Iemand een idee hoe ik dit kan oplossen?

Alvast bedankt,
Luuk
 
Zo werkt het wel.

<?php
$test = 1;

if ($test==1){
$variabel = "test";
}
echo "variabel is:";
echo $variabel;
?>
 
Als je alle errors en notices aanzet, zou je wel wat warnings te zien krijgen die aangeven dat er ergens niet goed zit :)

PHP:
error_reporting( E_ALL );
 
Dankjewel voor de reacties.

Echter ik kan die oplossing niet gebruiken omdat de variable wordt ge-set binnen de if statement.
Hoe kan ik er voor zorgen dat wat binnen if wordt aangegeven ook buiten if beschikbaar is.

Groeten,
Luuk
 
Wat is je probleem/ vraag nu precies dan?

Van wat ik kan zien moet het zo gewoon werken, alleen zal je variabel een fout geven, wanneer test dus niet 1 is (aangezien je geen else constructie hebt).
 
Oke ik ga het proberen nog duidelijker te schrijven.

Ik heb een script geschreven die binnen een if statement een variable insteld.

Deze moet ik buiten het if statement aan kunnen roepen, ware het niet dat buiten het if statement de variable leeg is.
Ik hoop dat ik het zo duidelijk maak.

Groetjes,
Luuk
 
Dan doe je waarschijnlijk iets fout, want hij zou het zo gewoon moeten doen. Je gebruikt de code zoals geplaatst door krolik?!
 
Nu zie ik het ja, ik zal mijn volledige script even plaatsen.

Let er maar niet op wat voor een zooi het is.

PHP:
<title>Voorbeeld mail.</title>
</head>

<body>
<?php
/*
---------------------------------------------------------------------
Geschreven door xxx (xxxx) voor xxxxx	|
Opmerkingen over contact formulier:									|
Bij fouten is de $status 2											|
Na goedgekeurd is de $status 1										|
Na verzenden van formulier is de $status NULL						|
--------------------------------------------------------------------|
*/

$error = 	"<br><br>klik hieronder om terug te gaan<br><br>
			<form>
			<input type=\"button\" value=\"Vorige pagina\" onclick=\"history.back()\" />
			</form>";

#-----------------------------------Alles uit postdata-----------------------------------------------------------------

$type = $_POST['type'];
$bedrijf = $_POST['bedrijf'];
$administratie = $_POST['Administratie'];
$bezoek_adres = $_POST['bezoek_adres'];
$bezoek_postcode = $_POST['bezoek_postcode'];
$bezoek_plaats	= $_POST['bezoek_plaats'];
$post_adres = $_POST['post_adres'];
$post_postcode = $_POST['post_postcode'];
$post_plaats = $_POST['post_plaats'];
$telefoon = $_POST['telefoon'];
$fax = $_POST['fax'];
$website = $_POST['website'];
$contactpersoon = $_POST['contactpersoon'];
$contact_tussenvoegsel = $_POST['contact_tussenvoegsel'];
$contact_voorletters = $_POST['contact_voorletters'];
$contact_roepnaam = $_POST['contact_roepnaam'];
$geslacht = $_POST['geslacht'];
$email = $_POST['e-mail'];
$functie = $_POST['functie'];
$telefoon_zakelijk = $_POST['telefoon_zakelijk'];
$telefoon_mobiel = $_POST['telefoon_mobiel'];
$contactpersoon_xxxx = $_POST['contactpersoon_xxxx'];
include("check.php");

#----------------------------------nieuwe_organisatie------------------------------------------------------------------

if ($type==nieuwe_organisatie){

	if ( empty($bedrijf) )
{		$status=2; echo "Naam organisatie is niet ingevuld, $error";
	
	}elseif( empty($administratie) )
{		$status=2; echo "Betreft niet ingevuld, $error";
	
	}elseif( empty($bezoek_adres) )
{		$status=2; echo "Bezoekadres is niet compleet, $error";
	
	}elseif( empty($bezoek_postcode) )
{		$status=2; echo "Bezoekadres is niet compleet, $error";

	}elseif( empty($bezoek_plaats) )
{		$status=2; echo "Bezoekadres is niet compleet, $error";

	}elseif( empty($post_adres) )
{		$status=2; echo "Postadres is niet compleet, $error";
	
	}elseif( empty($post_postcode) )
{		$status=2; echo "Postadres is niet compleet, $error";

	}elseif( empty($post_plaats) )
{		$status=2; echo "Postadres is niet compleet, $error";
	
	}elseif( empty($telefoon) )
{		$status=2; echo "Telefoon nummer is niet ingevuld, $error";
	
	}elseif( empty($contactpersoon_xxxx) )
{		$status=2; echo "Contactpersoon xxxx is niet ingevuld, $error";

	}else{
		$status = 1;
		$subject = "Aanmaken van nieuwe organisatie in Bouwworks";
		$message = "Verzoek voor het aanmaken van de volgende gegevens:<br><br>
Naam organisatie: <b>$bedrijf</b> <br>
Administratie: <b>$administratie</b> <br><br>
Bezoek adres:<b> $bezoek_adres</b><br>
<b>$bezoek_postcode $bezoek_plaats </b><br><br>
Post adres: <b>$post_adres</b> <br>
<b>$post_postcode $post_plaats </b><br><br>
Telefoonnummer: <b>$telefoon</b> Fax: <b>$fax</b> <br>
Contactpersoon xxxx: <b>$contactpersoon_xxxx </b>";
		echo $message;
	}

#-------------------------------</nieuwe organisatie>------------------------------------------------------------------

#-------------------------------<nieuw_contact>------------------------------------------------------------------------

	}elseif ($type==nieuw_contactpersoon){
	if ( empty($bedrijf) )
{	$status=2; echo "Naam organisatie is niet ingevuld, $error";

	}elseif( empty($contactpersoon) )
{	$status=2; echo "Naam contactpersoon is niet ingevuld, $error";

	}elseif( empty($contact_voorletters) )
{	$status=2; echo "Voorletters contactpersoon is niet ingevuld, $error";

	}elseif( empty($contact_roepnaam) )
{	$status=2; echo "Roepnaam contactpersoon is niet ingevuld, $error";

	}elseif( empty($geslacht) )
{	$status=2; echo "Geslacht is niet ingevuld, $error";

	}elseif( empty($bezoek_adres) )
{	$status=2; echo "Bezoek adres is niet compleet, $error";

	}elseif( empty($bezoek_plaats) )
{	$status=2; echo "Bezoek adres is niet compleet, $error";

	}elseif( $mail_check==1 )
{	$status=2; echo "mail adres $email is incorrect<BR><BR> $error ";

	}elseif( empty($functie) )
{	$status=2; echo "Functie is niet ingevuld, $error";

	}elseif( empty($contactpersoon_xxxx) )
{	$status=2; echo "Contactpersoon xxxxGroep is niet ingevuld, $error";

	}else{
$status = 1;		
$subject = "Aanmaken van nieuw contactpersoon in Bouwworks";
$message = "Verzoek voor het aanmaken volgende gegevens:<br><br>
Naam organisatie: <b>$bedrijf</b> <br>
Contactpersoon: <b>$contactpersoon</b> <BR>
Roepnaam:<b> $contact_roepnaam </b><br>
Volledige naam <b>$contact_voorletters $contact_tussenvoegsel $contactpersoon</b><br>
Geslacht: <b>$geslacht</b><br>
Bezoek adres:<b> $bezoek_adres</b><br>
Postcode: <b>$bezoek_postcode $bezoek_plaats</b> <br>
Telefoonnummer: <b>$telefoon_zakelijk</b> Mobiel: <b>$telefoon_mobiel</b><br>
E-mail adres: <b>$email</b>  <br>
Functie: <b>$functie</b><br>
Contactpersoon xxxx: <b>$contactpersoon_xxxx </b><br><br>";		
		
echo $message;

#-------------------------------</nieuwe contact>------------------------------------------------------------------

#-------------------------------<bewerk organisatie>---------------------------------------------------------------
}}elseif ($type==bewerk_organisatie){
	if ( empty($bedrijf) ) {
	$status=2; echo "Naam organisatie is niet ingevuld, $error";

	}else{
$status = 1;		
$subject = "Bewerken organisatie in Bouwworks";
$message = "Verzoek voor het bewerken van de volgende gegevens:<br><br>
Naam organisatie: <b>$bedrijf</b> <br>
Contactpersoon: <b>$contactpersoon</b> <BR>
Roepnaam:<b> $contact_roepnaam </b><br>
Volledige naam <b>$contact_voorletters $contact_tussenvoegsel $contactpersoon</b><br>
Geslacht: <b>$geslacht</b><br>
Bezoek adres:<b> $bezoek_adres</b><br>
Postcode: <b>$bezoek_postcode $bezoek_plaats</b> <br>
Telefoonnummer: <b>$telefoon_zakelijk</b> Mobiel: <b>$telefoon_mobiel</b><br>
E-mail adres: <b>$email</b>  <br>
Functie: <b>$functie</b><br>
Contactpersoon xxxx: <b>$contactpersoon_xxxx </b><br><br>";	
echo $message;
}}
#------------------------------------</Bewerk organisatie>-------------------------------------------------------------
#------------------------------------<Bewerk contact>------------------------------------------------------------------

elseif ($type==bewerk_contactpersoon){
	if ( empty($bedrijf) ) {
	$status=2; echo "Naam organisatie is niet ingevuld, $error";

	}elseif ( empty($contactpersoon) ) {
	$status=2; echo "Achternaam contactpersoon is niet ingevuld, $error";
	
	}elseif ( empty($contact_roepnaam) ) {
	$status=2; echo "Roepnaam contactpersoon is niet ingevuld, $error";
	
	}else{


$status = 1;		
$subject = "Bewerken organisatie in Bouwworks";
$message = "Verzoek voor het bewerken van de volgende gegevens:<br><br>
Naam organisatie: <b>$bedrijf</b> <br>
Contactpersoon: <b>$contactpersoon</b> <BR>
Roepnaam:<b> $contact_roepnaam </b><br>
Volledige naam <b>$contact_voorletters $contact_tussenvoegsel $contactpersoon</b><br>
Geslacht: <b>$geslacht</b><br>
Bezoek adres:<b> $bezoek_adres</b><br>
Postcode: <b>$bezoek_postcode $bezoek_plaats</b> <br>
Telefoonnummer: <b>$telefoon_zakelijk</b> Mobiel: <b>$telefoon_mobiel</b><br>
E-mail adres: <b>$email</b>  <br>
Functie: <b>$functie</b><br>
Contactpersoon xxxx: <b>$contactpersoon_xxxx </b><br><br>";
	
echo $message;
}}
#------------------------------------</Bewerk contact>-------------------------------------------------------------

#------------------------------------<User controle voor verzending & bedankt------------------------------------------

if ($status==1){
		echo "<br><br>Controleer of de gegevens juist zijn ingevuld en klik vervolgens op \"verzenden\"<br><br>";

		echo "<form action=\"#\" method=\"post\">";
		echo "<input name=\"send\" type=\"submit\" value=\"Verzenden\" />";
		echo "</form>";
		echo "<BR><BR><BR>";
			}elseif (empty ($status)){
								
				mail("bla@domein.nl", $subject, $message); 
				echo "e-mail is verzonden, bedankt.";
			}
?>
</body>
</html>

Hij doet het goed op het laatste stuk na:
PHP:
if ($status==1){
		echo "<br><br>Controleer of de gegevens juist zijn ingevuld en klik vervolgens op \"verzenden\"<br><br>";

		echo "<form action=\"#\" method=\"post\">";
		echo "<input name=\"send\" type=\"submit\" value=\"Verzenden\" />";
		echo "</form>";
		echo "<BR><BR><BR>";
			}elseif (empty ($status)){
								
				mail("bla@domein.nl", $subject, $message); 
				echo "e-mail is verzonden, bedankt.";
			}
$message is leeg
 
Laatst bewerkt:
Even kijken of ik het goed gesnapt heb;

PHP:
if ($status==1){ // Dus alleen wanneer de status 1 is, ga je hier wat zooi printen
        echo "<br><br>Controleer of de gegevens juist zijn ingevuld en klik vervolgens op \"verzenden\"<br><br>";
 
        echo "<form action=\"#\" method=\"post\">";
        echo "<input name=\"send\" type=\"submit\" value=\"Verzenden\" />";
        echo "</form>";
        echo "<BR><BR><BR>";
            }elseif (empty ($status)){ // als de status leeg is, dus niet 1, ook niet 2, doe dan het volgende
                                
                mail("bla@domein.nl", $subject, $message); // hier worden beide variabelen meegestuurd, maar die maak je voorheen alleen aan als status == 1?!
                echo "e-mail is verzonden, bedankt.";
            }

Dus ergens zit je logica niet helemaal goed. Je moet deze dus eveneens definiëren, weet ik veel waar het moet komen.
(waarschijnlijk roep je dezelfde pagina aan? zo ja, dan moet je bovenaan even zetten if (isset( die post variabele ) { message en subject is die waarde } )
 
Laatst bewerkt:
Message is leeg? Ook bij de echo? Wat gebeurd er als je hem echo't onder het mail statement? Zie je dan wel wat?

Het hoort gewoon te werken namelijk; variabele scope gaat in functies, niet in ifs (dat zou echt heel onoverzichtelijke en lastige code opleveren)
 
Dankjewel voor jullie reacties, heeft me zeker in de goede richting geholpen.

Ik probeer het nu op een andere manier te doen, ik zal laten zien hoe:

PHP:
if ($status==1){
		echo "<br><br>Controleer of de gegevens juist zijn ingevuld en klik vervolgens op \"verzenden\"<br><br>";

		echo "<form action=\"#\" method=\"post\">";
		echo "<input name=\"send\" type=\"submit\" value=\"Verzenden\" />";
		echo "<input type=\"hidden\" name=\"klaar\" value=\"1\" />";  //hier wil ik aangeven dat de gegevens gecontroleerd zijn
		echo "</form>";
		echo "<BR><BR><BR>";
		
			} if ($klaar==1){
				echo "klaar: $klaar";		//even controleren of klaar status 1 heeft, ja dus		
				mail("xxx@xxxxxxx.nl", $subject, $message); 
				echo "e-mail is verzonden, bedankt.";
				echo "<br>message:$message";		//na de submit is $message weer leeg			
			}

Maar omdat hij nu weer naar # linkt is hij dan zijn POST data kwijt?
 
Laatst bewerkt:
Ja tenzij je die opnieuw meestuurt gaat alle $_POST data verloren, die geldt alleen voor het huidige pagina verzoek.
 
Alle data weer in het formulier zetten in een hidden field zou kunnen werken, dan krijg je gewoon dezelfde data weer terug. (Tenzij iemand besluit om de verborgen inputs te gaan wijzigen wat mogelijk en niet bijzonder lastig is)

Als je de tweede keer weer alle sanity checks eroverheen haalt is er niks aan de hand; gewoon hiddens maken en de data erin zetten voor de controle :)

HTML:
<input type="hidden" name="naam" value="<?php echo $_POST['naam'] ?>" />
 
Dat is inderdaad een goed idee.

Morgen ga ik weer verder met het script, met deze info moet dat zeker lukken.

Zo niet dan hou ik jullie op de hoogte.

Bedankt!!!
Groetjes,
Luuk
 
Luuk,

Eerst definieer je een variabele $test en in het if-blok test je met test == 1, dit dient vermoedelijk te worden if ($test == 1)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan