TagWall

Door Jelmer -, 17 jaar geleden, 538.423x bekeken

Laat een tekst op een plaatje achter. Alles is random :)
Ik denk dat alles wel voor zich spreekt.

Let wel op dat de map waarin je index.php zet schrijfbaar moet zijn, en dat er fonts (lettertypen) beschikbaar zijn.

Niet alle servers ondersteunen imagettftext(). Voor de ongelukkigen weet ik geen oplossing, helaas.

Voor diegenen die een leuker muurtje willen hebben, ik heb hier een open dir met een paar plaatjes van Stock.Xchng. Alleen voor niet-commercieel gebruik, rechten gaan naar de rechthebbenden. Even de plaatjes verkleinen voor gebruik is erg aangeraden :)

edit: code cleanup en dat idee van Legolas erin gezet.
edit2: voorbeeld doet het weer.

Voorbeeld: http://phphulp.ikhoefgeen.nl/tagwall/index.php

Gesponsorde koppelingen

PHP script bestanden

  1. tagwall

 

Er zijn 73 reacties op 'Tagwall'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Alfred -
Alfred -
17 jaar geleden
 
0 +1 -0 -1
Voorbeeld werkt (nog) niet? :)

Edit: Na refreshen wel, nice script :D
PurpleMadness -
PurpleMadness -
17 jaar geleden
 
0 +1 -0 -1
Maak een anti tagwall spam :P
weetjewel:
IP opslaan, als IP bestaat mag ie niet op de tagwall plaatsen
Thijs X
Thijs X
17 jaar geleden
 
0 +1 -0 -1
Hej vet gdaan :D lijp id en idd ff een spam beveiligingtje erin stoppen

Voor muur plaatje: http://phphulp.ikhoefgeen.nl/tagwall/muur.jpg
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Hij zit inderdaad al flink vol. Het ging mij meer om het idee en de uitwerking daarvan, niet om de toepassing in de maatschappij. En zo test het toch ook veel leuker :)

Ik zal er even een unlink() knopje bijzetten
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
blij :), wel jammer dat je het soms niet meer terug ziet :P, ik zou zeggen download wat graffity fonts ;)
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
nog een tip: met .png wordt het mooier ;) (imagecreatefrompng)
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Ik weet het, maar mijn achtergrondplaatje was al in jpg, en mijn jpg-bestanden zijn wat kleiner. Wil je kwaliteit, dan wordt png inderdaad sterk aangeraden.

Hij wist een plaatje nu trouwens iedere dag, en zet hem in het archief
Han eev
Han eev
17 jaar geleden
 
0 +1 -0 -1
Erg leuk!!
Het word wel erg vol naar een bepaalde tijd!

Alleen er staat altijd 'error' Boven het plaatje.
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
het moet zijn:
imagettftext($wall, $greatness, $drunkness, $left, $top, $paint, $style, $_GET['text']);
ipv
imagettftext($wall, $greatness, $drunkness, $top, $left, $paint, $style, $_GET['text']);
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
en met deze aanpassing valt de tekst nooit buiten beeld :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
    list($llx, $lly, $lrx, $lry, $urx, $ury, $ulx, $uly) = imagettfbbox($greatness, $drunkness, $style, $text);

    $mostfarx = max(array($llx, $lrx, $urx, $ulx));
    $mostfary = max(array($lly, $lry, $ury, $uly));
    $mostnearx = min(array($llx, $lrx, $urx, $ulx));
    $mostneary = min(array($lly, $lry, $ury, $uly));

    if ($mostfarx > $width || $mostfary > $height) {
        return false;
    }


    $minx = 0;
    $miny = 0;

    if ($mostnearx < 0) {
        $minx += abs($mostnearx);
    }


    if ($mostneary < 0) {
        $miny += abs($mostneary);
    }


    $maxx = $width - $mostfarx;
    $maxy = $height - $mostfary;

    if ($maxx < $minx || $maxy < $miny) {
        return false;
    }


    $left = rand($minx, $maxx);
    $top = rand($miny, $maxy);
?>


over de return false's: ik heb er een functie van gemaakt :P
Hendel Berg
Hendel Berg
17 jaar geleden
 
0 +1 -0 -1
bij een lege query geeft 'ie een ruwe error
Marien xD
Marien xD
17 jaar geleden
 
0 +1 -0 -1
moet die ff fixen :)

verder erg goed idee :) ga ik denk ik ook ergens toepassen in mijn site :)
Sander
Sander
17 jaar geleden
 
0 +1 -0 -1
Inderdaad vet gedaan. Alleen jammer dat het na verloop van tijd erg vol word en als je zelf iets kladdert het niet kan zien.

Maar voor de rest een leuk script
Willem Jan Z
Willem Jan Z
17 jaar geleden
 
0 +1 -0 -1
Ja inderdaad een leuk script, het nut ontgaat mij even :D, maar dat doet het niet toe.
Zero Dead
Zero Dead
17 jaar geleden
 
0 +1 -0 -1
Fatal error: Call to undefined function: imagettfbbox() in /home/eliteaveng/domains/eliteavengers.org/public_html/muur/muur.php on line 49

:S
Ik zal eens navragen of hij het wil installeren:)
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
tja, zonder GD zal ut nie werken :p
Remco nvt
Remco nvt
17 jaar geleden
 
0 +1 -0 -1
Misschien een max aantal karakters erbij gooien
Hipska BE
Hipska BE
17 jaar geleden
 
0 +1 -0 -1
method="post" ipv method="get" om refreshers tegen te gaan ;-)
Zero Dead
Zero Dead
17 jaar geleden
 
0 +1 -0 -1
Hipska schreef op 22.10.2005 00:23
method="post" ipv method="get" om refreshers tegen te gaan ;-)

inderdaad, want je moet de pic refreshen als je het resultaat wilt zien...
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Dat kan je ook oplossen door een no-cache header mee te sturen. Ik had hem zelf meer bedacht als functie, dus add-on voor bijvoorbeeld een forum of een gastenboek.
Woopie100
Woopie100
17 jaar geleden
 
0 +1 -0 -1
Echt lol, maar ik kan mijn eigen tekst niet echt zien ^^
Zero Dead
Zero Dead
17 jaar geleden
 
0 +1 -0 -1
refreshen...


17 jaar geleden
 
0 +1 -0 -1
Yep. Ik heb hem in IPB Verwerkt. Voorbeeld

BTW, Hoe kan je ervoor zorgen dat het plaatje altijd opnieuw gedownload wordt, dus gerefresht wordt?
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Je zou hem kunnen laten verwijzen, die dan met header() een setje no-cache headers meestuurt, een Content-Type: image/jpeg header, en daarna via fpassthru() het bestand erachteraan gooit :)

Leuk gedaan btw :)


17 jaar geleden
 
0 +1 -0 -1
Thnx.

Maar zou het ook mogelijk zijn om bijv zoiets te doen in een apart bestand:
-binnenhalen met imagecreatefrom()
-no-change etc. en cont type headers sturen
-image outputtte
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Ik denk het wel, al weet ik niet hoe je het plaatje gaat opsturen naar de gebruiker en opslaan op je server tegerlijkertijd. Dan moet je denk ik imagejpeg() meerdere malen aanroepen.


17 jaar geleden
 
0 +1 -0 -1
en als ik van
if(filectime(CURRENT_WALL) > strtotime('+1 day')){
dit maakT:
if(filectime(CURRENT_WALL) > strtotime('+2 day')){
gaat ie dan iedere 2 dagen de muur leegmaken,
of hoe is dat anders in te stellen?
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Die regel is een beetje fout volgens mij, logischer is
f(filectime(CURRENT_WALL) < strtotime('-2 day')){
(als bestand ouder is dan twee dagen geleden)

Zal het even veranderen.


17 jaar geleden
 
0 +1 -0 -1
hey, is het niet zo dat de filectime verandert als je met imagejpeg() in het bestand schrijft?
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
nee, filectime verandert waneer je de eigenschappen van een bestand verandert, zoals naam en rechten (dus via chmod). Niet waneer je de inhoud verandert :)


17 jaar geleden
 
0 +1 -0 -1
"Let op: op de meeste Unix bestands systemen wordt een file als gewijzigd gezien, als zijn inode data is gewijzigd; dat..." maar wat nou als dat niet zo is?

BTW, is de directory waar de 'oude muur' wordt geplaatst te veranderen?
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Tuurlijk. In de laatste regel waar CURRENT_WALL staat (dus in de rename-functie) "./oude_muurtjes/". daarvoor zetten.
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
je bedoelt:

/* optioneel: leegt iedere dag de muur, en hernoemt hem naar de tijd
if(filectime(CURRENT_WALL) < strtotime('-1 day')){
rename(CURRENT_WALL, "./oud/" . time().'.jpg');
copy(CLEAN_WALL, CURRENT_WALL);
}
*/
Koen Bressers
Koen Bressers
17 jaar geleden
 
0 +1 -0 -1
Ik vindt hem echt te gek! Gaaf idee! (Ook al snap ik de ballen niet van het script zelf...)

// Btw misschien een beveiliging voor F5 drukkers....
Niels
Niels
17 jaar geleden
 
0 +1 -0 -1
idd, slim idee na 5000 keer hetzelfde te zien :), goed script, leuk bedacht
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
gewoon met sessions ofzo is het zo voor F5 beveiligd :)
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Ik breng U het idee, U doet ermee wat U wilt.
Tis puur een uitwerking van een ingeving, 3 uur werk, eerste les GD voor mij.
Zie het als (nog een) Proof of Concept.
Biebel Nemesco
Biebel Nemesco
17 jaar geleden
 
0 +1 -0 -1
Kleine aanpassing om de afbeelding gelijk te laten verversen.


Gelijk achter de code:
if(isset($_GET['text'])){
if(printTag(buildAWall(), $_GET['text'])){
echo 'Je hebt succesvol mijn muur beklad, de afbeelding wordt in 1 seconde vernieuwd';
//refresh pagina in 1 seconde
header("Refresh: 1; URL=/tagwall");
//eind refresh pagina in 1 seconde
Robert Deiman
Robert Deiman
17 jaar geleden
 
0 +1 -0 -1
Het werkt niet bij mij :S (dan bedoel ik het voorbeeldscript)
Fatal error: Call to undefined function: imagettfbbox() in /sites/vh02/ikhoefgeen.nl/phphulp/tagwall/index.php4 on line 49
Hipska BE
Hipska BE
17 jaar geleden
 
0 +1 -0 -1
idd fout in het voorbeeldje
Biebel Nemesco
Biebel Nemesco
17 jaar geleden
 
0 +1 -0 -1
Het script werkt wel, gewoon op je server zetten en dan zie je dat het werkt.

Erg leuk script.
Robert Deiman
Robert Deiman
17 jaar geleden
 
0 +1 -0 -1
@Youri

Ik beweer ook niet dat het script niet werkt... Ik vindt het altijd wel prettig om zo'n script eerst te kunnen testen. En het 'testvoorbeeld werkt niet'.
Was ff een tip, zodat dat aangepast kan worden :)
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Ik zou wel willen dat het aangepast kon worden, maar mijn host ondersteund ttf niet meer. Toen ik het voorbeeld maakte nog wel.


17 jaar geleden
 
0 +1 -0 -1
Mijn voorbeeld doet het wel, maar je moet eerst inloggen :)
Vincent
Vincent
17 jaar geleden
 
0 +1 -0 -1
Vervang de laatste regel van het script met onderstaande en het plaatje wordt altijd herladen

<img src="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo CURRENT_WALL."?".time(); ?>
" alt="tagwall" />
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
Ik heb het omgebouwd naar Joomla en wat extra functionaliteit toegevoegd =) http://www.legolasweb.nl/content/view/54/31/
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Ik voel me vereerd :)
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
Dank dat je blij bent met mijn port, o grote Jelmer =) =P
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Hoor ik dat goed? Krijg ik een eigen colossus en worden er nu schapen aan mij geofferd? Dat had niet gehoeven hoor Legolas ^^, Tis natuurlijk altijd leuk als je iets voor anderen maakt, en anderen dat dan weer zelf aanpassen en verder verspreiden (en dan ook nog je naam vermelden ^^,)
Biebel Nemesco
Biebel Nemesco
17 jaar geleden
 
0 +1 -0 -1
Just for fun, ik heb ook het één en ander aangepast

http://script.ikhebhet.net/tag-wall/
Test test
test test
17 jaar geleden
 
0 +1 -0 -1
Bij mij geeft hij deze 2 foutmeldingen wie kan helpen

Warning: opendir(./fonts/): failed to open dir: No such file or directory /domein.nl/public_html/login/tekenmuur/index.php on line 13

Fatal error: printTag: kon geen goede $style krijgen via getRandomFont() in domains/domein.nl/public_html/login/tekenmuur/index.php on line 90
Test test
test test
17 jaar geleden
 
0 +1 -0 -1
sorry ik had niet goed gelezen dat hier boven is opgelost:)

Maar nu heb ik dit probleem nog (hij staat op server)

Fatal error: Call to undefined function: imagettfbbox() in /home/veldwest/domains/fam-westerveld.nl/public_html/login/tekenmuur/index.php on line 49
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
Dat is jammer. Je server heeft geen ondersteuning voor TTF-fonts, en dan werkt het niet. En daar is niets aan te doen (tenzij je smeken bij je hoster om ttf-support een optie vindt)
Zero Dead
Zero Dead
16 jaar geleden
 
0 +1 -0 -1
Of gewoon heel lief kijken en bij iemand anders op de server plaatsen:P
Wessel Huising
Wessel Huising
16 jaar geleden
 
0 +1 -0 -1
Wow.. krijg ik kippenvel van zo knap gemaakt..:|
Une2008
une2008
16 jaar geleden
 
0 +1 -0 -1
ik heb nog iets ... Ik zie dat het niet vernieuwd ... dus voor te vernieuwen moet je deze toevoegen.. na deze tekst

"Je hebt succesvol mijn muur beklad"

VB:

echo 'Je hebt succesvol mijn muur beklad <META HTTP-EQUIV=Refresh CONTENT="1; URL=index.php">';

tot laters succes

ps: interesante script ...
Wessel Huising
Wessel Huising
16 jaar geleden
 
0 +1 -0 -1
Omdat er al snel opmerkingen werden gemaatk over mensen (toevallig iemand die ik kende) heb ik een ip logger er op gezet zo dat je hem eventueel kan bannen van de site,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$text
= $_GET["text"];
$log = "log.txt";
$ip = $_SERVER['REMOTE_ADDR'];
$log_write = "Tekst: " . $text . "\nIp: " . $ip . "\n\n\r";
$log_handle = fopen($log, "a+");
fwrite($log_handle, $log_write);
fclose($log_handle);
?>


Zet dit vooraan in het script, en maak een log.txt aan in je de map van de tagwall op de server.
Mrhocoma
mrhocoma
13 jaar geleden
 
0 +1 -0 -1
Ben voor een project een site aan het maken. Hierin probeer ik de tagwall te verwerken. Alles volgens het oekje gedaan, echter na invullen van de nieuwe tag wordt ik geredirect naar de index pagina van de site/ Heb al geprobeerd met de volgende optie het te verhelpen maar dat lukt niet.
Wat die ik nog fout?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?echo "<form method=\"get\" action=\"" . $_SERVER['PHP_SELF'] . "?actie=tagwall\">";?>

<input type="text" name="text"/>
<input type="submit"/>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?echo "</form>";?>


13 jaar geleden
 
0 +1 -0 -1
Haal het gedeelte met $_SERVER['PHP_SELF']; weg :-)
Mrhocoma
mrhocoma
13 jaar geleden
 
0 +1 -0 -1
Bedankt voor de tip, maar het maakt helaas niets uit. Zo was het originele bestand ook en gaf hetzelfde probleem.
dit staat na submit in de browser http://www.wateenwebsite.nl?text=die ingevoerd is. Maar er zou iets moeten staan van http://www.wateenwebsite.nl?actie=tagwall

Ik gebruik gewoon het bovenstaande script. Snap niet waar het fout gaat.
Mrhocoma
mrhocoma
13 jaar geleden
 
0 +1 -0 -1
Helaas werkt het nog steeds niet goed. Als ik de pagina direkt aanroep werk het wel. Zie hier het voorbeeld op de tijdelijke testomgeving: http://www.wines4all.nl/tags.php
Als je de pagina in de site zelf opent en een tekst ingeeft dan werkt het niet en kom je op de index pagina uit http://www.wines4all.nl/?actie=tagwall
Gezien het onderwerp van de site zou het leuk zijn deze gimmick aan de praat te krijgen (of heeft iemand een nog beter scriptje...).

Ik heb het scrip op de pagina geinclude.
Overigens is nu de wall iets te groot. Deze moet ik nog zien te verkleinen. Maar dan moet het eerst werken.
PHP Newbie
PHP Newbie
13 jaar geleden
 
0 +1 -0 -1
In de praktijk zou ik de teksten in een database zetten en een nieuwe afbeelding creëren bij het toevoegen van een tekst.

Dit in plaats van de huidige methode van het opslaan van de afbeelding met teksten en daar een nieuwe tekst overheen plakken.

Dit omdat je op de huidige manier geen teksten kunt verwijderen wanneer er dingen komen te staan die niet de bedoeling zijn.
Mrhocoma
mrhocoma
13 jaar geleden
 
0 +1 -0 -1
Echte Graffity is ook moeilijk te verwijderen!
Mrhocoma
mrhocoma
13 jaar geleden
 
0 +1 -0 -1
Iemand nog een idee? Heb inmiddels wat andere more graffity like fonts toegevoegd.
Zou leuk zijn als ik het nu nog in de site zelf aan de praat krijg. Voor de volledigheid hieronder het hele scriptje dan nog maar een keer?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
error_reporting(E_ALL);

define('CURRENT_WALL', './afbeeldingen/tagwall/walloftoday.jpg');
define('CLEAN_WALL', './afbeeldingen/tagwall/muur.jpg');
define('FONT_DIRECTORY', './fonts/');
define('QUALITY', 85);

function
getRandomFont($font_directory){
    $fonts = array();
    $font_of_today = false;
    
    if($dir_handle = opendir($font_directory)){
        while (false !== ($font = readdir())) {
            $extention = end(explode('.', $font));
            if(strToLower($extention) == 'ttf'){
                $fonts[] = $font;
            }
        }
    }

    
    if(count($fonts) > 0){
        $font_of_today = $font_directory.$fonts[rand(0, count($fonts)-1)];
    }

    
    return $font_of_today;
}

function
buildAWall(){
    $wall = false;
    
    if(file_exists(CURRENT_WALL)){
        $wall = imagecreatefromjpeg(CURRENT_WALL);
    }
else{
        $wall = imagecreatefromjpeg(CLEAN_WALL);
    }

    
    return $wall;
}

function
printTag($wall, $text){
    if(!empty($text) && $wall && $style = getRandomFont(FONT_DIRECTORY)){
        list($width, $height) = getimagesize(CLEAN_WALL);
        $paint = imagecolorallocate($wall, rand(0,255), rand(0,255), rand(0,255));
        $drunkness = rand(-90, 90);
        $greatness = rand(15, 35);

        /* dankje Legolas */
        list($llx, $lly, $lrx, $lry, $urx, $ury, $ulx, $uly) = imagettfbbox($greatness, $drunkness, $style, $_GET['text']);
        $mostfarx = max(array($llx, $lrx, $urx, $ulx));
        $mostfary = max(array($lly, $lry, $ury, $uly));
        $mostnearx = min(array($llx, $lrx, $urx, $ulx));
        $mostneary = min(array($lly, $lry, $ury, $uly));

        $minx = 0;
        $miny = 0;

        if ($mostnearx < 0) {
            $minx += abs($mostnearx);
        }


        if ($mostneary < 0) {
            $miny += abs($mostneary);
        }


        $maxx = $width - $mostfarx;
        $maxy = $height - $mostfary;

        $left = rand($minx, $maxx);
        $top = rand($miny, $maxy);
    
        /* omdat je altijd wel foutjes tegenkomt */
        header('X-Font-Type:'.$style);
        header('X-X-coordinate:'.$top);
        header('X-Y-coordinate:'.$left);
        header('X-Font-Size:'.$greatness);
        header('X-Font_Angle:'.$drunkness);
        imagettftext($wall, $greatness, $drunkness, $left, $top, $paint, $style, $_GET['text']);
        imagejpeg($wall, CURRENT_WALL, QUALITY);
        imagedestroy($wall);
        return true;
    }
else{
        if(empty($text)){
            trigger_error('printTag: $text (2e parameter) is lees', E_USER_ERROR);
        }

        elseif(!$wall){
            trigger_error('printTag: $wall (1e parameter) is niet geldig', E_USER_ERROR);
        }

        elseif(!$style){
            trigger_error('printTag: kon geen goede $style krijgen via getRandomFont()', E_USER_ERROR);
        }

        return false;
    }
}


if(isset($_GET['text'])){
    if(printTag(buildAWall(), $_GET['text'])){
        echo 'Je hebt succesvol mijn muur beklad'
        ;
    }
else{
        echo 'De muur is dicht voor renovatie';
    }
}

/* optioneel: leegt iedere dag de muur, en hernoemt hem naar de tijd */
if(filectime(CURRENT_WALL) < strtotime('-1 day')){
    rename(CURRENT_WALL, time().'.jpg');
    copy(CLEAN_WALL, CURRENT_WALL);
}


?>

<?echo "<form method=\"get\" action=\"?actie=tagwall\">";?>
<input type="text" name="text"/>
<input type="submit"/>
<?echo "</form>";?>


<img src="<?php echo CURRENT_WALL."?".time() ;?>" title="Dit is de Grafitty van onze bezoekers van vandaag!" alt="tagwall" />

 
Nick
Nick
13 jaar geleden
 
0 +1 -0 -1
Er zit een fout in als ik enter in google chrome in houdt komt er heel veel het zelfde!
TJVB tvb
TJVB tvb
13 jaar geleden
 
0 +1 -0 -1
mrhocoma, je probleem zit hem in je formulier, je hebt namelijk een action met een get parameter terwijl je het formulier ook met get verstuurd.
Verder is een echo niet nodig als je alleen maar wat basis tekst neerzet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?echo "<form method=\"get\" action=\"?actie=tagwall\">";?>
<input type="text" name="text"/>
<input type="submit"/>
<?echo "</form>";?>


Dat moet worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<form method=\"get\" action=\"\">";?>

<input type="hidden" name="actie" value="tagwall">
<input type="text" name="text"/>
<input type="submit"/>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Mrhocoma
mrhocoma
13 jaar geleden
 
0 +1 -0 -1
Hiermee werkt het. Maar dan wel met ob_start() boven mijn Navigatie pagina, anders krijg ik de melding headers already send by navigation..

Tevens krijg ik de melding:
Fatal error: printTag: $text (2e parameter) is lees in tags.php on line 85

Door een value in text te zetten is dat een beetje weggepoetst.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<form method="get" action="">
<input type="hidden" name="actie" value="tagwall">
<input type="text" name="text" value="..."/>
<input type="submit"/>
</form>


Kan beter denk ik maar wat en hoe?
--
--
13 jaar geleden
 
0 +1 -0 -1
Geen ob_start in ieder geval.


13 jaar geleden
 
0 +1 -0 -1
Die headers already send betekend dat je al output hebt boven het script; fix die fout dus eerst. ob_start(); daarvoor gebruiken is niet meer dan plakband om je zandkasteel plakken...
Mrhocoma
mrhocoma
13 jaar geleden
 
0 +1 -0 -1
OK. De output is van het "navigatie script" wat ik gebruik. Zou echt niet weten hoe dat op te lossen.

dit is het scriptje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php

ob_start();

//error_reporting(E_ALL);

 ?>


<?php
// toegestane pagina's in een array zetten
$toegestaan=array("home_nl","home_uk","home","index","tags","tagwall","menu2","menu","menu_nl","menu_uk","contact_nl","olieverf","tentoonstelling","opdrachten","graffity","paintbrush","oud_werk","oud_graffity","oud_olieverf");

// controleren of er een pagina is meegegeven)
if(isset($_GET['actie']))
{

    // de binnengehaalde variabele omzetten naar kleine letters
    $actie = strtolower($_GET['actie']);

    // controleren of de pagina voorkomt in de array
    if (in_array($actie, $toegestaan))
    {

           // wanneer die toegestaan is includen
        include($actie.".php");
    }
else{
        // wanneer die niet toegestaan is standaard pagina includen.
        include("home_nl.php");
    }
}
else{
    include("home_nl.php");
}

?>
  
Mrhocoma
mrhocoma
13 jaar geleden
 
0 +1 -0 -1
Had het script werkend in de testomgeving. Nu staat de site live maar blijkt dat de provider geen imagettfbbox() ondersteund (Freetype library voor php is niet geinstalleerd op de server grr.....:(
Iemand een idee om dit toch werkzaam te krijgen? zou namelijk voor de betreffende site wel erg leuk zijn, zie hier: www.de-wieger.nl
Mrhocoma
mrhocoma
13 jaar geleden
 
0 +1 -0 -1
iemand nog een idee?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Mrhocoma
mrhocoma
13 jaar geleden
 
0 +1 -0 -1
Laatste poging dan maar. Iemand nog een (andere) oplossing voor het laten werken van bovenstaand script maar dan zonder Freetype Library. :) Of weet iemand een leuk alternatief (de post-its zou ook leuk zijn maar is een beetje te braaf voor de bedoelde site: www.de-wieger.nl/?actie=tagwall

Bedankt

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. tagwall

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.