/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
apache/php formular
Fra : e.c
Vist : 1194 gange
200 point
Dato : 10-07-06 19:56

Min formular virker sådan set godt nok, men når den åbnes starter den med at sende til databasen,
så der kommer en tom række, foruden den der sendes ved tryk på "knappen"

Den ser sådan ud:

Kode
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here!</title>
</head>
<body>
<form name="svarskema" metod="post" action="svarskema.php">
<p>Skriv dit navn her: <input type="text" name="navn" size="50" maxlength="50">
</p>
<p>Hvilken bog ligger på dit natbord? <textarea name="natbord"></textarea>
</p>
<p>Favoritmad for tiden? <textarea name="favoritmad"></textarea>
</p>
<input type="submit" name="send" value="Del dine oplysninger med andre">
</form>

<?php
// Hent indholdet af formularens felter
$navn = $_REQUEST["navn"];..........................linie 18
$natbord = $_REQUEST["natbord"];
$favoritmad = $_REQUEST["favoritmad"];

// Skab forbindelse til databasen her
mysql_connect("localhost", "malka", "libris") or die(mysql_error());
mysql_select_db("mindb") or die(mysql_error());

//Indsæt indholdet af formularfelterne i databasen
mysql_query("INSERT INTO svarskema(svarID, navn, natbord, favoritmad) values(0, '$navn', '$natbord', '$favoritmad')");
?>
</body>
</html>


der meldes også denne fejl når formularen åbnes:

Kode
Skriv dit navn her: ...............................

Hvilken bog ligger på dit natbord lige nu? ..................................

Favoritmad for tiden? ...............................

[her er så en knap]

Notice: Undefined index: navn in c:\programmer\easyphp1-8\www\malka\svarskema.php on line 18

Notice: Undefined index: natbord in c:\programmer\easyphp1-8\www\malka\svarskema.php on line 19

Notice: Undefined index: favoritmad in c:\programmer\easyphp1-8\www\malka\svarskema.php on line 20


og de fejl forsvinder når der er sendt 1. gang - så det må være fejlen at den sender en tom række afsted

Det hele køres på min comp apache/ php / mysql / mysqladmin med "easyphp"



 
 
Kommentar
Fra : natmaden


Dato : 10-07-06 21:48

Her min ven
Kode
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here!</title>
</head>
<body>
<form name="svarskema" metod="post" action="svarskema.php">
<p>Skriv dit navn her: <input type="text" name="navn" size="50" maxlength="50">
</p>
<p>Hvilken bog ligger på dit natbord? <textarea name="natbord"></textarea>
</p>
<p>Favoritmad for tiden? <textarea name="favoritmad"></textarea>
</p>
<input type="submit" name="send" value="Del dine oplysninger med andre">
</form>

<?php
// Hent indholdet af formularens felter
$navn = $_REQUEST["navn"];// ..........................linie 18 (19)
$natbord = $_REQUEST["natbord"];
$favoritmad = $_REQUEST["favoritmad"];

if (($navn != "") && ($natbord != "") && ($favoritmad != "")){
// Skab forbindelse til databasen her
mysql_connect("localhost", "malka", "libris") or die(mysql_error());
mysql_select_db("mindb") or die(mysql_error());

//Indsæt indholdet af formularfelterne i databasen
mysql_query("INSERT INTO svarskema(svarID, navn, natbord, favoritmad) values(0, '$navn', '$natbord', '$favoritmad')");
}
?>
</body>
</html>



Kommentar
Fra : e.c


Dato : 10-07-06 21:57

jeg prøver lige

Kommentar
Fra : natmaden


Dato : 10-07-06 22:00

Sådan kan du fjerne afhænighed af, at filen skal hedde 'svarskema.php'

Kode
<body>
<form name="svarskema" metod="post" action=<? echo $PHP_SELF; ?>>
<p>Skriv dit navn her: <input type="text" name="navn" size="50" maxlength="50">


nu kan den hedde lige hvad du vil, og den vil altid kalde sig selv !

Kommentar
Fra : e.c


Dato : 10-07-06 22:01

Notice: Undefined index: navn in c:\programmer\easyphp1-8\www\malka\svarskema5.php on line 19

Notice: Undefined index: natbord in c:\programmer\easyphp1-8\www\malka\svarskema5.php on line 20

Notice: Undefined index: favoritmad in c:\programmer\easyphp1-8\www\malka\svarskema5.php on line 21


Kommentar
Fra : e.c


Dato : 10-07-06 22:06

Kan det være fordi formularen ligger på samme dokument som php-scriptet.

Kommentar
Fra : natmaden


Dato : 10-07-06 22:06

Citat
jeg prøver lige


Det behøves du ikke , det virker

Databasedele bliver kun kaldt hvis alle felterne er udfyldte.
Hvis du vil , kan den udvides til at tjekke et felt af gangen.
eller indsætte et 'autosvar' i et felt hvis et andet er udfyldt.


Kommentar
Fra : natmaden


Dato : 10-07-06 22:12

tror at du har et problem med $_REQUEST[] denne kan vist til/fra kobles i php.ini
Da jeg skrev at den virkede , var det fordi at jeg lige havde testet den på web10,

nu vil jeg prøve lokalt

Kommentar
Fra : e.c


Dato : 10-07-06 22:15

Iflg. DK her fra Kandu så kan du køre det fra din SME server.
I øvrigt er der kommet en ny udgave SME 7

Kommentar
Fra : e.c


Dato : 10-07-06 23:01



Kommentar
Fra : natmaden


Dato : 10-07-06 23:08

ja det kører på sme og på win/apache
tak jeg har set at der er kommet en SME 7
Men der går lidt tid. min brænder er brændt af /
jeg laver et lille prøvescript , med $_REQUEST[] ,
har netop læst at den vist kan være et sikkerhedshul,
og muligvis er slået fra som standart.
Der er jo en global variabel og kan vist derfor benyttes på tværs af servere.

Kommentar
Fra : dk


Dato : 11-07-06 00:21

hejsa

interssant at følge med her...............

jeg kan desværre ikke hjælpe meget her men............

du skal installere phpmyadmin på SME'en først (PM)


Kommentar
Fra : e.c


Dato : 11-07-06 09:04

Så er min tanke straks...................kan man ikke bruge en anden ordre end den fjollede REQUEST


Kommentar
Fra : e.c


Dato : 11-07-06 09:19

Natmad - vil du vide noget om SME ..................... så spørg DK

Kommentar
Fra : natmaden


Dato : 11-07-06 14:21

Takker e.c , ja med tiden får jeg nok brug for hjælp fra DK

prøv lige at køre denne en gang på din bærbare.
Ps. jeg er lidt i tvivl og den skal med hver gang eller om en gang er nok.
så enten som en selvstændig fil.
jeg kalder den. servervar.php
Kode
<?
$HTTP_GET_VARS = $_GET;
$HTTP_POST_VARS = $_POST;
$HTTP_SERVER_VARS = $_SERVER;
extract($_GET);
extract($_POST);
extract($_SERVER);
?>


prøv så dit script.

hvis det ikke hjalp så.

includere den i dit script.
Kode
<?
include "servervar.php";
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here!</title>
</head>
<body>
......
.....

prøv også i dit script at udstifte 'post' med 'get'
altså i linien <form....
så den ser sådan ud.

Kode
<form name="svarskema" metod="get" action=<? echo $PHP_SELF; ?>>




Kommentar
Fra : e.c


Dato : 11-07-06 16:05

ok det vil jeg prøve lidt senere.

Kommentar
Fra : e.c


Dato : 11-07-06 19:38

intet hjalp
skal den include ligge så højt på det dokument.

Problemet med mit script er jo at det virker for godt (kopieret fra malka så ingen stavefejl)
Den eneste fejl er jo at der sendes en tom række til database i opstart

Kommentar
Fra : natmaden


Dato : 11-07-06 22:31

ja denne include skulle
PHP bliver nemlig udført slavisk i den rækkefølge som det står.

Din tomme sendning blev løst 10-07-06 21:48.
Med en if (($navn != "") && ($natbord != "") && ($favoritmad != "")){

!= står for ikke (NOT).
&& står for og (AND)

Hvis navn ikke er tomt og natbord ikke er tomt og favoritmad ikke er tomt
Så udfør hvad der står mellem {}

Du skriver i starten at dine fejl i linie 18,19,20 kun er der ved første indtastning

Ja men variabelerne er heller ikke defineret før det har kørt første gang.

e.c
jeg vil gerne vide hvad dette script giver af fejl hos dig.
Linien i bunden 'phpinfo()'
giver dig en lang udlistning af din opsætning
den nederste del af udlistningen hedder php variable.
Kan du se dine indtastninger der ?
NB. det kører fejlfrit på b-one/web10/SME og WIN
Ja alle steder som jeg har prøvet det. også på flere forskellige servere hos web10
Kode
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head><title></title></head>
<body>
<form name="skema" metod="get" action=<? echo $PHP_SELF; ?>>
<p>Felt 1 <input type="text" name="f1" size="50" maxlength="50">
</p>
<p>Felt 2 <textarea name="f2"></textarea>
</p>
<p>Felt 3 <textarea name="f3"></textarea>
</p>
<input type="submit" name="send" value="Del dine oplysninger med andre">
</form>
<?php
// Hent indholdet af formularens felter
if (isset($var)) {
echo "This var is set so I will print.";
}

$felt1 = $_REQUEST["f1"];
$felt2 = $_REQUEST["f2"];
$felt3 = $_REQUEST["f3"];

if (($felt1 != "") && ($felt2 != "") && ($felt3 != "")){
echo "Felt 1 ".$felt1."<br />";
echo "Felt 2 ".$felt2."<br />";
echo "Felt 3 ".$felt3."<br />";
}

phpinfo();
?>
</body>
</html>


ellers kunne en lidt fræk løsning være at undertrykke fejlmeddeleserne 'notice'
dette kan gøres med @ foran.
lidt i tvivl om det skal være foran som

@$felt1 = $_REQUEST["f1"];
eller
$felt1 = @$_REQUEST["f1"];

en anden ting hvad er EASYPHP




Kommentar
Fra : e.c


Dato : 12-07-06 10:22

Notice: Undefined variable: PHP_SELF in c:\programmer\easyphp1-8\www\malka\nattest-1.php on line 5
>
Felt 1

Felt 2

Felt 3



Notice: Undefined index: f1 in c:\programmer\easyphp1-8\www\malka\nattest-1.php on line 20

Notice: Undefined index: f2 in c:\programmer\easyphp1-8\www\malka\nattest-1.php on line 21

Notice: Undefined index: f3 in c:\programmer\easyphp1-8\www\malka\nattest-1.php on line 22

Easyphp er jo den nemme udgave af apache/mysql/php/mysqladmin
men sådan er det hver gang jeg forsøger med noget "nemt"
Og det er jo miss Malka som i sit hæfte anbefalede at bruge programmet.


Kommentar
Fra : e.c


Dato : 12-07-06 10:25

her er en udskrift fra min bærbare

php info

SERVER_SOFTWARE Apache/1.3.33 (Win32) PHP/4.3.10
SystemRoot C:\WINDOWS
WINDIR C:\WINDOWS
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.1
REQUEST_METHOD GET ....................er det denne som driller
QUERY_STRING no value
REQUEST_URI /malka/phpinfo.php
SCRIPT_NAME /malka/phpinfo.php

HTTP Headers Information
HTTP Request Headers
HTTP Request GET /malka/phpinfo.php HTTP/1.1
Accept image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Accept-Encoding gzip,


Accepteret svar
Fra : natmaden

Modtaget 200 point
Dato : 12-07-06 11:33

REQUEST_METHOD GET er ok

QUERY_STRING burde have en værdi i stil med din adresselinie inklusiv variablenavne og værdi.

e.c prøv at køre samme script på dit webhotel.
så du kan se foreskellen.

eller prøv min her.
http://natmaden.dk/ec_test.php

Prøv at kikke i bunden under PHP Variables
både før og efter at du har udfyldt skemaet.

Ja det er noget underligt det her, jeg tænker så det knager ..


Kommentar
Fra : e.c


Dato : 12-07-06 12:29

jeg har prøvet
intet at trykke på i bunden
men et tryk på submit "del dine.........
gav mulighed for at skrive og sende
mit skrevne resutat vises under submit

min er php 4.3.10

jeg vil lige gennemgå mit program og opsætning og prøve igen.

Godkendelse af svar
Fra : e.c


Dato : 12-07-06 16:49

Tak for svaret natmaden.
Altså når Natmaden tænker så det knager helt ovre i Smørum, så må jeg hellere acceptere eller blackliste.........ælle bælle - nå det blev acceptér.

tja - nu skal man jo ikke sætte alle sine point over styr (som visse andre),
bare fordi man dummer sig lidt.

Jeg er ved at finde fejlen, som er en typisk PHP KAN IKKE LI' MIG fejl.

Det er irriterende, ikke at kunne se sine egne fejl (hvis der skulle være nogen)

Når jeg henter det færdige script som til forveksling ligner det jeg har skrevet af...........................................så virker det straks.
Altså - når databasen er også skrevet nøjagtigt af.



Kommentar
Fra : dk


Dato : 12-07-06 17:38

Hihi
hvad ka nman så lære af det mon

Kommentar
Fra : e.c


Dato : 12-07-06 19:07

Tja - mit uforbeholne råd er.....................få styr på dit tastatur
http://www.hirsenet.dk/pcforvirring.htm

Kommentar
Fra : natmaden


Dato : 12-07-06 23:53

Dejligt billede e.c kan man låne din regøringshjælp. please !!!

jeg er ikke helt med fik du det til at virke ?

har ellers siddet og kikket på/om easyphp , der er vist lidt delte meninger om det.
Og meget på fransk, hvilket jeg ikke kan.
I den Rigtige PHP står der bla. at autoinstalation er noget man skal holde sig fra, da man
nemt midster kontrollen.
Så også et sted at easyphp helst kun skal bruges til hjemmebrug,
men det er vel egentligt også hvad du gør !

apache2 er kun for NTkerner , win2000 / XP , ja også unix/linux osv.
ver2 er mere sikker end ver. 1.3 .(gælder vist kun for udgaven til win)
PHP5 er bare nyere men der er noget om øget sikkerhed om brug af get/post/request.
request blev indført fra (vist nok)ver 4.3 , så før det skal der bruges en anden metode.
der hedder noget i stil med http_req_vars , er ikke helt sikker, men kan da undersøge det.

og ellers...
Ja php kan ikke lide kommefejl osv.

Mvh. Jørgen

Kommentar
Fra : e.c


Dato : 13-07-06 10:26

Jow tak - det virker når der tastes ordentligt.
Jeg fandt en metode til at togle mellem min udgave og så den jeg hentede fra nettet.
Så kan jeg se de små fejl som mit tastatur finder på helt af sig selv.

Ja det er udelukkende til brug på den bærbare til at "lege" med på ferie.

Kommentar
Fra : natmaden


Dato : 13-07-06 17:39

dk se her http://www.kandu.dk/spg90797.aspx#986447
Ja kik du osse bare e.c

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste