Avatar billede jpj3 Nybegynder
15. april 2006 - 00:15 Der er 9 kommentarer og
1 løsning

Slette i sql fra txt box

Hej

Bruger skal kunne slette sin mailadr. fra nyhedsbrev.
Det skal virke ved at brugeren intaster sin mailadr. i en txtbox.
og klikker på afmeld nyhedsbrev så skal mailadr. fjernes fra sql-db.

Bruger denne form.

<form action="removeemail.php" method="post" name="afmeld _nyhed" id="afmeld _nyhed">
  <input name="afmeldnyhed" type="text" id="afmeldnyhed">
  <input type="submit" name="Submit" value="Afmeld nyhedsbrev">
</form>

removeemail.php ser sådan ud.

<?php require_once('Connections/vind_db.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

if ((isset($_GET['nyhed_id'])) && ($_GET['nyhed_id'] != "")) {
  $deleteSQL = sprintf("DELETE FROM nyhedsbrev WHERE nyhed_id=%s",
                      GetSQLValueString($_GET['nyhed_id'], "int"));

  mysql_select_db($database_vind_db, $vind_db);
  $Result1 = mysql_query($deleteSQL, $vind_db) or die(mysql_error());

  $deleteGoTo = "ok.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $deleteGoTo));
}
?>

Den vil bare ikke fjerne email adr. fra sql´en
Avatar billede horsmark Nybegynder
15. april 2006 - 10:18 #1
lave lige en var_dump($deleteSQL) efter query så vi kan se det sql der smides efter db´en :-)
Avatar billede jpj3 Nybegynder
15. april 2006 - 12:42 #2
Den skriver NULL

Den er sat ind her.
<?php require_once('Connections/vind_db.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

if ((isset($_GET['nyheds_mailadr'])) && ($_GET['nyheds_mailadr'] != "")) {
  $deleteSQL = sprintf("DELETE FROM nyhedsbrev WHERE nyheds_mailadr=%s",
                      GetSQLValueString($_GET['nyheds_mailadr'], "text"));

  mysql_select_db($database_vind_db, $vind_db);
  $Result1 = mysql_query($deleteSQL, $vind_db) or die(mysql_error());

  $deleteGoTo = "ok.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $deleteGoTo));
}
var_dump($deleteSQL)
?>

Jeg er ikke sikker på at den er sat rigtigt ind.
Avatar billede horsmark Nybegynder
15. april 2006 - 12:48 #3
hmm hvis du laver en print_r($_GET) til slut vil jeg æde min hat på at du ikke har denne variabel med

$_GET['nyheds_mailadr'] :-)
Avatar billede jpj3 Nybegynder
15. april 2006 - 12:55 #4
Parse error: syntax error, unexpected T_STRING in /var/www/side.dk/public_html/removeemail.php on line 43

if ((isset($_GET['nyheds_mailadr'])) && ($_GET['nyheds_mailadr'] != "")) {
  $deleteSQL = sprintf("DELETE FROM nyhedsbrev WHERE nyheds_mailadr=%s",
                      GetSQLValueString($_GET['nyheds_mailadr'], "text"));

  mysql_select_db($database_vind_db, $vind_db);
  $Result1 = mysql_query($deleteSQL, $vind_db) or die(mysql_error());

  $deleteGoTo = "ok.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $deleteGoTo));
}
var_dump($deleteSQL)
$_GET['nyheds_mailadr']
?>
Jeg ved kke om det er det rigtige sted det er sat ind
Avatar billede horsmark Nybegynder
15. april 2006 - 12:58 #5
var_dump($deleteSQL)
$_GET['nyheds_mailadr']

skal være:
print_r($_GET);

Her kan du så se hvad der er sendt til denne side af informationer :-) OG om din nyheds_mailadr overhovedet er sendt med for det skal den jo for at du kan slette ...
Avatar billede jpj3 Nybegynder
15. april 2006 - 13:00 #6
Den er vist tom

Array ( )

  $deleteGoTo = "ok.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $deleteGoTo));
}
print_r($_GET);

?>
Avatar billede horsmark Nybegynder
15. april 2006 - 13:03 #7
på side 1:

<form action="removeemail.php" method="post" name="afmeld _nyhed" id="afmeld _nyhed">
  <input name="afmeldnyhed" type="text" id="afmeldnyhed">
  <input type="submit" name="Submit" value="Afmeld nyhedsbrev">
</form>

skal være

<form action="removeemail.php" method="get" name="afmeld _nyhed" id="afmeld _nyhed">
  <input name="nyheds_mailadr" type="text" id="afmeldnyhed">
  <input type="submit" name="Submit" value="Afmeld nyhedsbrev">
</form>
Avatar billede horsmark Nybegynder
15. april 2006 - 13:04 #8
du kan nemmerligt ikke spørge på et GET paramter når du sender formen som POST :-) Ydermere var din email inputfelt på side 1 forkert da du på side 2 kigger efter nyheds_mailadr
Avatar billede jpj3 Nybegynder
15. april 2006 - 13:08 #9
Det havde jeg ikke set.
Kanon.
Det virker.
c;")

Svarer du lige
Avatar billede horsmark Nybegynder
15. april 2006 - 18:52 #10
her :-) superduper
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