Volledige versie bekijken : php + flash shoutbox
100% CHRISIS
%Europe/Berlin %795 %2006, 20:05
Ik heb een shoutbox gemaakt met flash en php (php code was deels bestaand) en ik heb deze getest in IE 5 en in firefox en safari. Hij doet het prima, maar in IE krijg ik soms
undefined terug (welke ik opvang in flash en dan ipv undefined, bezig met laden weergeef).
Ik heb al verschillende aanpassingen aan mijn script gemaakt maar niets lijkt te werken ook staat er zo te zien geen fouten in... |)
Ik vermoed dat het te maken heeft met de POST data, maar weet het niet zeker. Maar waar het op neerkomt is heb me rot gezocht op het net maar geen oplossingen gevonden, zouden jullie even kunnen testen/of naar mijn bestanden kijken? wat ik weet het niet meer . :(
Kan ik trouwens in php de POST data aan het eind van mijn php script verwijderen?
ALvast heel erg bedankt :)
Een voorbeeld www.contexte.nu (http://www.contexte.nu) (klik op nieuwsforum)
De bron bestanden: www.contexte.nu/flash.rar (http://www.contexte.nu/flash.rar) (fla + php)
seysie
%Europe/Berlin %526 %2006, 13:37
mooi
brossiekoppie
%Europe/Berlin %657 %2006, 16:47
Enkele opmerkingen:
Denk aan beveiliging! Dit script mag je zo zeker niet gebruiken. De tekens -- zijn in SQL een comment, dus als je invoert '; DROP TABLE shoutbox; -- is heel je tabel weg.
Dus... gebruik escape functies: mysql_real_escape_string()
<?php
mysql_connect("localhost","database","pass") or die("&contents=Er is geen verbinding met de database, als het probleem zich blijft voordoen neemt u dan contact op met de webmaster.");
mysql_select_db("contextedb1")
or die("&contents=Er is geen shoutbox database gevonden, als het probleem zich blijft voordoen neemt u dan contact op met de webmaster.");
$name = mysql_real_escape_string(strtoupper($_POST['name'])); // strtoupper kan beter als je de gegevens UIT de db haalt
$shout = mysql_real_escape_string(strtoupper($_POST['shout']));
$now = time();
$sql = mysql_query('INSERT INTO shoutbox (date,name,shout) VALUES (' . $now . ',' . $name . ',' . $shout . ')')
// gebruik id als primary key en auto increment
or die("&contents=Fout bij het verwerken van de data, als het probleem zich blijft voordoen neemt u dan contact op met de webmaster.");
?>
Die laatste $_POST staat daar echt voor niets denk ik.
<?php
mysql_connect('localhost','database','pass')
or die('&contents=Er is geen verbinding met de database, als het probleem zich blijft voordoen neemt u dan contact op met de webmaster.');
mysql_select_db('contextedb1')
or die('&contents=Er is geen shoutbox database gevonden, als het probleem zich blijft voordoen neemt u dan contact op met de webmaster.');
$sql = mysql_query('SELECT name,shout FROM shoutbox INV ORDER BY id DESC LIMIT 50')
or die('&contents=Fout bij het verkrijgen van de data, als het probleem zich blijft voordoen neemt u dan contact op met de webmaster.');
if(mysql_numrows($sql)==0) {
echo '&contents=Er staan nog geen berichten in de database';
} else {
$contents = '';
while ( $row = mysql_fetch_array($sql) ) {
$contents .= $row['name'] . ':'. $row['shout'] . "\n";
}
echo '&contents=' . $contents;
}
?>
Ik snap niet echt wat het probleem is maar je script is nu alleszins bruikbaar.
latino
%Europe/Berlin %537 %2006, 13:53
$sql = mysql_query('INSERT INTO shoutbox (date,name,shout) VALUES (' . $now . ',' . $name . ',' . $shout . ')')
// gebruik id als primary key en auto increment
je kunt ook NOW() gebruiken dus $now kan weg en dan:
$sql = mysql_query('INSERT INTO shoutbox (date,name,shout) VALUES (NOW(),' . $name . ',' . $shout . ')')
tevens is het geen if(mysql_numrows($sql)==0) {
maar mysql_num_rows
hie rnog een & achter:
echo"&contents=".$contents."&";
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.