waarom werkt dit niet
brechtjeu - 24/09/2005 13:12 (laatste wijziging 24/09/2005 14:21)
Onbekend
loo iedereen,
ik ben bezig met een gbtje en stuite op het probleem om berichten te verwijderen bijv als er een plezante de hele tijd berichten post...
ok ik weet neit of dit de beste manier is maar dat geeft niet, ik werk ZONDER mysql
code om te verwijderen:
if($pagina == verwijderen) {
ob_start();
$bericht_verwijderen = "<table class='tabeln' align='center' width='600'>\n
<tr><td><font face='lucida console' color='white' size='2'><b>$naam</b> <$email> [$datum]</font></td></tr>\n
</table>\n
<table class='tabelb' align='center' width='600' height='150'>\n
<tr><td style='vertical-align: top;'><font face='lucida console' col or='white' size='2'>$bericht</font></td></tr>\n
</table>
<table class='tabeln' align='center' width='600'><tr><td><a href='?pagina=verwijderen&naam=$naam&email=$email&datum=$datum&bericht=$bericht'><img border='0' src='VERWIJDEREN.PNG' /></a></td></tr></table><br>";
$file = "GB.PHP";
$fopenr = fopen ($file, "r");
$inhoud = fread ($fopenr, filesize ($file));
$fopenw = fopen($file, "w+");
fwrite($fopenw, "$inhoud-$bericht_verwijderen");
}
if ( $pagina == verwijderen) {
$bericht_verwijderen = "<table class='tabeln' align='center' width='600'>\n
<tr><td><font face='lucida console' color='white' size='2'><b>$naam </b> <$email > [$datum ]</font></td></tr>\n
</table>\n
<table class='tabelb' align='center' width='600' height='150'>\n
<tr><td style='vertical-align: top;'><font face='lucida console' col or='white' size='2'>$bericht </font></td></tr>\n
</table>
<table class='tabeln' align='center' width='600'><tr><td><a href='?pagina=verwijderen&naam=$naam &email=$email &datum=$datum &bericht=$bericht '><img border='0' src='VERWIJDEREN.PNG' /></a></td></tr></table><br>" ;
$file = "GB.PHP" ;
$fopenr = fopen ( $file , "r" ) ; $fopenw = fopen ( $file , "w+" ) ; fwrite ( $fopenw , "$inhoud -$bericht_verwijderen " ) ; }
link die naar verwijderpagina gaat:
<a href='?pagina=verwijderen&naam=$naam&email=$email&datum=$datum&bericht=$bericht'><img border='0' src='VERWIJDEREN.PNG' /></a>
< a href= '?pagina=verwijderen&naam=$naam&email=$email&datum=$datum&bericht=$bericht' >< img border= '0' src= 'VERWIJDEREN.PNG' /></ a>
18 antwoorden
Gesponsorde links
nemesiskoen - 24/09/2005 13:22
PHP expert
Strings kan je niet van elkaar aftrekken. Ik heb hier ooit wel eens een functie voor geschreven denk ik.
Even kijken.
(dan moet je wel zeker zijn dat $bericht,etc een waarde hebben)
File 1:
"verdeelArray.php";
<?php
function verdeelArray($inputString, $element) {
$array = explode($element, $inputString);
for($i = 0; $i < count($array); $i++) {
$array[$i] = $element . $array[$i+1];
}
return verwijderLaatsteItem($array);
}
function verwijderLaatsteItem($ingevoerdeArray) {
for($i = 0; $i < count($ingevoerdeArray)-1; $i++){
$array[] = $ingevoerdeArray[$i];
}
return $array;
}
function htmlspecialcharsArray($inputArray){
for($i = 0; $i < count($inputArray); $i++) {
$inputArray[$i] = htmlspecialchars($inputArray[$i]);
}
return $inputArray;
}
function implode_2($array, $iets=""){
if($iets == "") {
$string = "";
for($i=0;$i<count($array);$i++){
$string .= $array[$i];
}
}
else {
$string = implode($iets, $array);
}
return $string;
}
?>
<?php
function verdeelArray( $inputString , $element ) {
$array = explode ( $element , $inputString ) ;
for ( $i = 0 ; $i < count ( $array ) ; $i ++ ) {
$array [ $i ] = $element . $array [ $i + 1 ] ;
}
return verwijderLaatsteItem( $array ) ;
}
function verwijderLaatsteItem( $ingevoerdeArray ) {
for ( $i = 0 ; $i < count ( $ingevoerdeArray ) - 1 ; $i ++ ) {
$array [ ] = $ingevoerdeArray [ $i ] ;
}
return $array ;
}
function htmlspecialcharsArray( $inputArray ) {
for ( $i = 0 ; $i < count ( $inputArray ) ; $i ++ ) {
}
return $inputArray ;
}
function implode_2( $array , $iets = "" ) {
if ( $iets == "" ) {
$string = "" ;
for ( $i = 0 ; $i < count( $array ) ; $i ++ ) {
$string .= $array [ $i ] ;
}
}
else {
}
return $string ;
}
?>
file2:
"test.php"
<?php
require 'verdeelArray.php';
function aftrekkenString($string1, $string2) {
$array1 = verdeelArray($string1,"<");
$array2 = verdeelArray($string2,"<");
$array3 = array_diff($array1, $array2);
$array4 = array_diff($array2, $array1);
$array3 = implode_2("", $array3);
$array4 = implode_2("", $array4);
return htmlspecialchars($array3) . htmlspecialchars($array4);
}
$str1 = "<html>
<head></head>
<body>
<table>
<tr>
<td>
halo
</td>
</tr>
</table>
</body>
</html>";
$str2 = "<html>
<head></head>
<body>
<p>
Dit is een zin
</p>
</body>
</html>";
echo aftrekkenString($str1, $str2);
/*output:
<table>
<tr>
<td>
halo
</td>
</tr>
</table>
<p>
Dit is een zin
</p>
*/
?>
<?php
require 'verdeelArray.php' ;
function aftrekkenString( $string1 , $string2 ) {
$array1 = verdeelArray( $string1 , "<" ) ;
$array2 = verdeelArray( $string2 , "<" ) ;
$array3 = implode_2( "" , $array3 ) ;
$array4 = implode_2( "" , $array4 ) ;
}
$str1 = "<html>
<head></head>
<body>
<table>
<tr>
<td>
halo
</td>
</tr>
</table>
</body>
</html>" ;
$str2 = "<html>
<head></head>
<body>
<p>
Dit is een zin
</p>
</body>
</html>" ;
echo aftrekkenString
( $str1 , $str2 ) ;
/*output:
<table>
<tr>
<td>
halo
</td>
</tr>
</table>
<p>
Dit is een zin
</p>
*/
?>
brechtjeu - 24/09/2005 13:45
Onbekend
@ nemesiskoen: uh bestaat er niets simpeler, ik wil mijn code namelijk zo simpel mogelijk houden.
Maarten - 24/09/2005 14:07
Erelid
Citaat:
ik wil mijn code namelijk zo simpel mogelijk houden.
Als je altijd zo gaat redeneren ga je nooit tot een iets groter / geavanceerder systeem kunnen komen hoor...
brechtjeu - 24/09/2005 14:11 (laatste wijziging 24/09/2005 14:14)
Onbekend
nu komt het bericht dat ik wil verwijderen erbij met die str_replace
EDIT: ik bedoelde de code voor et gastenboekje. want ik heb er daar gezien voor gbs, codes van 500 regels ... alleeen om een berichtje toe te voegen
brechtjeu - 24/09/2005 14:18 (laatste wijziging 24/09/2005 14:20)
Onbekend
het staat er nu al zes keers op en ik heb de parameters al gedraaid en gekeerd ..., kzal het script es posten en ondertussen goed bekijken.
if($pagina == verwijderen) {
ob_start();
$bericht_verwijderen = "<table class='tabeln' align='center' width='600'>\n
<tr><td><font face='lucida console' color='white' size='2'><b>$naam</b> <$email> [$datum]</font></td></tr>\n
</table>\n
<table class='tabelb' align='center' width='600' height='150'>\n
<tr><td style='vertical-align: top;'><font face='lucida console' col or='white' size='2'>$bericht</font></td></tr>\n
</table>
<table class='tabeln' align='center' width='600'><tr><td><a href='?pagina=verwijderen&naam=$naam&email=$email&datum=$datum&bericht=$bericht'><img border='0' src='VERWIJDEREN.PNG' /></a></td></tr></table><br>";
$file = "GB.PHP";
$fopenr = fopen ($file, "r");
$inhoud = fread ($fopenr, filesize ($file));
$inhoud = str_replace ($bericht_verwijderen, "", $inhoud);
$fopenw = fopen($file, "w+");
fwrite($fopenw, "$inhoud");
}
if ( $pagina == verwijderen) {
$bericht_verwijderen = "<table class='tabeln' align='center' width='600'>\n
<tr><td><font face='lucida console' color='white' size='2'><b>$naam </b> <$email > [$datum ]</font></td></tr>\n
</table>\n
<table class='tabelb' align='center' width='600' height='150'>\n
<tr><td style='vertical-align: top;'><font face='lucida console' col or='white' size='2'>$bericht </font></td></tr>\n
</table>
<table class='tabeln' align='center' width='600'><tr><td><a href='?pagina=verwijderen&naam=$naam &email=$email &datum=$datum &bericht=$bericht '><img border='0' src='VERWIJDEREN.PNG' /></a></td></tr></table><br>" ;
$file = "GB.PHP" ;
$fopenr = fopen ( $file , "r" ) ; $inhoud = str_replace ( $bericht_verwijderen , "" , $inhoud ) ; $fopenw = fopen ( $file , "w+" ) ; }
XenoX - 24/09/2005 14:32
PHP expert
<?php
...
if($pagina == 'verwijderen')
{
$bericht_verwijderen = "<table class='tabeln' align='center' width='600'>\n
<tr><td><font face='lucida console' color='white' size='2'><b>$naam</b> <$email> [$datum]</font></td></tr>\n
</table>\n
<table class='tabelb' align='center' width='600' height='150'>\n
<tr><td style='vertical-align: top;'><font face='lucida console' col or='white' size='2'>$bericht</font></td></tr>\n
</table>
<table class='tabeln' align='center' width='600'><tr><td><a href='?pagina=verwijderen&naam=$naam&email=$email&datum=$datum&bericht=$bericht'><img border='0' src='VERWIJDEREN.PNG' /></a></td></tr></table><br>";
$file = 'GB.PHP';
$inhoud = file_get_contents($file);
$inhoud = str_replace($bericht_verwijderen, '', $inhoud);
file_put_contents($file, $inhoud);
}
...
?>
<?php
...
if ( $pagina == 'verwijderen' )
{
$bericht_verwijderen = "<table class='tabeln' align='center' width='600'>\n
<tr><td><font face='lucida console' color='white' size='2'><b>$naam </b> <$email > [$datum ]</font></td></tr>\n
</table>\n
<table class='tabelb' align='center' width='600' height='150'>\n
<tr><td style='vertical-align: top;'><font face='lucida console' col or='white' size='2'>$bericht </font></td></tr>\n
</table>
<table class='tabeln' align='center' width='600'><tr><td><a href='?pagina=verwijderen&naam=$naam &email=$email &datum=$datum &bericht=$bericht '><img border='0' src='VERWIJDEREN.PNG' /></a></td></tr></table><br>" ;
$file = 'GB.PHP' ;
$inhoud = str_replace ( $bericht_verwijderen , '' , $inhoud ) ; file_put_contents( $file , $inhoud ) ;
}
...
?>
try ?
brechtjeu - 24/09/2005 14:39 (laatste wijziging 24/09/2005 14:41)
Onbekend
@ XenoX: Fatal error: Call to undefined function: file_put_contents() in /data/members/free/tripod/nl/b/r/e/brechtjeu/htdocs/FORUM/GBPLAATS.PHP on line 16
:p
EDIT: ps, line 16 is line 15 in jouw script
Button - 24/09/2005 14:40
PHP ver gevorderde
maar wat probeer je nu eigenlijk te verwijderen : dat $bericht_verwijderen is volgens mij toch niet het te verwijderen bericht wel?
want dan snap ik al niet waarom je héél die table moet mee verwijderen:s volgens mij toch alleen maar het $bericht?
if($pagina == verwijderen) {
ob_start();
$bericht_verwijderen=$_GET['bericht'];
$file = "GB.PHP";
$fopenr = fopen ($file, "r");
$inhoud = fread ($fopenr, filesize ($file));
$inhoud = str_replace ($bericht_verwijderen, "", $inhoud);
$fopenw = fopen($file, "w+");
fwrite($fopenw, "$inhoud");
}else
{
//en dan hier natuurlijk het bericht echoën en de link
met het bericht als een GET-superglobal
//die wordt dan -zoals je wel ziet- hierboven opgehaald
//dit kan je dan ook zo doen met de naam enzoveel dat je wil
}
if ( $pagina == verwijderen) {
$bericht_verwijderen = $_GET [ 'bericht' ] ;
$file = "GB.PHP" ;
$fopenr = fopen ( $file , "r" ) ; $inhoud = str_replace ( $bericht_verwijderen , "" , $inhoud ) ; $fopenw = fopen ( $file , "w+" ) ; } else
{
//en dan hier natuurlijk het bericht echoën en de link
met het bericht als een GET- superglobal
//die wordt dan -zoals je wel ziet- hierboven opgehaald
//dit kan je dan ook zo doen met de naam enzoveel dat je wil
}
good luck
brechtjeu - 24/09/2005 14:44
Onbekend
@ Buttonman: jawel de var $bericht_verwijderen moet uit de inhoud dus probeerde ik (Xenox) met str_replace het te vervangen tot niks.
die tabellen moeten erbij want anders staat het vol met tabellen zonder iets in in de gb file ...
$_GET['bericht'] is een slecht idee want waar moet hij dat bericht uit halen...
ik zorg gwn dat alles dat hij nodig heeft in de adresbalk staat en dan vandaaruit vul ik die variabelen $naam $email $datum $bericht
en dan verwijder ik of liever gezegd replace ik den boel
XenoX - 24/09/2005 15:03
PHP expert
Citaat:
@ XenoX: Fatal error: Call to undefined function: file_put_contents() in /data/members/free/tripod/nl/b/r/e/brechtjeu/htdocs/FORUM/GB
PLAATS.PHP on line 16
Welke PHP versie heb je?
brechtjeu - 24/09/2005 15:19 (laatste wijziging 24/09/2005 16:30)
Onbekend
4.1
EDIT: ik heb nu dit:
if($pagina == 'verwijderen') {
$bericht_verwijderen = "<table class='tabeln' align='center' width='600'>\n
<tr><td><font face='lucida console' color='white' size='2'><b>$naam</b> <$email> [$datum]</font></td></tr>\n
</table>\n
<table class='tabelb' align='center' width='600' height='150'>\n
<tr><td style='vertical-align: top;'><font face='lucida console' color='white' size='2'>$bericht</font></td></tr>\n
</table>
<table class='tabeln' align='center' width='600'><tr><td><a href='?pagina=verwijderen&naam=$naam&email=$email&datum=$datum&bericht=$bericht'><img border='0' src='VERWIJDEREN.PNG' /></a></td></tr></table><br>";
$file = 'GB.PHP';
$inhoud = file_get_contents($file);
$inhoud = str_replace($bericht_verwijderen, '', $inhoud);
fwrite(fopen($file, "w+"), $inhoud);
}
if ( $pagina == 'verwijderen' ) {
$bericht_verwijderen = "<table class='tabeln' align='center' width='600'>\n
<tr><td><font face='lucida console' color='white' size='2'><b>$naam </b> <$email > [$datum ]</font></td></tr>\n
</table>\n
<table class='tabelb' align='center' width='600' height='150'>\n
<tr><td style='vertical-align: top;'><font face='lucida console' color='white' size='2'>$bericht </font></td></tr>\n
</table>
<table class='tabeln' align='center' width='600'><tr><td><a href='?pagina=verwijderen&naam=$naam &email=$email &datum=$datum &bericht=$bericht '><img border='0' src='VERWIJDEREN.PNG' /></a></td></tr></table><br>" ;
$file = 'GB.PHP' ;
$inhoud = str_replace ( $bericht_verwijderen , '' , $inhoud ) ;
}
en nu krijg ik die error niet meer XenoX
vinTage - 26/09/2005 08:17
Nieuw lid
Citaat:
PS: leuke status heb ik nu vergeleken met parse error
in plaats van daar lering uit te trekken vind je het nog grappig ook,..je bent ECHT NOG dommer dan dat ik je al vond
Gesponsorde links
Dit onderwerp is gesloten .