Toon posts:

[PHP] Replace :) door plaatje in forum...

Pagina: 1
Acties:
  • 255 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb de volgende code in het submit-script van mijn forum:
Srry voor het vern**ken van de layout
PHP:
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
<?
if($name == "" || $email == "" || $title == "" || $message == ""){
        echo "<li>Fill in all fields before pressing Add Entry because else your message wont be posted!</li><br>";
    echo "<li>All HTML codes are stripped off the message!</li>";
    }
    else if($send_status == "ok"){
        //$today tot en met $date is een datum script, hier gaat het niet om.
        $today = getdate(); 
        $month = $today[month]; 
        $mday = $today[mday]; 
        $year = $today[year]; 
        $file = fopen("board-admin-entry.dat","a");
        $date = "$month $mday, $year";
        $today = date( "Ymd", time() );
        //haal de html-tags van $message af.
        $message_stript = strip_tags($message);
        //stop $message en $user in een tabelletje, ik heb de html code ff weggelaten...
        $message_table ="$message,$user";
        //haal de welbekende slashes voor ' " \ en / weg.
        $message_stript2 = stripslashes($message_table);
        //Hier gaat het om.
        //hij replaced :) door een plaatje. Mijn vraag is
        //nu, hoe laat ik de "output" (dus met vervangen :)-stukjes) als een string in een bestand plaatsen?
        $message_smiles = str_replace(":)", "[img]images/smile.gif[/img]", $message_strip2);
        fputs($file,"$message_smiles");
        fclose($file);
        echo "Confirmation Message\n";        
}
?>

Lees de comments om te kijken wat het probleem is... Ik heb de search gebruikt maar kan niet echt een goed antwoord vinden...

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Ik zal je het antwoord vast geven >:)
Deze vraag is al tig keer langsgekomen denk ik. Zoek maar ff, daar heb ik 'm ook vandaan :)

iig als je vraag is : Wat is de regexp die :) in een plaatje moet laten verandren.
Anders moet je een anderer topictitle kiezen :)

Verwijderd

Topicstarter
Op vrijdag 12 oktober 2001 16:41 schreef Nielsz het volgende:
Ik zal je het antwoord vast geven >:)
Deze vraag is al tig keer langsgekomen denk ik. Zoek maar ff, daar heb ik 'm ook vandaan :)

iig als je vraag is : Wat is de regexp die :) in een plaatje moet laten verandren.
Anders moet je een anderer topictitle kiezen :)
Nee, dat had ik al wel door zoals je hierboven ziet ... :)
Volgens mij was dit verhaaltje van je meer een subtiele: UTFS ! :D Maar dat heb ik al gedaan...

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

* drm gelooft dat fwrite is wat je zoekt

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Uhm.
De $string die jij wilt hebben is toch gewoon $message_string;
???
En je kan toch gewoon een bestand fopen() doen en schrijven en sluiten?

Verwijderd

Topicstarter
Op vrijdag 12 oktober 2001 16:46 schreef Nielsz het volgende:
Uhm.
De $string die jij wilt hebben is toch gewoon $message_string;
???
En je kan toch gewoon een bestand fopen() doen en schrijven en sluiten?
PHP:
1
2
3
<?
$message_smiles = str_replace(":)", "[img]images/smile.gif[/img]", $message_strip2);
?>

Je bedoelt met $message_string $message_smiles ?
Ja ik d8 ook dat het zo moest en dus heb ik ook $message_smiles = (replace die smilies)
Maar die output ziet ie niet als de string, hij post namelijk niks.

  • Grum
  • Registratie: Juni 2001
  • Niet online
PHP:
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
<?
if($name == "" || $email == "" || $title == "" || $message == ""){
        echo "<li>Fill in all fields before pressing Add Entry because else your message wont be posted!</li><br>";
    echo "<li>All HTML codes are stripped off the message!</li>";
    }
    /* Grum_ comment 
     * bij php kan je gewoon elseif doen .. en waar haal je de send_status vandaan? en wat gebeurt er als dat niet op ok staat ?
     */

    else if($send_status == "ok")
    {
        //$today tot en met $date is een datum script, hier gaat het niet om.
        $today = getdate(); 
        $month = $today[month]; // <-- VERPLICHT quoten .. month is een string
        $mday = $today[mday];   // hier ook 
        $year = $today[year];   // idem
 
        $file = fopen("board-admin-entry.dat","a");
        $date = "$month $mday, $year";
        $today = date( "Ymd", time() );
 
        //haal de html-tags van $message af.
        $message_stript = strip_tags($message);
        
        /* Grum comment
         * ik neem aan dat je '$message' vul t met '$message_stript' 
         * anders heb je de striptags voor nix gedaan
         */
 
        //stop $message en $user in een tabelletje, ik heb de html code ff weggelaten...
        $message_table ="$message,$user";
 
        //haal de welbekende slashes voor ' " \ en / weg.
        $message_stript2 = stripslashes($message_table);
 
        //Hier gaat het om.
        //hij replaced :) door een plaatje. Mijn vraag is
        //nu, hoe laat ik de "output" (dus met vervangen :)-stukjes) als een string in een bestand plaatsen?
 
        /* OPLOSSING OPLOSSING >:) */
        $message_smiles = str_replace(":)", "[img]images/smile.gif[/img]", $message_strip2); //<--- niet $message_stript2 ? :PP
        /* OPLOSSING OPLOSSING >:) */

        fputs($file,"$message_smiles");
        fclose($file);
        echo "Confirmation Message\n";        
}
?>

gniffel >:)

BTW ...

waarom doe je niet gewoon dingen als
PHP:
1
2
3
4
5
6
<?
$message = strip_tags($message);
$message = $message.','.$user;
$message = stripslashes($message);
$message = str_replace(":)", "[img]images/smile.gif[/img]", $message);
?>

had je deze fout ook niet gekregen en het werkt beter (geen onnodige variabelen in gebruik)

Verwijderd

Topicstarter
OMG! |:(
$message_strip2 moest $message_stript2 zijn
Dat was het hele probleem!!!
Nouja, in ieder geval toch bedankt.
Had ik toch goed gegokt qua stijl van dat replacen..

Bedankt Grum_ ! En Nielsz ook voor het typen van de eigelijk.. niet nodige replys.

Verwijderd

Topicstarter
OK, nog een probleem :'(
PHP:
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
<?
if($send_status == "ok"){
        $today = getdate(); 
        $month = $today[month]; 
        $mday = $today[mday]; 
        $year = $today[year]; 
        $file = fopen("board-admin-entry.dat","a");
        $date = "$month $mday, $year";
        $today = date( "Ymd", time() );
        $message_stript = strip_tags($message);
        $message_table ="$message_stript";
        $message_stript2 = stripslashes($message_table);
        $message_smiles = ReplaceSmiles($message_stript2);
        fputs($file,"$message_smiles");
        fclose($file);
        echo "Confirmation Message\n";        
}

function ReplaceSmiles($message_stript2){
        if(send_status=="ok"){
        str_replace(":)", "[img]images/smile.gif[/img]", $message_stript2);
        str_replace(":D", "[img]images/d.gif[/img]", $message_stript2);
        str_replace(">:)", "[img]images/devil.gif[/img]", $message_stript2);
        }
}
?>

Iemand hier een oplossing voor? Ik krijg:
Warning: Missing argument 1 for replacesmiles() in /users/ionichost.com/destinywz/forum/board-admin-post.php on line 84
Line 84 :
function ReplaceSmiles($message_stript2){
zucht.. :(

  • Grum
  • Registratie: Juni 2001
  • Niet online
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
if($send_status == "ok")
{
        $today = getdate(); 
        $month = $today[month]; 
        $mday = $today[mday]; 
        $year = $today[year];  
 
        $file = fopen("board-admin-entry.dat","a");
        $date = "$month $mday, $year";
        $today = date("Ymd"); // <-- ,time() hoeft niet, dat doetie zelf als je nix opgeeft
 
        // again maar even alle _stript aanhangsels weggehaald ... maakt de code duidelijker
        $message = strip_tags($message);
        $message = ReplaceSmiles($message);
 
        fputs($file,$message); // <-- quotes om een var hoeft niet
        fclose($file);
        echo "Confirmation Message\n";        
}
?>

ok nu de functie

1/ je gebruikt de structuur
code:
1
$var = functie($var);

DUS moet je code wat returnen
2/ lees es wat dingen over 'variable scope' in de manual aub :)
3/ $send_status kent de functie niet (zie variable scope) maar is ook niet nuttig omdat er voor dat de functie word gerunt al een check word gedaan :P
4/ str_replace returned iets ... dus dat moet je afvangen (wat je niet doet)
PHP:
1
2
3
4
5
6
7
8
9
<?
function ReplaceSmiles($message)
{
        $message = str_replace(":)", "[img]images/smile.gif[/img]", $message);
        $message = str_replace(":D", "[img]images/d.gif[/img]", $message);
        $message = str_replace(">:)", "[img]images/devil.gif[/img]", $message);
        return $message;
}
?>

geen idee of dit je parseerror oplost maar dit lost iig wel de problemen op dat je code niet doet wat je wilde >:)

Verwijderd

Topicstarter
Op vrijdag 12 oktober 2001 17:50 schreef Grum_ het volgende:

een heel verhaal...
OK, nou mijn logica:
PHP:
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
<?
if($send_status == "ok"){
         $today = getdate();
         $month = $today[month];
         $mday = $today[mday];
         $year = $today[year];
         $file = fopen("board-admin-entry.dat","a");
         $date = "$month $mday, $year";
         $today = date("Ymd");

         // moet hier niet bij:
         $message = "hier een lange rits html code.."; // <-- Deze
         $message = strip_tags($message);
         $message = stripslashes($message);  // <-- En deze dus?
         $message = ReplaceSmiles($message);
         fputs($file,$message);
         fclose($file);
         echo "Confirmation Message\n";
}

function ReplaceSmiles($message){
        $message = str_replace(":)", "[img]images/smile.gif[/img]", $message);
        $message = str_replace(":D", "[img]images/d.gif[/img]", $message);
        $message = str_replace(">:)", "[img]images/devil.gif[/img]", $message);
        return $message;
}
?>

Nog een vraagje. Voor deze code (erboven dus) zit een stuk html (een tabel met een hoop gegevens) waarin ook $message gedefineert wordt. Wat ik dan doe is $message (in het script) gelijk stellen aan zichzelf... Ik zal ff een voorbeeld geven:
code:
1
2
3
4
5
6
      <tr> 
        <td>Message:</td>
        <td> 
        <textarea name="message" cols=30 rows=4 wrap=soft></textarea>
        </td>
      </tr>

het is dus een forum ... KAN dit wel??? $message = "hoopje tekst wat er in de tabel getypt is "
$message = "blaatblaathtml $message"
en dan schrijft ie t naar t bestand? Maar WELKE $message pakt ie dan voor de 2e? ($message = "blaatblaathtml $message")?? Want we defineeren hierboven wel tig $message's. Ik heb je maar ff op icq geadd maar moet nu afwassen, ben over 5 mins weer online. Denk er maar ff over en kom dan aub ff online met icq.. Bedankt..

  • Grum
  • Registratie: Juni 2001
  • Niet online
ik ga nu naar huis :) .. over ~30/45 mins online voor je :)
Pagina: 1