Avatar billede mmohr Nybegynder
02. februar 2004 - 17:51 Der er 13 kommentarer og
1 løsning

gæstebog stener!

jeg har fået dette script af en kammerat. det er den del af en gæstebog der gemmer inputtet i databasen, men det vil ikke funke. den melder tilbage med den sidste else sætning: Email is not valid?? variablerne sendes fra en flash mailform. og jeg ved at min email er okay.. hvad er der galt?

her er php'en:

<?php
include("config.php");

$name=trim($name);
$shout=trim($shout);
$shout=strtoupper($shout);
$name=strtoupper($name);

$shout=urlencode($shout);
$shout=ereg_replace("%0D","",$shout);
$shout=urldecode($shout);

$name=strip_tags($name);
$shout=strip_tags($shout);

$shout=addslashes($shout);


$regex="^([a-zA-Z0-9._-]+)@([a-zA-Z0-9-])+(\.[a-zA-z0-9-]+)+$";
$email=strtolower($email);
$posted=date("d.m.Y - H:i");
if(ereg($regex,trim($email))){
    if(mysql_connect($host,$user,$pass)){
        mysql_select_db($dbname);
        $query="insert into shout (posted,name,email,shout) values ('$posted','$name','$email','$shout')";
        $hasil=mysql_query($query);
        if($hasil){
        print "&msg=" . urlencode("YOUR SHOUT IS POSTED!<br>");
        }
        mysql_close();
    }else{
        print "&msg=" . urlencode("NOT CONNECTED TO DATABASE!<BR>");
    }

}else{
print "&msg=" . urlencode("YOUR EMAIL IS NOT VALID<br>PLEASE TRY AGAIN");
}

?>
Avatar billede mmohr Nybegynder
02. februar 2004 - 18:06 #1
det underlige er, at det virker fint på min vens server? kan det ha noget at gøre med nogle server indstillinger?? denne side ligger hos web10.
Avatar billede Slettet bruger
02. februar 2004 - 22:41 #2
Ret denne linie: (Der var et lille z, som skulle være stort.)

$regex="^([a-zA-Z0-9._-]+)@([a-zA-Z0-9-])+(\.[a-zA-Z0-9-]+)+$";
Avatar billede mmohr Nybegynder
02. februar 2004 - 23:49 #3
umiddelbart gør det ikke nogen forskel! den kommer stadig med samme fejl!
Avatar billede Slettet bruger
02. februar 2004 - 23:57 #4
Prøv at indsætte følgende i toppen:

$name=$_POST['name'];
$shout=$_POST['shout'];
$email=$_POST['email'];

Forklaring: register_globals er slået fra (og det er godt), så man skal lige fortælle hvor variablerne skal komme fra.

Og så har jeg lige en rettelse mere til din regex:

$regex="^([a-z0-9.+_-]+)@([a-z0-9-])+(\.[a-z0-9-]+)+$";

Forklaring: Der er ingen grund til at tjekke for store bogstaver, når $email lige er lavet til små bogstaver.
Avatar billede mmohr Nybegynder
03. februar 2004 - 00:11 #5
det virker!... damn hvor har jeg rodet meget med det og nu virker det endelig... tusind tak!
Avatar billede mmohr Nybegynder
03. februar 2004 - 00:11 #6
det virker!... damn hvor har jeg rodet meget med det og nu virker det endelig... tusind tak!
Avatar billede mmohr Nybegynder
03. februar 2004 - 00:11 #7
hov
Avatar billede mmohr Nybegynder
03. februar 2004 - 00:14 #8
måske kan du lige gi en hånd med en ekstra lille ting... min gæstebog får nogle mærkelige tegn ind ved alle special tegn.. du kan se uddraget herunder:

» MARTIN | EMAIL | 3
JA JA JAJA

» Mohr | EMAIL | 0
Den her guestbook skal fanme snart funke ellers går jeg amok og smadrer min computer, og det har jeg ikke råd til! Fuuuuck......
GAM3 REPLY: Nej, tag det roligt, det er ikke din computers skyld!!!

» martin | EMAIL | 0
hey med dig!

ved du hvordan jeg løser det?
Avatar billede Slettet bruger
03. februar 2004 - 00:18 #9
Måske, hvis jeg ser din kode til at skrive det... (Et link til siden ville også være godt.)

Det ligner lidt, at du skriver ud som UTF8, men har sat din encoding til iso-8859-1.
Avatar billede mmohr Nybegynder
03. februar 2004 - 00:20 #10
php'en:

<?php
include("config.php");

if(mysql_connect($host,$user,$pass)){
    mysql_select_db($dbname);
    $query="select * from shout order by id desc limit $thelimit";
    $result=mysql_query($query);
    $content ="";
    while($row = mysql_fetch_array($result)) {
    //$content .= "<b>Date:</b> " . $entryDate . "<br>";
    $content .= "<b><FONT COLOR='#FFFFFF'>» </FONT>".$row['name'] . " | "."<a href='mailto:".$row['email']."'><FONT color='#455458'>EMAIL</FONT></a></b> | ".$row['posted'] ."<br>";
    $content .=  utf8_encode($row['shout']) . "<br>";
    if ($row['reply']!=""){
        $content .="<FONT COLOR='#455458'>GAM3 REPLY: ".$row['reply']."</font><br>";
        }
    $content .= "<br>";   
    }
    print "&content=" . utf8_encode($content);
    mysql_close();

}

?>

og flashen:
System.useCodepage = true;
Avatar billede Slettet bruger
03. februar 2004 - 00:26 #11
Måske er data allerede som UTF8 (De kom fra flash, ikke?) Så vil det nok virke at rette

$content .=  utf8_encode($row['shout']) . "<br>";

til

$content .=  $row['shout'] . "<br>";
Avatar billede mmohr Nybegynder
03. februar 2004 - 00:34 #12
hvad med den i bunden?

print "&content=" . utf8_encode($content);
Avatar billede Slettet bruger
03. februar 2004 - 00:46 #13
Ja, den skal rettes ligesådan.

Jeg vil dog sige, at jeg gætter lidt her. Jeg har aldrig arbejdet med flash.
Avatar billede mmohr Nybegynder
03. februar 2004 - 00:55 #14
det virker, men kun hvis jeg også fjerner System.useCodepage = true; i flashen.. problemet var nok som du sagde en del dobbelt kofetti
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester