|
| apache/php formular Fra : e.c | Vist : 1207 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 : e.c |
Dato : 10-07-06 21:57 |
| | |
| 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 : natmaden |
Dato : 10-07-06 22:06 |
|
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 : 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 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.
| |
| 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 |
| | |
| 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 |
| | |
| 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.
| |
|
|