Tja,
Jag vill kunna ta fram användarens IP adress mm.
Det ska kunna gå med hjälp av:
$REMOTE_ADDR
Jag skriver echo $REMOTE_ADDR; och för följande felmeddelande:
Warning: Undefined variable: REMOTE_ADDR in C:\rootwww\global.php on line 3
Något syntax fel gör jag ju men vad?
KimMedlem sedan jan. 20007 697 inlägg Kolla i php.ini efter raden
register_globals
Sätt den till On så ska det nog lösa sig.
FlashXMedlem sedan nov. 19991 033 inlägg eller använd $_SERVER[REMOTE_ADDR] istället och låt register_globals vara Off
bohlinMedlem sedan mars 2000263 inlägg $_SERVER[REMOTE_ADDR] funkar väl bara i 4.1.0, eller?
------------------
/bohlin
kaffe är djävulens dryck
glögg är guds dryck
FlashXMedlem sedan nov. 19991 033 inlägg Jo, det är riktigt, den fungerar inte på versioner äldre än 4.10 men det gör ju å andra sidan $HTTP_SERVER_VARS[REMOTE_ADDR] som dessutom fungerar även i nyare versioner.
TypeMedlem sedan mars 20021 239 inlägg Varför?
Varför ska man sätta register_globals till On?
Eller rättare sagt varför måste man det?
När jag gjorde det funkade det asbra! Men frågan är varför?
hur ska man annars göra???
/MVH Type
SPiNMedlem sedan mars 20007 896 inlägg Man måste inte det, men det är en genväg för att komma åt variabler utanför PHP lättare. Jag brukar låta de vara Off, för att koden ser bättre ut... ;)
TypeMedlem sedan mars 20021 239 inlägg men hur?
Jag förstår inte hur du menar :(
Asså...
du säger att du låter de vara off.. men hur ska man då kunna definiera variablerna? Vad skriver man..
typ motsvarande dim i asp.. eller så..
jag har sökt runt i forumet men inte hittat...
;)
SPiNMedlem sedan mars 20007 896 inlägg I PHP behöver man inte dimma, det räcker med att de har ett värde - så är de definierade. :)
Ex. med register_globals = off:
<?php
// Servervariabler
echo "Din IP-address: " . $_SERVER[ 'REMOTE_ADDR' ] . "<br />";
// GET-variabler
if ( isset ( $_GET[ 'namn' ] ) && $_GET[ 'namn' ] != "" ) { // Kolla med funktionen isset () om en variabel är satt, dvs. definierad
echo "Namn från addressfältet: " . $_GET[ 'namn' ] . "<br />";
}
else {
echo "Inget namn skickades via GET. :(<br />";
}
?>
TypeMedlem sedan mars 20021 239 inlägg kämpigt....
Den där koden verkade inte lätt precis :)
iof är jag glad.. för mitt funkar ju ialla fall! så det är lugnt
Nu till ett annat problem (nu är jag kanske i fel tråd):
Hur skapar man en dsn i iis??? Jag får bara fel...
/ :stud
SPiNMedlem sedan mars 20007 896 inlägg TypeMedlem sedan mars 20021 239 inlägg Näe
Vad skulle jag göra utan dig???
Ska testa det nu
Sorry :l
TypeMedlem sedan mars 20021 239 inlägg näe.. eller jo.. eller det går inte iaf
Nu får jag ett annat felmess...
ett bra felmess tror jag, fast jag vet inte hur jag ska kunna fixa till det :)
<?
if($p=='read')
{
print("du vill läsa gästboken");
$odbcPekare = odbc_connect ( "myDSN", "", "" );
$odbcResult = odbc_exec( $odbcPekare, "SELECT * FROM gastbokdata" );
$i = 0;
while ( $curRow = odbc_fetch_array($odbcResult) )
{
echo "<b>Rad " . ++$i . "</b><br />";
echo "Fält 1: " . $curRow[ 'ID' ] . "<br />";
echo "Fält 2: " . $curRow[ 'namn' ] . "<br />";
}
odbc_close ( $odbcPekare );
}
?>
Felmesset jag får är :
Fatal error: Call to undefined function: odbc_fetch_array() in C:\Documents and Settings\Erik\Skrivbord\erik\gastbok.php on line 15
Rad 15 är raden där det står while ( $curRow = odbc_fetch_array($odbcResult) )
Tacksam för hjälp :r
SPiNMedlem sedan mars 20007 896 inlägg Vilken version av PHP kör du? Det verkar som att Zend(?) har "tappat bort" den funktionen i 4.1.1 nämligen.
Försök med följande istället: ( Innan while-slingan )
<?php
if($p=='read') {
print("du vill läsa gästboken");
$odbcPekare = odbc_connect ( "myDSN", "", "" );
$odbcResult = odbc_exec( $odbcPekare, "SELECT * FROM gastbokdata" );
$i = 0;
odbc_fetch_into ( $odbcResult, &$odbcFetching );
while ( $curRow = array_slice ( $odbcFetching ) ) {
echo "<b>Rad " . ++$i . "</b><br />";
echo "Fält 1: " . $curRow[ 0 ] . "<br />";
echo "Fält 2: " . $curRow[ 1 ] . "<br />";
}
odbc_close ( $odbcPekare );
}
?>
Märk att du måste använda index-numrena när du hämtar värden från aktuell rad. Du kan komma undan med det genom att skriva en liten funktion som gör om till en associativ array. :)
TypeMedlem sedan mars 20021 239 inlägg Det gick inte heller....
Det går inte heller.... felet blir nu:
Warning: Wrong parameter count for array_slice() in C:\Documents and Settings\Erik\Skrivbord\erik\gastbok.php on line 17
Måste man krångla till det så till den milda grad??
SPiNMedlem sedan mars 20007 896 inlägg Jag hade inget bättre för mig, så jag skrev ihop en liten funktion:
if ( !function_exists ( odbc_fetch_array ) ) {
function odbc_fetch_array ( $odbcResult ) {
odbc_fetch_into ( $odbcResult, &$odbcFetching );
foreach ( $odbcFetching as $key => $odbcValue ) {
$odbcFetchedArray[ odbc_field_name ( $odbcResult, $key + 1 ) ] = $odbcValue;
}
return $odbcFetchedArray;
}
}
Red.} Hittade en skön foreach-slinga på PHP.net som var smidig. :)
TypeMedlem sedan mars 20021 239 inlägg *lol*
Problemet är att jag inte vet hur jag ska använda funktionen :e
SPiNMedlem sedan mars 20007 896 inlägg Hm, jag har nu kollat och kollat på PHP.net för att hitta enkla lösningar och funktioner för ODBC, men jag märker bara att det blir krångligare och krångligare. :l
Eftersom att du är nybörjare så ska jag visa ett exempel på hur du använder COM mot Access, som nicclas också visade högre upp i förra tråden... Det är ivf lite enklare att förstå och ta till sig förhoppningsvis.
<?php
$comConnection = new COM ( "ADODB.Connection" );
$comConnection->Open ( "DSN=myDSN" );
$comRecordset = $comConnection->Execute ( "SELECT ID, [namn] FROM gastbokdata" );
$rowCounter = 0;
while ( !$comRecordset->EOF ) {
echo "Rad: " . ++$rowCounter . "<br />";
echo "ID: " . $comRecordset->Fields ( 0 );
echo "Namn: " . $comRecordset->Fields ( 1 );
$comRecordset->MoveNext ();
}
$comRecordset->Close ();
$comConnection->Close ();
Samma sak gäller dock här, du måste veta index-numrena på de fält du ska skriva ut. :l
Ska se om jag kan hitta en vettig funktion alternativt skriva en egen för att skapa en associativ array... :)
TypeMedlem sedan mars 20021 239 inlägg Jag ska ta o fundera kring detta...
Jag måste ta o sova nu. är jättetrött..
tack för all hjälp! du har verkligen varit till stor hjälp, känns som att jag inte skulle klara det utan guide....
TACK! / ;)
SPiNMedlem sedan mars 20007 896 inlägg Såg nu en miss jag hade gjort i ett inlägg här över, hade använt fel funktion... :r
Försök med följande kod, så kanske du får ODBC att fungera:
<?php
if($p=='read') {
print("du vill läsa gästboken");
$odbcPekare = odbc_connect ( "myDSN", "", "" );
$odbcResult = odbc_exec( $odbcPekare, "SELECT * FROM gastbokdata" );
$i = 0;
odbc_fetch_into ( $odbcResult, &$odbcFetching );
while ( $curRow = array_shift ( $odbcFetching ) ) {
echo "<b>Rad " . ++$i . "</b><br />";
echo "Fält 1: " . $curRow[ 0 ] . "<br />";
echo "Fält 2: " . $curRow[ 1 ] . "<br />";
}
odbc_close ( $odbcPekare );
}
?>
Koden är från inlägg: http://www.webforum.nu/showthread.php?s=&postid=351783#post351783
Använde tydligen array_slice () istället för array_shift (), som bör användas... *trött*