WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   ett mysql problem! (https://www.wn.se/forum/showthread.php?t=1038491)

johancmedia 2009-10-11 11:17

ett mysql problem!
 
Hej!
jag har en fråga hur gör man om man tex. har ett form
(tex. registrerings formulär) som en mysql databas ska hämta information ifrån, hur kan man göra tex. om en person vill bli medlem och ej fyller i tex. namn så läggs automatiskt "inget namn" in mysql?.
MVH
Johan

Nerox 2009-10-11 11:58

Citat:

Ursprungligen postat av johancmedia (Inlägg 20325841)
Hej!
jag har en fråga hur gör man om man tex. har ett form
(tex. registrerings formulär) som en mysql databas ska hämta information ifrån, hur kan man göra tex. om en person vill bli medlem och ej fyller i tex. namn så läggs automatiskt "inget namn" in mysql?.
MVH
Johan

Detta kan du göra på 2 sätt som jag kan komma på på rak arm.. kan finnas fler.

sätt 1:

Kolla om användaren skickat tomma uppgifter innan du lägger in det i databasen och sätta variabeln för namn till "inget namn"


sätt 2:

Det går att sätta default värde i mysql, vilket betyder att man om man inte sätter något värde är det just det du valde som default.

//
Peter

johancmedia 2009-10-11 12:02

Citat:

Ursprungligen postat av Nerox (Inlägg 20325845)
Detta kan du göra på 2 sätt som jag kan komma på på rak arm.. kan finnas fler.

sätt 1:

Kolla om användaren skickat tomma uppgifter innan du lägger in det i databasen och sätta variabeln för namn till "inget namn"


sätt 2:

Det går att sätta default värde i mysql, vilket betyder att man om man inte sätter något värde är det just det du valde som default.

//
Peter

Sätt 1, kan du beskriva med php kod hur du menar?.
Jag har testat Sätt 2 att sätta ett default värde men när jag gör det så blir det ändå ett tomt fält.
MVH
Johan

Nerox 2009-10-11 12:11

antingen

Kod:

if(empty($name)) {
  $name = "Inget namn";
}

eller


Kod:

if(strlen($name) == 0) {
  $name = "Inget namn";
}


johancmedia 2009-10-11 15:22

Citat:

Ursprungligen postat av Nerox (Inlägg 20325849)
antingen

Kod:

if(empty($name)) {
  $name = "Inget namn";
}

eller


Kod:

if(strlen($name) == 0) {
  $name = "Inget namn";
}


Tack för hjälpen! det löste mitt problem!
MVH Johan

Conny Westh 2009-10-12 01:57

Det brukar vara bättrre att lägga en restrict för att hindra att användaren inte fyller i vissa viktiga värden, Namn och adress kan vara såna viktiga värden.

Risken r annars uppenbar att du får skräpdata i din databas och det vill man normalt inte ha.

Nu vet jag inte hur viktigt det är i just ditt fall men det är den strategi man brukar använd anär man bygger informationssystem.

BjörnJ 2009-10-12 03:00

Citat:

Ursprungligen postat av Nerox (Inlägg 20325845)
sätt 2:

Det går att sätta default värde i mysql, vilket betyder att man om man inte sätter något värde är det just det du valde som default.

Men i så fall måste man ändå specialbehandla det i PHP, eftersom "" också är ett värde.

Johan, du verkar vara nybörjare när det gäller det här, så jag vill påpeka att det är viktigt att du använder mysql_real_escape_string() på alla värden du skickar till databasen. Om det är heltal eller flyttal går det att använda intval() respektive floatval() istället.

http://se2.php.net/manual/en/functio...ape-string.php

Varför är detta viktigt? Se här:
http://www.wn.se/showpost.php?p=20324845&postcount=7

BjörnJ 2009-10-12 03:18

En annan sak, om man nu vill tillåta att folk registrerar sig utan att ange namn är det väl bättre att låta namnfältet i databasen vara tomt och istället hantera tomma namnfält efter att man läst dem från databasen. Onödigt att lägga in en massa "inget namn" i databasen.

johancmedia 2009-10-12 15:47

Citat:

Ursprungligen postat av BjörnJ (Inlägg 20325950)
En annan sak, om man nu vill tillåta att folk registrerar sig utan att ange namn är det väl bättre att låta namnfältet i databasen vara tomt och istället hantera tomma namnfält efter att man läst dem från databasen. Onödigt att lägga in en massa "inget namn" i databasen.

Hej! Jag använder ett form för att lägga in filmer på min filmsajt via en administration. Jag har har byggt upp systemet med olika film uppladningssidor som tex. megavideo, novamov m.m. Tex. om det inte finns någon länk till megavideo så när andra kollar på filmen och det inte finns någon länk till just den film uppladningsajten för just den filmen kommer man till en sida som heter "ingenvideo.php" där det står att man måste prova en annan videokälla istället, och det fungerar felfritt med:
Kod:

if(empty($name)) {
  $name = "Inget namn";
}

Som nerox visade.

Kolla in på sidan hur jag menar: http://www.gratisfilmer.co.tv
MVH
Johan


Alla tider är GMT +2. Klockan är nu 04:57.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson