PDA

Volledige versie bekijken : shoutbox werkt niet meer


larsjeee
%Europe/Berlin %857 %2007, 20:34
Ik heb al sinds enige maanden een shoutbox op een site: www.vwteamlimburg.nl
echter, sinds de provider overgegaan is naar php5 werkt deze niet meer, en geeft een foutmelding, na enige aanpassing (ik heb bijna 0 verstand van php) ben ik zover gekomen dat ik het bestand kan inlezen..
en de shoutbox wel getoond wordt zonder fout, aleen hij schrijft aleen een lege regel en die de inhoud van de string..

dit is de orgine code voor het bestand te lezen:

<?php
$filename = "shoutbox.txt"; // Setting var for later on
echo "finaltext="; // This variable is for the flash file, so it knows what to read
$read=file($filename,'r'); // Setting file inot an array
$read=array_reverse($read); // Reversing array
for($i=0; $i<=count($read);$i++) {
$result=$read[$i];
$finaltext = stripslashes($result); //Stripslashes for text(So Isn't doesn't come out Isn/'t)
echo $finaltext; // Sending var back to flash to be read, now reversed
}
?>
deze geeft de foutmelding: warning file()expects parameter 2 to be long string given in readtxt.php on line 4

heb veranderd:
$read=file($filename, "1"); // Setting file inot an arrayen hij werkt..

de code om de shout naar een txtbestand te schrijven op de server (via php)

<?php
$outReceive = "$outSend"; //Setting vars
$filename = "shoutbox.txt";

$fp = fopen($filename, "a"); // set up the open command
$line = $outReceive."\n"; // what to write to .txt file
$size = strlen($line);
echo "alldone=yes"; //echo command for flash
fputs($fp, $line, $size); // Put e-mail into file
fclose($fp); // Close the file
echo "update=true";

?>
deze krijg ik dus niet werkend, wie kan me uithelpen ?

mvg, Lars.

larsjeee
%Europe/Berlin %602 %2007, 14:27
Niemand ? hij doet het wel, maar hij schrijft de string niet? kan het niet aan de code in flash liggen, of ligt het aan de php code, deze code heeft voorheen altijd gewerkt!

ik zie in het forum soortgelijke vragen, maar ik gebruik een andere methode fputs

iemand?

Laiverd
%Europe/Berlin %623 %2007, 14:57
Zet in elk geval even je code binnen de juiste tags en help de mensen die je mogelijk kunnen helpen door alles wat leesbaarder te maken.

John

larsjeee
%Europe/Berlin %263 %2007, 06:19
de code die ik gebruik in flash voor de data naar het php bestand te sturen:

on (press) {
if (input2 ne "" && input ne "") {
outSend = "<i>" add "<font color ='#0099ff'>" add input2 add ":</font></i>" add "" add input;
//Defining value of outSend, which is sent to php to write to .txt file
this.loadVariables("update.php","POST");
//Loading PHP file
gotoAndPlay("success");
// Goto label success, to take off some fields
_parent.extras.gotoAndPlay("cover");
// goto label cover in extras sprite, to cover the fields
} else {
input2 = "";
//Blank Display in input2
input = "";
//Blank Display in input
out = "Sorry, you forgot to fill in either your username or the input text, try again.";
// Just putting the message in a textbox to try again
}
}

Heb al vanalles geprobeerd, maar weet niet waar het fout gaat, in de flash code, of in het php bestand.. het moet iets te maken hebben met het verschil tussen php4 en php5
want behalve dat de site nu met php5 draait, is er niets veranderd..

hij gaf opeens de foutmelding, van fopen dus het moet iets met dit commando te maken hebben, toch ?

josko
%Europe/Berlin %468 %2007, 11:14
Wat mij opvalt aan de files:

Er word nergens data ontvangen. Dat doe je door:

$Naam = $_POST['naam'];

In PHP 4 was er de optie om 'gewoon' $Naamm direct te gebruiken.
Dat is er nu niet meer.

Ik denk dus dat je het daar moet zoeken =]

Sxeg5QCFLTaxdZFq
%Europe/Berlin %888 %2007, 21:18
Voorbeeld van een script dat ik zelf gemaakt heb:

(wat je het beste kan doen is trouwens een database gebruiken, als je dat wilt kan ik het je wel uitleggen - voeg me dan even toe op msn(staat volgens mij ergens in mijn profiel. en anders moet je ff me profiel op www.cofusion.org/forum bekijken (k heet HeadChopper... obviously..=P ))

Maar heel vroegâhh had ik een iplog gemaakt die bij elke pagina visit iemand logde...

Hier dus een stukje daarvan.. hoop dat je er wat aan hebt...


<?php

// laad de variablen met de tijd en de datum (makelijk om uit te zoeken
// waneer iemand mijn site bezoekt.)

$day = date("l");
$month = date("F");
$year = date("Y");
$date = date("jS");
$hours = date("g");
$minutes = date("i");
$tod = date("A"); //vandaag...

if(substr($minutes, 0, 1) == 0)
$minutes = substr($minutes, 1, 2);

//haal het ip op en schrijf het in een variable

$ip = $_SERVER['REMOTE_ADDR'];
$fp=fopen("ip.html","a");

// opent ip.html op te overschrijven

fputs($fp,"$ip<br>Ip logged on $day the $date of $month $year. @ this time $hours:$minutes With this ip:
=$ip<br>--------------------------------------------------------------------------------------------<br>");

// schrijft tekst weg in ip.html

fclose($fp);

// sluit ip.html
?>


Hoop dat je er wat aan hebt...

je zou het kunnen omzetten naar zoiets:

<?php
// Kijken of er wat ingevoerd word:
if($_SERVER['REQUEST_METHOD'] == "POST") {
// Eventuele check of er geen lege velden zijn (kan ook via AS denk ik en ook JS... maar hier is de php functie:
if(!empty($_POST['naamVeld']) && !empty($_POST['berichtVeld'])) {
// We filteren de input gelijk zodat er geen 'ongelukjes' kunnen gebeuren met eventuele code injectie
// Variabele declareren..
$naam = htmlspecialchars($_POST['naamVeld']);
$bericht = htmlspecialchars($_POST['berichtVeld']);
$dag = date("j");
$maand = date("n");
$seconde = date("s");
$minuut= date("i");
$uur = date("H");
$jaar = date("y");

// Dan het bestand openen

$bufferFile = 'berichten.txt';

$fh=fopen($bufferFile,"a");

fputs($fh,"<b>$naam</b> zei:<br>$bericht<br><font size='-2'>op $dag-$maand-'$jaar @ $uur:$minuut:$seconde</font><p>");
// Datum weergave word dan ong: 23-03-'07 @ 22:34:45

fclose($fh);
} // Einde van check of er geen velden zijn ingevoerd
else {
// Error weergave.. (voorbeeld..)
echo "Sorry, maar een van de benodigde velden is niet ingevoerd!";
} // Einde error afhandeling van lege velden.

} else {
echo "Sorry, niets gepost...";
}
?>