lingo73
Goto Top

Suche Gratis-Speicherdienst (will eine Variable im Web speichern)

Hallo,

gibt es irgendwo im Internet einen kostenlosen Dienst, wo man gespeicherte Variablen abrufen kann?

Angenommen, es gibt 100 User, die an ihrem Webbrowser sitzen. Diese rufen im Browser eine Url auf z.B.

http://irgendeineseite.de:8080/signal/show.php?test2=73

Ich möchte wissen, zu welchem Zeitpunkt die Werte an den Server gesendet wurden (z.B. 16h 52min 53s),
und welchen Wert die Variable 'test2' hatte, die der User an den Server sendete.

Ich möchte alle gesammelten Ergebnisse (also 100 Zeitpunkte und 100 Werte von "test2")
vom Server abrufen können, und sie auswerten.

-Was für einen Dienst gibt es, der die oben genannten Erfordernisse erfüllt? Das Skript dazu
sollte sehr simpel sein. Der Serverdienst sollte gratis sein.

Content-ID: 252170

Url: https://administrator.de/contentid/252170

Ausgedruckt am: 23.11.2024 um 07:11 Uhr

Arano
Arano 16.10.2014 um 22:40:25 Uhr
Goto Top
Hallo Lingo,

einen Dienst wird es wohl kaum geben,
hier ist selbermachen angesagt.

Für den Server kannst du jedes FreeWebspace Angebot nutzen das eine Scriptsprache (PHP, Perl o.ä) unterstützt.
Die Daten können dann Zeile für Zeile in eine Datei oder wenn vorhanden in eine Datenbank gespeichert werden.


~Arano
Lingo73
Lingo73 16.10.2014 aktualisiert um 23:00:41 Uhr
Goto Top
Ich bräuchte einen Tipp, wo es eine Sammlung von solchen (simplen) Php Scripten gibt. -Vielleicht kennt jemand eine Scriptsammlung, die er mir nennen kann, und die für die von mir gesuchte Aufgabe in Frage käme.
kaiand1
kaiand1 17.10.2014 um 19:39:55 Uhr
Goto Top
Nun Ob sowas genau als Script gibt glaub ich weniger da sowas eher nicht...
Aber sowas ist eh schnell gemacht mit den Grundwissen und DB Anbindung...
Für Grundsachen gibt es auch viele Seiten mit Tuts wie zb http://www.phpbox.de/ ...
Auf der Seite solltes du es hinbekommen bzw aus den Tuts ableiten können ;)
colinardo
colinardo 17.10.2014, aktualisiert am 19.10.2014 um 11:32:33 Uhr
Goto Top
Hallo Lingo73,
ich habe dir mal ein einfaches Beispiel mit MySQL-Datenbank-Anbindung für dein Vorhaben erstellt:
Also,
back-to-top1. Du erstellst dir erst mal in einer Datenbank eine Tabelle mit folgender für das Beispiel passenden Definition
CREATE TABLE IF NOT EXISTS `wertetabelle` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT,
  `wert` bigint(20) NOT NULL,
  `zeit` datetime NOT NULL,
  PRIMARY KEY (`ID`)
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
back-to-top2. dann passt du in unten stehendem Script dir Zeilen 64-67 zur Datenbank-Anbindung an deine Gegebenheiten an:
$DB_HOST = '127.0.0.1';
$DB_NAME = 'NAMEDEINERDATENBANK';
$DB_USER = 'DBBENUTZER';
$DB_PASSWORD = 'GEHEIM'; 
back-to-top3. dann speicherst du das Script z.B. unter dem Namen "test.php" in einem Verzeichnis deines Webservers
<?php
// GET Parameter abfragen und Variablen zuordnen
$action = (isset($_GET['action']) && $_GET['action'] != "") ? $_GET['action'] : '';  
$wert = (isset($_GET['wert']) && $_GET['wert'] != "")? $_GET['wert'] : '';  

// Führe Aktionen je nach gewähltem 'action'-URL Parameter aus 
switch($action){
	// wir wollen einen Eintrag zur Datenbank hinzufügen
	case 'write':  
		// wenn Wert nicht leer ist
		if ($wert != ''){  
			// Zeit speichern
			$zeit = date("Y-m-d H:i:s");  
			try{
				//Verbinde mit der Datenbank
				$db = connect_db();
				//SQL Insert-Abfrage erstellen
				$proc = $db->prepare("INSERT INTO wertetabelle(wert,zeit) Values(?,?)");  
				//Werte als Parameter an die Abfrage übergeben und ausführen
				$count = $proc->execute(array($wert,$zeit));
				if ($count > 0){
					//wenn ein Eintrag vorgenommen wurde gebe einen Text aus
					echo "Es wurde der Wert '$wert' mit der Zeit '$zeit' in die Datenbank eingetragen";  
				}
				
			}catch (PDOException $ex) {
				echo "Es ist ein Fehler beim Datenbankabruf aufgetreten: " . $ex;  
			}
		}else{
			// Wert der übermittelt wurde war leer, gebe Fehlermeldung aus
			echo "Es wurde kein Wert übergeben";	  
		}
		break;
		
	// wir wollen Daten aus der Datenbank auslesen
	case 'read':  
		try{
			//Verbinde zur Datenbank
			$db = connect_db();
			//Counter für die Tabelle
			$cnt = 1;
			$rows = '';  
			// Daten aus der DB Zeile für Zeile auslesen 
			foreach($db->query("SELECT * FROM wertetabelle ORDER BY zeit DESC LIMIT 100") as $row){  
				$rows .= '<tr><td>' . $cnt++ . "</td><td>" . $row['wert'] . "</td><td>" . $row['zeit'] ."</td></tr>\n";  
			}
			//Tabelle ausgeben
			echo '<table style="border:1px solid gray"><tr><th>POS</th><th>WERT</th><th>ZEIT</th></tr>';  
			echo $rows;
			echo '</table>';  
		}catch (PDOException $ex) {
			echo "Es ist ein Fehler beim Datenbankabruf aufgetreten: " . $ex;  
		}
		break;
		
	// es wurde keine gültige Aktion übergeben
	default:
		echo 'Es wurde keine Aktion definiert!';  
		break;
}

// Funktion die die Datenbankverbindung herstellt
function connect_db(){
	$DB_HOST = '127.0.0.1';  
	$DB_NAME = 'NAMEDEINERDATENBANK';  
	$DB_USER = 'DBBENUTZER';  
	$DB_PASSWORD = 'GEHEIM';   
	$db = new PDO('mysql:host='.$DB_HOST .';dbname='.$DB_NAME.';charset=utf8', $DB_USER, $DB_PASSWORD,array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));  
	return $db;
}
?>
back-to-top4. Dann kannst du die Seite folgendermaßen aufrufen um Werte hinzuzufügen:
http://www.deineseite.de/test.php?action=write&wert=72
back-to-top5. Um die Werte aus der Datenbank abzurufen schreibst du dir Zeile dann so:
http://www.deineseite.de/test.php?action=read
Das Script ruft dann die letzten 100 Werte absteigend sortiert aus der Datenbank ab und stellt sie als Tabelle auf der Seite dar.

Wie gesagt das ist nur ein einfaches Beispiel ohne Authentifizierung oder sonstigen Schnickschnack. Es soll dir aber auch nur als Einstieg in dein Projekt helfen face-smile

Hoster die MySQL und PHP kostenlos anbieten sind z.B. diese:

Viel Erfolg
Grüße Uwe

p.s. der Titel deines Beitrags solltest du anpassen, besser wäre hier 'Suche Hoster mit Datenbankanbindung und PHP'
colinardo
colinardo 22.10.2014 um 17:15:23 Uhr
Goto Top
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Lingo73
Lingo73 01.11.2014 um 17:46:13 Uhr
Goto Top
Betrifft: http://www.fnhost.org

Danke. -Ich habe die oben vorgeschlagenen Anbieter durchprobiert. Mein gewählter Anbieter ist fnhost.org , denn
dieser gefiel mir wegen der Übersichtlichkeit besonders gut. Ich legte gestern eine Testdatenbank an - aber bei dem Versuch,
dein (mit meinen Daten modifiziertes) .PHP hochzuladen, kommt vom "phpMyAdmin-Importierer" die folgende Fehlermeldung :

<?php
GET Parameter abfragen und Variablen zuordnen
$action = (isset($_GET['action']) && $_GET['action'] != "") ? $_GET['action'] : '';

MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?php
GET Parameter abfragen und Variablen zuordnen
$action = (isset($_GET[' at line 1

Ich hoffe keinen Fehler gemacht zu haben, denn eine .PHP Datei
hochzuladen bietet der Server eigentlich gar nicht an, denn
beim Hochladen(Importieren) gibt es in einer Dropdownbox die
Optionen ...

1)Format: CSV
2)Format: OpenDocument Spreadsheet
3)Format: SQL
4)Format: ESRI-Shapedaten
5)Format: XML
6)Format: Tabelle für MediaWiki

Ich hätte gerne, dass der Server die Resultate unsortiert liefert,
und das Resultat muss nicht in einer Tabelle sein.
Kannst du das .PHP kürzen, und das .PHP hier nochmal posten,
ohne dass in dem Script eine Tabelle drin ist?
colinardo
colinardo 01.11.2014 aktualisiert um 18:33:43 Uhr
Goto Top
Zitat von @Lingo73:
dein (mit meinen Daten modifiziertes) .PHP hochzuladen, kommt vom "phpMyAdmin-Importierer" die folgende Fehlermeldung :
Ich hoffe keinen Fehler gemacht zu haben, denn eine .PHP Datei
hochzuladen bietet der Server eigentlich gar nicht an, denn
beim Hochladen(Importieren) gibt es in einer Dropdownbox die
Optionen ...
Doch du hast es leider vollkommen falsch gemacht. Du versuchst hier die PHP-Datei in die Datenbank zu laden face-smile, das geht natürlich nicht !! Die Datenbank-Definition hatte ich dir ja deswegen extra unter Punkt 1 gepostet ! Den Code pastest du in PHPMyAdmin auf dem Tab SQL und führst in aus. Damit wird die entsprechende Tabelle in der DB generiert.
Das PHP File lädst du z.B. via PHP auf deinen Webspace.

Ich hätte gerne, dass der Server die Resultate unsortiert liefert,
und das Resultat muss nicht in einer Tabelle sein.
Kannst du das .PHP kürzen, und das .PHP hier nochmal posten,
ohne dass in dem Script eine Tabelle drin ist?
Denke das solltest du eigentlich selber schaffen, die PHP-Grundlagen können wir dir hier leider nicht beibringen, sorry.
Dazu gibt es genügend Tutorials im Netz. Etwas Engagement musst du schon mitbringen.

Grüße Uwe
Lingo73
Lingo73 01.11.2014 aktualisiert um 20:22:31 Uhr
Goto Top
Den Tabellencode habe ich in PHPMyAdmin ausgeführt - es hat geklappt.

Zum Uploaden des .php files ging ich in den
File-Manager meines Anbieters. Um das Directory festzulegen
gibt es eine Dropdownbox mit 4 Optionen, wo man festlegt,
wohin man das File hochladen will:

1) Home Directory
2) Web Root (public_html/www)
3) Public FTP Root (public_ftp)
4) Document Root für: [mySubdomainName].[Webhostername].net/home/[myUserName]

Ich wählte Punkt 4) und lud das .php File hoch.

Dann wollte ich die URL aufrufen (und einen Wert zur Tabelle hinzufügen) mit :
http://[mySubdomainName].[Webhostername].net/home/[myUserName]/test.php?action=write&wert=72
-Aber es kommt vom Server der error 404 "Page not found"
Die Permission ist auf 644 gesetzt

Dann habe ich testweise die Grafik 1.gif in das selbe Verzeichnis
hochgeladen, und wenn ich den Link aufrufe:
http://[mySubdomainName].[Webhostername].net/home/[myUserName]/1.gif
kommt ebenfalls error 404
Die Permission der "1.gif" (3,03 kB) ist ebenfalls auf 644 gesetzt

Anmerkung:
Es ist hoffe ich richtig wenn ich in der php Datei die Hostangabe wie folgt angebe:
$DB_HOST = '$DB_HOST = '[Webhostername].net';';

...Oder muss man den Host nach folgendem Schema angeben?
$DB_HOST = '$DB_HOST = '[mySubdomainName].[Webhostername].net';';
colinardo
colinardo 01.11.2014 aktualisiert um 20:44:41 Uhr
Goto Top
Zitat von @Lingo73:
1) Home Directory
2) Web Root (public_html/www)
3) Public FTP Root (public_ftp)
4) Document Root für: [mySubdomainName].[Webhostername].net/home/[myUserName]

Ich wählte Punkt 4) und lud das .php File hoch.
kenne den Hoster nicht, aber lade es mal in 2 (Web Root) hoch ...
Aber es kommt vom Server der error 404 "Page not found"
dann ist es im falschen Verzeichnis gelandet ... lade es ins Web-Root dann sollte es auf jeden Fall abrufbar sein.

Anmerkung:
Es ist hoffe ich richtig wenn ich in der php Datei die Hostangabe wie folgt angebe:
$DB_HOST = '$DB_HOST = '[Webhostername].net';';

...Oder muss man den Host nach folgendem Schema angeben?
$DB_HOST = '$DB_HOST = '[mySubdomainName].[Webhostername].net';';
den korrekten Hostnamen bekommst du von deinem Anbieter wenn du deine SQL Datenbank angelegt hast.
z.B.
 $DB_HOST = 'hostxyz.domain.net';
Der muss dort irgendwo im Webinterface stehen, wo, kann ich dir nicht sagen, weil ich mich da jetzt nicht extra anmelde ...
Lingo73
Lingo73 01.11.2014 um 22:52:49 Uhr
Goto Top
Aus dem Web-Root ist es jetzt abrufbar !

Aber es kommt die Meldung:
"Es ist ein Fehler beim Datenbankabruf aufgetreten:"
"Access denied for user" ..

Um den Fehler zu beheben habe ich im php File statt ...
$DB_HOST = 'hostxyz.domain.net';
den Wert ...
$DB_HOST = 'localhost'
...eingetragen

-Und jetzt klappt es endlich. -Es war im Browserfenster folgender Bestätigungs-Text zu sehen:

Es wurde der Wert '72' mit der Zeit '2014-11-01 21:38:25' in die Datenbank eingetragen.

Obwohl es insgesamt nur zwei Werte in der Datenbank gibt erscheint bei der Abfrage
eine Tabelle mit vier Werten. Ist ein Fehler im php Code?

POS WERT ZEIT
1 73 2014-11-01 21:43:09
2 73 2014-11-01 21:43:09
3 72 2014-11-01 21:38:25
4 72 2014-11-01 21:38:25
colinardo
colinardo 01.11.2014 um 23:14:30 Uhr
Goto Top
Ist ein Fehler im php Code?
nö ... habs hier ja damals ohne Probleme getestet !
Lingo73
Lingo73 01.11.2014 um 23:40:10 Uhr
Goto Top
Wenn ich mir serverseitig in phpMyAdmin die Tabelle von der Datenbank anzeigen lasse, sind es
vier Werte. Es müsste also ein Fehler beim Schreiben passiert sein. Das heisst aber auch,
dass deine Abruf-Routine in dem php Code korrekt funktioniert.

Komisch - vielleicht hat der Server gesponnen, und die Werte irgendwie alle doppelt geschrieben
(?)
colinardo
colinardo 02.11.2014 aktualisiert um 08:36:26 Uhr
Goto Top
Zitat von @Lingo73:
Komisch - vielleicht hat der Server gesponnen, und die Werte irgendwie alle doppelt geschrieben
(?)
ich glaube eher das dein Browser die Seite zweimal hintereinander aufgerufen hat. Nehm mal einen anderen Browser.Oder dein Antivirus-Produkt baut hier Bockmist.
Lingo73
Lingo73 02.11.2014 um 11:08:20 Uhr
Goto Top
Habe den Link zum "Variable-Schreiben" in die Navileiste des iE eingegeben, 10 Sekunden auf den Absende-Knopf gedrückt, und bei Sekunde 11 losgelassen. In Sekunde Nr. 11 wurde eine neue Variable geschrieben. Wenn ich die gesammelten Variablen (von der Tabelle) abrufe, sind es nun 6 Werte statt 3. Alle Werte sind doppelt gelistet. Die jüngste Variable steht auf Platz 1 und Platz 2.
colinardo
colinardo 02.11.2014 aktualisiert um 19:15:52 Uhr
Goto Top
Zitat von @Lingo73:

Habe den Link zum "Variable-Schreiben" in die Navileiste des iE eingegeben, 10 Sekunden auf den Absende-Knopf
gedrückt, und bei Sekunde 11 losgelassen.

Hä????? wer macht denn sowas ??? face-big-smile Einmal klicken genügt ! nicht gedrückt halten ... was soll das bringen ?! Außer das du damit solche Fehler produzierst.

Zur Info das Script läuft hier auf allen Browsern und OS einwandfrei ohne Fehler, Sorry.
Du musst bei der Einrichtung irgendeinen Fehler gemacht haben.

Dein System muss die Seite warum auch immer doppelt abrufen, anders lassen sich die doppelten Einträge in die DB nicht erklären.
Lingo73
Lingo73 02.11.2014 um 21:44:41 Uhr
Goto Top
was soll das bringen
das habe ich nur testweise so gemacht. Der IE schickt den Befehl zum Navigieren dann ab, wenn man den grünen Navigations-Button loslässt (das sogenannte MouseUp-Event). Bei dem Test hat sich die Antwortseite "Es wurde der Wert '72' mit der Zeit '2014-11-01 21:xx:yy' in die Datenbank eingetragen." erst nach dem Loslassen der Maustaste aufgebaut. Wenn also in den ersten 10 Sekunden nichts passiert, und erst nach Loslassen der Taste eine Reaktion vom Webbrowser kommt, dann kann man eine Aussage treffen dass die Navigationsanforderung nur einmal (und nicht mehrmals) abgeschickt wurde.

Die URL http://www.deineseite.de/test.php?action=write&wert=72
habe ich ausprobiert mit folgenden Webbrowsern :
1) auf dem Handy (das Schreiben der Variable war erfolgreich)
2) auf dem eeePC (Internet Explorer, Firefox)
3) Desktop PC (Internet Explorer, Opera, Firefox, Chrome)
Alle Versuche waren erfolgreich d.h. die Variable wurde immer geschrieben.-Aber
die Variablen waren in der Tabelle anschliessend immer doppelt vorhanden.
colinardo
colinardo 03.11.2014 aktualisiert um 08:40:01 Uhr
Goto Top
schon klar ... aber um absolute Klarheit zu haben drückt man für sowas F12 um die Developper-Tools zu öffnen, und dort unter Netzwerk die Anfragen zu beobachten face-wink
Oder man nimmt Wireshark.

Da es bei dir anscheinend in jedem Browser Auftritt vermute ich einen Fehler der Datenbank oder ältere MySQL oder PHP Versionen die mit der Verwendung von PDO den Fehler verursachen. Der Code ist nämlich dahingehend absolut i.O.

Poste mal die verwendete PHP und MySQL-Versionen deines Hosters !

Nicht umsonst sind die Dinger kostenlos face-wink
Lingo73
Lingo73 04.11.2014 um 19:05:32 Uhr
Goto Top
Könntest du dir bei fiberstorm.net einen account holen, und den Code einmal ausprobieren? Ich habe mittlerweile 2 Datenbanken und 2 verschiedene User mit verschiedenen Passworten angelegt und den (am 17.10.2014 um 20:05 Uhr von dir geposteten Code) ausprobiert. Der Wert wird immer doppelt geschrieben.

Speicherort für die test.php :
/public_html (das für das Internet freigegebene Verzeichnis)

Konfiguration :
$DB_HOST = 'localhost';
$DB_NAME = 'fiberstormUserName_DatabaseName';
$DB_USER = 'fiberstormUserName_DatabaseUserName';
$DB_PASSWORD = 'mindestensFünfZeichen';

Auch in forums.cpanel.net habe ich nachgefragt, aber dort weiss auch
niemand, warum die Variable doppelt geschrieben wird.

Dies sind die Versionsnummern, die in phpMyAdmin stehen:
Server: Localhost via UNIX socket
Server-Typ: MySQL
Server Version: 5.5.37-cll - MySQL Community Server (GPL)
Protokoll-Version: 10
Arano
Arano 04.11.2014 um 20:07:56 Uhr
Goto Top
Hi,

ich folge der Benachrichtigung ja immer noch obwohl ich dachte, dass nach Colinardo's erstem Post das Thema eigendlich fertig sei... war wohl nichts face-wink

Jetzt habe ich mir das auch einmal eingerichte:
  • einmal lokal und
  • einmal online.

__Beide__ funktionieren tadellos !
Ein Aufruf = Ein Schreibprozess


Gib uns doch mal den Link zu dir.
Hier hast du einen zu mir (wird später gelöscht !)
http://todev.net/test.php?action=read


~Arano
Lingo73
Lingo73 04.11.2014 um 21:20:42 Uhr
Goto Top
Arano, du hast PM.
114757
114757 04.11.2014 aktualisiert um 21:26:38 Uhr
Goto Top
Zitat von @Arano:
__Beide__ funktionieren tadellos !
Ein Aufruf = Ein Schreibprozess
kann ich auch bestätigen, funktioniert egal wo einwandfrei...

Fiberstorm kann ich nicht empfehlen, hatte ich damals nur Probleme ...

Gruß jodel32
Arano
Arano 04.11.2014 um 21:46:19 Uhr
Goto Top
Tja...

Lingo muss ich aber auch bestätigen Oo
Ich habe in der genannten PN seinen Link erhalten.
Und meine Versuche bei ihm enden auch in doppelten Einträgen !?

Hast du an dem Quelltext noch was verändert !?

Die PHP-Version fehlt noch !
Schieb mal zwischen Zeile 70 und 71 ein "phpinfo();"
Zeile 66...
Zeile 67...
Zeile 68...
	return $db; 
} 
phpinfo();
?>
In der zusätzlichen Ausgabe sollte auch eine Kategorie: "pdo_mysql"
Post mal vorsichtshalber auch die "Client API version " ...man weiß ja nie


~Arano
colinardo
colinardo 05.11.2014 aktualisiert um 12:12:38 Uhr
Goto Top
So, habe mal einen Account bei fiberstorm.net angelegt, und kann das Fehlverhalten ebenfalls bestätigen. PHP hat die benötigten PDO Extensions aktiviert:
PDO drivers 	sqlite, mysql 
Client API version 	mysqlnd 5.0.10 - 20111026 - $Id: c85105d7c6f7d70d609bb4c000257868a40840ab $ 
API Extensions 	pdo_mysql 
Hier auch nachzuprüfen.

Muss mir das mal genauer anschauen was da schief läuft.

Grüße Uwe

-edit- selbst beim testweisen umschreiben in die ältere mysqli oder mysql-Syntax tritt das selbe Verhalten auf, seeehr Merkwürdig !! Aber nur bei diesem Hoster ...
colinardo
colinardo 05.11.2014, aktualisiert am 06.11.2014 um 13:42:38 Uhr
Goto Top
Zwischenstand:

zur Info, das Problem haben andere auch

was ich auch versucht habe war, das doppelte Schreiben durch eine Session-Variable zu verhindern, jedoch ebenfalls negatives Ergebnis.

Die .htaccess wurde geprüft, die sind leer.

Ich vermute das bei dem Hoster durch irgendeine nicht änderbare Apache-Config oder ein mod_rewrite der doppelte Aufruf erfolgt.

Bei anderen Hostern die ich getestet habe ist das jedenfalls nicht zu beobachten ...

Fiberstorm kann ich nicht empfehlen, hatte ich damals nur Probleme ...
Ich glaub auch langsam, das @114757 da nicht Unrecht hat, nehme am besten einen anderen Hoster.