Welkom!

Deel je kennis met anderen in deze Flashgemeenschap!
Gebruikersnaam:
Wachtwoord:
Wachtwoord opslaan?
Wachtwoord vergeten?
Gastenboek / reactie boek maken met Flash & Php
223 downloads, 57054 keer gelezen
(July 21, 2003)
Waardering: 55 keer gestemd 
 4.2 van de 5
Eigenschappen
Flash Versie  Flash MX
Moeilijkheidsgraad  Gemiddeld

Formaat:   16 KB

Hallo mede Flashfreaks , nadat ik zelf een paar maanden terug een soort van gastenboek / reactie boek in Flash moest maken en zelf dacht dat er mischien nog wel een makkelijkere manier was om dit te kennen en te begrijpen heb ik zelf mijn eerste tutorial gemaakt hier over . Ik hoop dat het duidelijk is, ik heb geprobeerd zoveel mogelijk uit te leggen . Voor vragen mag je me natuurlijk mailen .

  Flash & php tutorial - een gastenboek / reactie boek maken

Inhouds opgave :
- De data ophalen in Flash
- Het invoer formulier
- het php bestand


Maak in Flash een nieuwe movie aan ,maak op frame 1 een keyframe . Selecteer nu nu de Text Tool button links in het tools menu .Maak een textvak aan op de frame 1 de grootte van deze text box is niet echt van belang .Selecteer nu de arrow tool links boven in het tools menu , klik nu met deze pijl op je text box en plaats bij properties het vak om naar Dynamic text . Klik nu rechts onder in in het vakje Var ,en noem deze guestbook.Links in het properties menu staat ook het icoontje render text as html ( deze optie gaat er straks voor zorgen dat we probleemloos de html output van onze php file kunnen benaderen . ( zie afbeelding )


.Nu volgt er een belangrijk stuk Actionscript welke 2 belangrijke opdrachten uitvoert :
- De tekst laten scrollen als er een hoop data moet opgevraagt worden.
- De data zelf ophalen via het php bestand ( deze word nader beschreven )
Klik met je rechter muis knop frame 1 in je movie , en dan op Actions . Het Actionscript menu word nu weergegeven . De Actionscript hieronder plaats je in het vak.

Nu moeten we de opmaak nog bepalen van het overzicht . Maak 2 nieuwe buttons aan zoals hieronder getoond . Vorige en volgende . Plaats deze zoals hieronder ( of naar eigen inzicht )

Klik nu met je rechter muis knop op de vorige knop en klik op Actions . Voer nu onderstaande Actionscript in :
   
on (release) {
if (NumLow == "0") {


 Als er op vorige knop geklikt word kijk in php bestand Guestbook of er data bestaat .
Guestbook = "geen vragen beschikbaar"; Geef melding terug als er geen data is
} else { Als er wel data is voer onderstaande code uit
NumLow = Number(NumLow)-Number(10);
NumHigh = Number(NumHigh)-Number(10);
NumLow welke items moeten opgehaald worden , dit werkt met - 10 dus elke keer als men op terug drukt gaat hij 10 items lager . Het zelfde geld voor NumHigh. Dus als var NumHigh al op 10 staat gaan er dus 10 af .
GuestBook = "Loading vragen "+NumLow+" tot/en met "+NumHigh+" ogenblik"; Geef melding terug , loading vragen NumHigh tot en met NumHigh
loadVariables("GuestBook.php?
NumLow="+NumLow+"&NumHigh="+NumHigh+"&R="+random(999), _parent._parent);
}
}

Laad data in van Guestbook php bestand. Deze word opgehaald met de vars NumHigh en NumLow welke een nieuwe waarde hebben gekregen omdat er op vorige is gedrukt .
Vergeet niet linker stukje Actionscrpt op een lijn te plaatsen in je Actions menu in Flash !
   
Klik nu op de volgende knop en voer onderstaande code in . Deze code is bijna het zelfde als voor de knop terug . Het enigste wat we hier weg laten is het if ,else gedeelte en we veranderen de waardes in plaats van aftrekken tellen we het bij elkaar op . dus als NumLow 0 is word waarde 10 er bij opgelt  
   
on (release) {
NumLow = Number(NumLow)+Number(10);
NumHigh = Number(NumHigh)+Number(10);
GuestBook = "loading vragen "+NumLow+" tot/en met "+NumHigh+" ogenblik..";

loadVariables("GuestBook.php?
NumLow="+NumLow+"&NumHigh="+NumHigh+"&R="+random(999), _parent._parent);
}
Vergeet niet linker stukje Actionscrpt op een lijn te plaatsen in je Actions menu in Flash !
   
   
   


Maak nu een klein pijltje om straks te kunnen scrollen , je kunt hiervoor een symbool aanmaken en deze met de Free transform tool draaien zodat hij naar beneden wijst . Plaats deze ook zoals op afbeelding hieronder. Plaats nu nog de tekst zoals hieronder of naar eigen keus bv totaal aantal vragen of reacties gepost . Plaats direct daar achter een dynamic text veld genaamd : TotalEntries , zet de Line type op Multiline . En de knop Render text as HTML aan .


 
myButton.onRollOver = function(){
Als er met muis over pijltje heen gegaan ( instance name : myButton ) word er naar beneden gescrollt
this.onEnterFrame = function(){
Als frame word geladen word actie ingeladen ,this = is huidige frame .
GuestBook.scroll ++; Na uitvoeren van bovengenoemde acties scrollen we naar beneden de var naam is Guestbook deze verwijs naar ons dynamic text veld welke Guestbook heet .

if(GuestBook.scroll == GuestBook.maxscroll) delete this.onEnterFrame
}
}

Als Guestbook.scroll alles gescrollt heeft, stop met scrollen .

myButton.onRollOut = function(){
delete this.onEnterFrame;
}
Als muis niet meer over pijltje ( instance name : myButton ) heen gaat stop met scrollen .
myButtup.onRollOver = function(){
Als er met muis over instane name myButtup word bewogen voer functie uit .
this.onEnterFrame = function(){
GuestBook.scroll--;

}
}
Als frame gelaaden word laad actie in .Scroll var naam GuestBook omhoog.
myButtup.onRollOut = function(){
delete this.onEnterFrame;
}
Als muis niet meer over pijltje ( instance name : myButtup ) heen gaat stop met scrollen
if(GuestBook.scroll == GuestBook.maxscroll) delete this.onEnterFrame Als GuestBook scroll alles gescrollt heeft stop met scrollen .
// begin ophalen van php bestand  
}
NumLow = 0;
NumHigh = 10;

var numLow = het nummer waar hij begint
var NumHigh = het aantal dat er maximaal per pagina word weergegeven.
loadVariables("GuestBook.php?
NumLow="+NumLow+"&NumHigh="+NumHigh+"&R="+random(999), _self );
Laad data uit Guestbook.php ( deze file word onderaan deze pagina beschreven .) Var Numlow staat voor het aantal wat er hier boven staat in var NumLow ,dit is de waarde 0 hij laad dus steeds per pagina 10 items in 0 tot 10. De NumHigh var in deze url staat voor de var Numhigh welke op 10 staat , er worden dus 10 items maximaal per pagina weergegeven.
Vergeet niet linker stukje Actionscript op een lijn te plaatsen in je Actions menu in Flash !
stop(); Stop op deze frame .


We maken nu nog een knop om een bericht / opkeringen te kunnen plaatsen .Plaats deze button zoals boven getoond en open het Action menu . Plaats daar :

on (release) {
gotoAndPlay(2);
}
 


We sluiten nu het Actionscript menu weer en maken een nieuwe lege keyframe aan . Klik nu met je rechter muis knop frame 2 en klik op weer op Actions . zet hier neer :
stop();
 
We maken nu op frame 2 een klein formuliertje waar men straks een berichtje of vraag kan posten . Maak nu eerst 3 gele blokjes met de Rectangle tool in het tools menu links , maak ze zoals hier afgebeeld of naar eigen inzicht.Maak nu ook nog 4 nieuwe input text velden aan en plaats deze over de gele vlakken heen .
Van boven naar benenden gezien krijgen deze de var namen :
- naam
- email
- msg ( vergeet niet de line type op Multiline te zetten )
- Status ( dit veld komt onder het laatste vak msg te staan , zet deze line type ook op Multiline )
-
 

Maak nu een nieuw symbool aan CTRL + F8 , het type = button . Geef hem een unieke naam en klik op ok. Plaats nu gewenste text of button soort in je symbool . Sluit deze symbool weer en keer terug naar Scene 1, frame 2 . Selecteer nu de libary map met items . CTRL + L . Kies je zojuist gemaakte knop en plaats hem zoals boven getoonde afbeelding .
 
Klik nu met je rechter muis knop op de knop en klik op Actions , Voer nu onderstaande Actionscript in :  
   
on (release) {
if (naam eq "") {
Als er op knop word gedrukt kijk of input veld naam leeg is .
Status = "je bent je naam vergeten in te vullen"; geef melding terug
} else if (email eq "") { Als email input veld leeg is
Status = "e-mail adres ontbreekt.."; geef melding terug
} else if (msg eq "") { Als msg input veld leeg is
Status = "Zonder bericht is het niet mogelijk iets te plaatsen."; geef melding terug
} else { Als alle velden zijn ingevuld voer onderstaande code uit
Submit = "Yes"; submit waarde Yes
Status = "bezig met opslaan ...";
Geef melding terug waneer data word opgeslagen
lv = new LoadVars(); lv laad waardes in van input velden
lv.waarde = naam
lv.waarde = email
lv.waarde = msg
elke lv.waarde haalt de waarde van de input velden op .
loadVariables("GuestBook.php?naam=" + naam +"&email=" + email +"&msg=" + msg +"&submit=true", _parent, "POST");
Laad waardes in en post deze via Methode POST via het GuestBook php bestand.
Vergeet niet linker stukje Actionscrpt op een lijn te plaatsen in je Actions menu in Flash !
Status = "U vraag / mededeling is geplaatst" Geeft melding terug waneer de waardes succesvol opgeslagen zijn .
gotoAndPlay(1);
}
}
Keer terug naar frame 1 op Scene 1
   
Nu zijn we klaar in flash en gaan we over naar het php bestand Dit bestand downloaden
   
 
- Het php bestand is opgebouwd uit :  
<?
$naam = $_GET['naam'];
$email = $_GET['email'];
$msg = $_GET['msg'];
code zorgt dat alle querystrings welke via ons flash formulier verzonden worden een eigen var krijgen .
$naam = ereg_replace("[^A-Za-z0-9 ]", "", $naam);

$email = ereg_replace("[^A-Za-z0-9 \@\.\-\/\']", "", $email);
$msg = ereg_replace("[^A-Za-z0-9 \@\.\-\/\']", "", $msg);

Haal tekens weg uit gepost bericht welke niet acceptabel zijn voor de output die later word gelevert in HTML
$msg = ereg_replace('kut', '****', $msg);
$msg = eregi_replace('tering', '****',$msg);
$msg = eregi_replace('neuken', '****',$msg);
$msg = eregi_replace('tering', '****',$msg);
$msg = eregi_replace('terin', '****',$msg);
$msg = eregi_replace('kanker', '****',$msg);
$msg = eregi_replace('vagina', '****',$msg);
$msg = eregi_replace('tievus', '****',$msg);
$msg = eregi_replace('tyfus', '****',$msg);
$msg = eregi_replace('klote', '****',$msg);
$msg = eregi_replace('pik', '****',$msg);
$msg = eregi_replace('kut', '****',$msg);
$msg = eregi_replace('lul', '****',$msg);
$msg = eregi_replace('godverdomme', '****',$msg);
$msg = eregi_replace('homo', '****',$msg);
$msg = eregi_replace('flikker', '****',$msg);
$msg = eregi_replace('nicht', '****',$msg);
$msg = eregi_replace('hoer', '****',$msg);
$msg = eregi_replace('likker', '****',$msg);
$msg = eregi_replace('suck', '****',$msg);
$msg = eregi_replace('fuck', '****',$msg);
$msg = eregi_replace('slet', '****',$msg);
$msg = eregi_replace('aids', '****',$msg);
$msg = eregi_replace('nigt', '****',$msg);
$msg = eregi_replace('nigt', '****',$msg);
$msg = eregi_replace('shit', 'bloep',$msg);
$msg = eregi_replace('neuke', '****',$msg);
De linker code is een extra toevoeging die gebruikt kan worden waneer er een bericht gepost word met scheldwoorden .
$naam = stripslashes($naam);
$email = stripslashes($email);
$msg = stripslashes($msg);
Haal in elke var de backslash ' \ ' weg .
   
if ($submit == "true"){

$fp = fopen( $filename,"r");
$OldData = fread($fp, 80000);
fclose( $fp );
$Today = (date ("l dS of F Y ( h:i:s A )",time()));
Als submit waarde waar is voer onderstaande code uit .

var fp opent het bestand
var OldData lees het bestand zo ver mogelijk om straks de nieuwe data achter de oude data weg te schrijven .
var Today maakt de datum en tijd aan van het moment dat er data verzonden word.
$filename = "GuestBook.txt"; de var filename staat voor het bestand Guestbook.txt, in deze tekst file word word de data opgeslagen.
$Input = "<b>naam:</b> $naam<br><b>E-mail:</b><u><a href=\"mailto:$email\">$email</a></u><br><br><div align=\"left\"><b>Comments:</b>
$msg</div><br><font size=\"-1\"><b>datum:</b> $Today</font><br><br>.:::.";

var input bevat alle vars ,naam , email , msg en de datum en tijd welke verzonden zijn . Tevens word er wat html code aan toegevoegd om het straks weer mooi gepresenteerd te krijgen in Flash .
New = "$Input$OldData";

 

Var New bevat de waardes van Input en OldData
$fp = fopen( $filename,"w");
Var fp opent het bestand guestbook.txt met schrijf opties
fwrite($fp, $New, 80000);
commando fwrite schrijft de data weg in volgorde nieuwste bovenaan , oude data onderaan .
fclose( $fp ); sluit verbinding met text file
}

$filename = "GuestBook.txt";
$fp = fopen( $filename,"r");
$Data = fread($fp, 80000);

 

Dit is het gedeelte waar we de data ophalen . var filename staat weer voor het bestand guestbook.txt . Fp om het bestand in te lezen . En de data var var te bepalen hoeveelheid , deze staat vrij hoog.
fclose( $fp ); sluit verbinding met text bestand
$DataArray = split (".:::.", $Data);
var dataArray zorgt voor goede telling van de data .
$NumEntries = count($DataArray) - 1;
NumEntries var telt de DataArray var .
print "&TotalEntries=$NumEntries&NumLow=$NumLow&NumHigh=
$NumHigh&GuestBook=";
Laat data goed zien voor Flash .
for ($n = $NumLow; $n < $NumHigh; $n++) {
Laat alle items zien van opgevraagde item nummers.
print $DataArray[$n];
Laat het bericht daadwerkelijk zien .
if (!$DataArray[$n]) {
Print "<br>nog geen vragen/opmerkingen.";
exit;
}
} ?>


Als laatste moet je nog een leeg tekst bestand aanmaken en GuestBook.txt noemen
Upload nu alle bestanden naar je server toe ,en zorg dat het bestand GuestBook.txt lees en schrijf rechten krijgt .
Als de data array leeg is geef melding terug .

 

 

Geef hier je waardering: Matig 1 2 3 4 5 Geweldig!
  Waardering:
leuk links links (29 July 2008, 16:57)
Ik heb het geprobeerd maar het werkte niet echt super goed. Dit is trouwens de site boekenkopen
Werk noch niet harrit vd werf (29 November 2007, 02:04)

Hoi allen..

Ik ben hier nieuw op deze forum gekomen,

ik zelf heb niet al te veel verstand van flas ik maak alleen banners

in flas voor mijn werk. nu ben ik gevraagt of ik wou kijken naar een gastenboek

dus ben gaan googlen en hier uit gekomen, ik heb de txt bestan ook goed staan

alleen een klijn probleem waar ik geen snars verstand van heb

er komt niets in de gasten boek zelf te staan ?

 

waar kan dit aan liggen ?

ik hoop op een uitgebiede uit leg

 

mijn eige kennis is html en css en flashbanners


Hij werkt nie Robert Bastiaenen (13 December 2006, 15:10)

Hey hallo,

ik heb alles gedaan wat je in je tutorial zei, maar op de één of andere manier werkt hij niet. Ook niet als ik jou orginele files bekijk.   www.dj-marvin.nl/gastenboek

groeten robert


ENTER of
Vyse Exhale (27 October 2006, 09:56)
Ellow! je script werkt (Y) Alleen als je in de text editor in flash jebericht tiept. En je gebruikt enters, en witregels... vervolgens druk je op ok.. staat het bericht in het gastenboek, alleen de witregels zijn weg... en ook geen ENters... ff voor de duidelijkheid ... dit voer je in: Hallo Hier mijn bericht Groetten >> en zo komt ie in t gastenboek te staan HalloHier mijn berichtGroetten .... pls help.. of mail vyseexhale@gmail.com thx
nog wat Jelle Jansen (29 May 2005, 22:56)
en hoe krijg ik de .txt bestand lees en schrijfbaar?
1-5 | 6-10 | 11-15 | 16-20 | 21-25 | 26-30 | 31-35 | 36-40 | 41-45 | 46-50 | 51-55 | 56-60 | 61-62