Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:00 Der er 26 kommentarer og
1 løsning

Skal selv vælge om man skal have vist mail?

Hej

Har denne kode:

if($kommentar){
$nick = $_SESSION['nick'];
$mail = $_SESSION['mail'];
$dato = date('d/m/Y - H:i:s');
$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO scooter_kommentar set scooter_id = '$id', navn = '$nick', mail = '$mail', dato = '$dato', kommentar = '$kommentar', ip = '$ip'") or die ("Fejl X: ".mysql_error());
header('Location: scooter.php?id='.$id);
}

Hvordan laver man så folk selv kan vælge om deres mail skal med i db?

Med sådan nogle: <input type="radio" value="ja" checked name="ja">Ja <input type="radio" value="nrj" checked name="nej">Nej
Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:01 #1
Hvis personen har vælgt ja skal den gemme mailen i db og hvis nej skal der ikke være noget i feltet mail.
Avatar billede ahv Nybegynder
08. juni 2003 - 01:06 #2
Prøv med noget ala:

$query = "INSERT INTO scooter_kommentar set scooter_id = '$id', navn = '$nick'";
if ($_POST['rad'] == 1) {
$query .= ", mail = '$mail'";
}
$query = ", dato = '$dato', kommentar = '$kommentar', ip = '$ip'";

mysql_query($query);

Dine radio knapper skal så være:

<input type="radio" value="1" checked name="rad">Ja <input type="radio" value="2" name="rad">
Avatar billede schaefner Juniormester
08. juni 2003 - 01:06 #3
Prøv:

Mail <input type="checkbox" name="mail">Ja<br><br>

<?php
if($kommentar){
    $nick = $_SESSION['nick'];
    $mail = (isset($_POST['mail'])) ? $_SESSION['mail'] : '';
    $dato = date('d/m/Y - H:i:s');
    $ip = $_SERVER['REMOTE_ADDR'];
    mysql_query("INSERT INTO scooter_kommentar set scooter_id = '$id',navn = '$nick',mail = '$mail', dato = '$dato', kommentar = '$kommentar', ip = '$ip'") or die ("Fejl X: ".mysql_error());
    header('Location: scooter.php?id='.$id);
}
?>
Avatar billede ahv Nybegynder
08. juni 2003 - 01:09 #4
Nå ja der skal selvfølgelig gøres plads til den alligev lså skal der bare ikke stå noget.

if ($_POST['rad'] == 1) {
$mail = $_SESSION['mail'];
} else {
$mail = "";
}

mysql_query(INSERT INTO scooter_kommentar set scooter_id = '$id', navn = '$nick', mail = '$mail', dato = '$dato', kommentar = '$kommentar', ip = '$ip'");
Avatar billede schaefner Juniormester
08. juni 2003 - 01:09 #5
iøvrigt er det da en sjov måde at indsætte i databasen
Avatar billede schaefner Juniormester
08. juni 2003 - 01:11 #6
<?php
if($kommentar){
    $nick = $_SESSION['nick'];
    $mail = (isset($_POST['mail'])) ? $_SESSION['mail'] : '';
    $dato = date('d/m/Y - H:i:s');
    $ip = $_SERVER['REMOTE_ADDR'];
    mysql_query("INSERT INTO scooter_kommentar (scooter_id,navn,mail,dato,kommentar,ip VALUES ('$id','$nick','$mail','$dato','$kommentar','$ip')") or die (mysql_error());
    header('Location: scooter.php?id='.$id);
}
?>
Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:14 #7
schaefner: lille fejl

You have an error in your SQL syntax near 'VALUES ('1','MPJ','','08/06/2003 - 01:13:53','5757',minip :P)' at line 1
Avatar billede schaefner Juniormester
08. juni 2003 - 01:15 #8
mysql_query("INSERT INTO scooter_kommentar (scooter_id,navn,mail,dato,kommentar,ip) VALUES ('$id','$nick','$mail','$dato','$kommentar','$ip')") or die (mysql_error());
Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:16 #9
schaefner:

Hvor skal de være?

<input type="radio" value="ja" checked name="ja">Ja <input type="radio" value="nrj" checked name="nej">Nej
Avatar billede schaefner Juniormester
08. juni 2003 - 01:17 #10
Lav den sådan i stedet:

Mail <input type="checkbox" name="mail"> Ja

og indsæt det i den form der 'linker' til siden med den stump php-kode du allerede har fået.
Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:19 #11
schaefner: Der kommer ikke nogle mail frem når jeg har valg at den skal sætte den ind.
Avatar billede schaefner Juniormester
08. juni 2003 - 01:21 #12
den bliver ikke indsat i database eller hvad?
Avatar billede schaefner Juniormester
08. juni 2003 - 01:22 #13
Prøv lige:

$mail = (isset($_POST['mail'])) ? $_SESSION['mail'] : 'hej';

og skriv om den så indsætter 'hej' i databasen
Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:23 #14
Hvis jeg skriver en kommentar uden mail og vil skrive igen så er $_SESSION['mail'] helt væk men hvis jeg hele tiden skrive med mail så bliver den der.
Avatar billede schaefner Juniormester
08. juni 2003 - 01:24 #15
har du et link hvor man kan se det?
Avatar billede schaefner Juniormester
08. juni 2003 - 01:25 #16
men prøv stadig:

$mail = (isset($_POST['mail'])) ? $_SESSION['mail'] : 'hej';
Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:27 #17
Med den kode så ændre den værdien i $_SESSION['mail'] til hej
Avatar billede schaefner Juniormester
08. juni 2003 - 01:28 #18
nej, det gør den ikke, men indsætter den hej i databasen?
Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:28 #19
ja
Avatar billede schaefner Juniormester
08. juni 2003 - 01:30 #20
... og du har indsat dette:

<input type="checkbox" name="mail">

på den side hvor man kan vælge?
Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:31 #21
Men det gør den altså på siden har jeg en der hedder mail: hvor den så udskriver persones mail via $_SESSION['mail'] hvis jeg så skriv og vil skrive igen så er persones mail ændret til hej og det er hvor jeg udskriver $_SESSION['mail'] og ikke fra db.
Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:31 #22
ja
Avatar billede schaefner Juniormester
08. juni 2003 - 01:32 #23
så prøver vi lige at kalde variablerne noget forskelligt.

<input type="checkbox" name="nomail">

<?php
if($kommentar){
    $nick = $_SESSION['nick'];
    $email = (isset($_POST['nomail'])) ? $_SESSION['mail'] : '';
    $dato = date('d/m/Y - H:i:s');
    $ip = $_SERVER['REMOTE_ADDR'];
    mysql_query("INSERT INTO scooter_kommentar (scooter_id,navn,mail,dato,kommentar,ip) VALUES ('$id','$nick','$email','$dato','$kommentar','$ip')") or die (mysql_error());
    header('Location: scooter.php?id='.$id);
}
?>
Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:33 #24
Skal den så være <input type="checkbox" name="nomail"> ?
Avatar billede schaefner Juniormester
08. juni 2003 - 01:34 #25
kald den lige:

<input type="checkbox" name="yesmail">

og så:

$email = (isset($_POST['yesmail'])) ? $_SESSION['mail'] : '';

det giver lidt mere mening ;)
Avatar billede mpj86 Nybegynder
08. juni 2003 - 01:37 #26
Tak.

Nu dur det 100% hvorfor lavet den den fejl før??

Er det meget bedre at bruge:

("INSERT INTO scooter_kommentar (scooter_id,navn,mail,dato,kommentar,ip) VALUES ('$id','$nick','$email','$dato','$kommentar','$ip')")

istedet for:

("INSERT INTO scooter_kommentar set scooter_id = '$id', navn = '$nick', mail = '$mail', dato = '$dato', kommentar = '$kommentar', ip = '$ip'")
?
Avatar billede schaefner Juniormester
08. juni 2003 - 01:41 #27
Din egen ville jeg normaltvis bruge sammen med noget update.

UPDATE scooter_kommentar SET scooter_id = '$id', navn = '$nick', mail = '$mail', dato = '$dato', kommentar = '$kommentar', ip = '$ip'

i øvrigt undrede det mig at din egen virkede ;)

Se i øvrigt:
http://webcafe.dk/artikler/sql/indsaetogfjerndata/
http://webcafe.dk/artikler/sql/opdatertabel/

/Jesper Sørensen
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